吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1733|回复: 16
收起左侧

[已解决] 请教各路老佚们,如何将此hook代码转成易语言!

[复制链接]
bacon 发表于 2020-2-2 23:46
本帖最后由 bacon 于 2020-2-3 21:42 编辑

经过研究终于解决,这里要非常感谢我的爱是你】的支持!
以下代码转汇编要稍加修改,还要注意易语言变量的顺序,否则会崩溃。这是某VX的hook代码,小白不懂易语言如何写,请各路老铁们帮忙,感谢!!!

DWORD 地址1= 基址 + 偏移;
DWORD 地址2= 基址 + 偏移;
DWORD 地址3= 基址 + 偏移;
DWORD 地址4= 基址 + 偏移;
DWORD res =0;

char buff[0x164] = {0};

_asm{
        lea ecx, buff[16]
        call 地址1
        lea eax, buff[16]
        push eax
        mov ebx, 传入的信息
        push ebx
        call 地址2
        mov ecx, eax
        call 地址3
        lea eax, buff
        push eax
        lea ecx, buff[16]
        call 地址4
        mov res, eax
        sub esp, 0xC
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

贰叁伍 发表于 2020-2-3 00:04
汇编模块
 楼主| bacon 发表于 2020-2-3 00:13

主要是
char buff[0x164] = {0};
与现下面的,这里搞不明白
lea eax, buff
push eax
lea ecx, buff[16]

请高手指点下!!
SherryMefum 发表于 2020-2-3 00:34
黄河大鲤鱼 发表于 2020-2-3 07:12
SherryMefum 发表于 2020-2-3 00:34
这是C++呀,还是学C++吧

我读书少,你别骗我
 楼主| bacon 发表于 2020-2-3 09:43
SherryMefum 发表于 2020-2-3 00:34
这是C++呀,还是学C++吧

就是相研究下C++这种结构方式相对易语言如何转换!
我的爱是你 发表于 2020-2-3 12:07
char buff[0x164] = {0};
这个意思不是申请字符缓冲区大小为0x164 转换十进制是365 并把字符数组初始化为0;
_asm{    //_asm好像是植入汇编   
....
}
lea eax, buff
push eax
lea ecx, buff[16] 这些汇编代码好像都是要写入buff缓冲区内的,毕竟只有buff申请了一片内存,我也是小白对这了解不多。
 楼主| bacon 发表于 2020-2-3 12:24
我的爱是你 发表于 2020-2-3 12:07
char buff[0x164] = {0};
这个意思不是申请字符缓冲区大小为0x164 转换十进制是365 并把字符数组初始化为 ...

是的,是这么理解的,但lea ecx, buff[16]这个buff[16]转易是读还是申请呢,搞不懂!!
我的爱是你 发表于 2020-2-3 12:43
易语言汇编模块应该可以 :

汇编模块中的汇编操作{
        lea ecx, buff[16]       //取buff[16]偏移地址存放在ecx中
        call 地址1                 //执行(调用)地址1
        lea eax, buff[16]       //取buff[16]偏移地址存放在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[16]     //取
        call 地址4              //执行
        mov res, eax          //赋值
        sub esp, 0xC          //减法运算,esp-0XC(12)   结果放在esp中
}虽然我没咋接触易语言但变量名不改用汇编模块汇编代码直接复制过去应该也是没问题的,
我的爱是你 发表于 2020-2-3 12:47
本帖最后由 我的爱是你 于 2020-2-3 12:50 编辑

还有“这些汇编代码好像都是要写入buff缓冲区内的”我句话我想是错的,植入汇编我想起了C语言内是直接操作了汇编,编译应该直接写入了。
汇编代码内容如上,易语言应该也有模块可以直接操作汇编 ,直接复制汇编代码应当符合代码规范,成功率也是较大。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-13 19:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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