请教各路老佚们,如何将此hook代码转成易语言!
本帖最后由 bacon 于 2020-2-3 21:42 编辑经过研究终于解决,这里要非常感谢{:1_921:}【我的爱是你】的支持!
以下代码转汇编要稍加修改,还要注意易语言变量的顺序,否则会崩溃。这是某VX的hook代码,小白不懂易语言如何写,请各路老铁们帮忙,感谢!!!
DWORD 地址1= 基址 + 偏移;
DWORD 地址2= 基址 + 偏移;
DWORD 地址3= 基址 + 偏移;
DWORD 地址4= 基址 + 偏移;
DWORD res =0;
char buff = {0};
_asm{
lea ecx, buff
call 地址1
lea eax, buff
push eax
mov ebx, 传入的信息
push ebx
call 地址2
mov ecx, eax
call 地址3
lea eax, buff
push eax
lea ecx, buff
call 地址4
mov res, eax
sub esp, 0xC
} 汇编模块 贰叁伍 发表于 2020-2-3 00:04
汇编模块
主要是
char buff = {0};
与现下面的,这里搞不明白
lea eax, buff
push eax
lea ecx, buff
请高手指点下!! 这是C++呀,还是学C++吧 SherryMefum 发表于 2020-2-3 00:34
这是C++呀,还是学C++吧
我读书少,你别骗我 SherryMefum 发表于 2020-2-3 00:34
这是C++呀,还是学C++吧
就是相研究下C++这种结构方式相对易语言如何转换! char buff = {0};
这个意思不是申请字符缓冲区大小为0x164 转换十进制是365 并把字符数组初始化为0;
_asm{ //_asm好像是植入汇编
....
}
lea eax, buff
push eax
lea ecx, buff 这些汇编代码好像都是要写入buff缓冲区内的,毕竟只有buff申请了一片内存,我也是小白对这了解不多。 我的爱是你 发表于 2020-2-3 12:07
char buff = {0};
这个意思不是申请字符缓冲区大小为0x164 转换十进制是365 并把字符数组初始化为 ...
是的,是这么理解的,但lea ecx, buff这个buff转易是读还是申请呢,搞不懂!! 易语言汇编模块应该可以 :
汇编模块中的汇编操作{
lea ecx, buff //取buff偏移地址存放在ecx中
call 地址1 //执行(调用)地址1
lea eax, buff //取buff偏移地址存放在eax
push eax //将eax压入栈??此时eax在栈顶??
mov ebx, 传入的信息
push ebx //压ebx
call 地址2 //执行地址2
mov ecx, eax //赋值语句
call 地址3 /。。。
lea eax, buff //取偏移
push eax //压
lea ecx, buff //取
call 地址4 //执行
mov res, eax //赋值
sub esp, 0xC //减法运算,esp-0XC(12) 结果放在esp中
}虽然我没咋接触易语言但变量名不改用汇编模块汇编代码直接复制过去应该也是没问题的,
本帖最后由 我的爱是你 于 2020-2-3 12:50 编辑
还有“这些汇编代码好像都是要写入buff缓冲区内的”我句话我想是错的,植入汇编我想起了C语言内是直接操作了汇编,编译应该直接写入了。
汇编代码内容如上,易语言应该也有模块可以直接操作汇编 ,直接复制汇编代码应当符合代码规范,成功率也是较大。
页:
[1]
2