开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 94|回复: 3
收起左侧

[C#源码] 求助大佬可以转换易语言

[复制链接]
结帖率:0% (0/1)
发表于 7 小时前 | 显示全部楼层 |阅读模式   河北省石家庄市
typedef HANDLE(__stdcall* CreateMutexWFn)(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCWSTR lpName);
HANDLE __stdcall hookCreateMutexW(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCWSTR lpName) {
    CreateMutexWFn fn = *(CreateMutexWFn*)0x0155A1A4;
    return fn(lpMutexAttributes, bInitialOwner, NULL);
}


#ifdef EN_MULTI_PROC
    //支持双开
    writeCallCode((LPVOID*)0x0112D97E, (PVOID)hookCreateMutexW);
    *(BYTE*)0x0112D983 = 0x90;
    writeCallCode((LPVOID*)0x00706872, (PVOID)hookCreateMutexW);
    *(BYTE*)0x00706877 = 0x90;
    *(BYTE*)0x0116D0DC = 0xEB;
#endif // EN_MULTI_PROC

求助大佬可以转换易语言吗?

签到天数: 13 天

发表于 7 小时前 | 显示全部楼层   重庆市重庆市
.版本 2
.支持库 eAPI

.程序集 窗口程序集_启动窗口
.程序集变量 CreateMutexW 原地址, 整数型
.程序集变量 钩子函数地址, 整数型

.子程序 __启动窗口_创建完毕
    .如果真 (是否定义常量 (“EN_MULTI_PROC”))
        初始化钩子 ()
    .如果真结束

.子程序 初始化钩子
    局部变量 模块jz, 整数型
    局部变量 偏移地址1, 整数型
    局部变量 偏移地址2, 整数型
    局部变量 偏移地址3, 整数型
    局部变量 偏移地址4, 整数型
    局部变量 偏移地址5, 整数型

    模块jz = 取当前进程模块jz ()
    偏移地址1 = 1129854  ' 0x0112D97E 转换为十进制
    偏移地址2 = 1129859  ' 0x0112D983 转换为十进制
    偏移地址3 = 734322  ' 0x00706872 转换为十进制
    偏移地址4 = 734327  ' 0x00706877 转换为十进制
    偏移地址5 = 1160348  ' 0x0116D0DC 转换为十进制

    CreateMutexW 原地址 = 模块jz + 15994276  ' 0x0155A1A4 转换为十进制
    钩子函数地址 = 到整数 (&钩子_CreateMutexW)

    写调用代码 (模块jz + 偏移地址1, 钩子函数地址)
    写内存字节 (模块jz + 偏移地址2, 144)  ' 0x90 转换为十进制
    写调用代码 (模块jz + 偏移地址3, 钩子函数地址)
    写内存字节 (模块jz + 偏移地址4, 144)  ' 0x90 转换为十进制
    写内存字节 (模块jz + 偏移地址5, 235)  ' 0xEB 转换为十进制

.子程序 写调用代码
.参数 目标地址, 整数型
.参数 函数地址, 整数型
    局部变量 代码, 字节集
    代码 = {233}  ' 0xE9 是 JMP 指令操作码
    代码 = 代码 + 整数到字节集 (函数地址 - 目标地址 - 5, 4)
    写内存字节集 (目标地址, 代码)

.子程序 写内存字节
.参数 地址, 整数型
.参数 字节值, 字节型
    局部变量 字节集数据, 字节集
    字节集数据 = {字节值}
    写内存字节集 (地址, 字节集数据)

.子程序 写内存字节集
.参数 地址, 整数型
.参数 字节集数据, 字节集
    调用API (“kernel32.dll”, “WriteProcessMemory”, 逻辑型, , 取当前进程句柄 (), 地址, 字节集数据, 取字节集长度 (字节集数据), 0)

.子程序 钩子_CreateMutexW
.参数 lpMutexAttributes, 整数型
.参数 bInitialOwner, 逻辑型
.参数 lpName, 整数型
    局部变量 原函数, 子程序指针
    原函数 = 到子程序指针 (CreateMutexW 原地址)
    返回 (原函数 (lpMutexAttributes, bInitialOwner, 0))


.子程序 取当前进程模块jz
    局部变量 模块句柄, 整数型
    调用API (“kernel32.dll”, “GetModuleHandleW”, 整数型, , 0)
    返回 (模块句柄)


.子程序 取当前进程句柄
    返回 (调用API (“kernel32.dll”, “GetCurrentProcess”, 整数型, ))


.子程序 是否定义常量
.参数 常量名, 文本型
    返回 (取常量数值 (常量名) ≠ 0)
回复 支持 反对

使用道具 举报

签到天数: 13 天

发表于 7 小时前 | 显示全部楼层   重庆市重庆市
问deepseek或豆包,又快又好。
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 7 天

 楼主| 发表于 7 小时前 | 显示全部楼层   河北省石家庄市

0112D977    8D45 D4         lea eax,dword ptr ss:[ebp-0x2C]
0112D97A    50              push eax
0112D97B    6A 01           push 0x1
0112D97D    56              push esi
0112D97E    FF15 A4A15501   call dword ptr ds:[0x155A1A4]            ; 多开call处理1  原型


0070686A    83C4 04         add esp,0x4
0070686D    50              push eax
0070686E    6A 00           push 0x0
00706870    6A 00           push 0x0
00706872    FF15 A4A15501   call dword ptr ds:[0x155A1A4]            ; 多开call处理2   原型
打赏
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表