[Hook技术]利用inlineHook来实现快速破解易语言程序

前几天笔者在逆向一个易语言写的身份证生成器程序的时候,发现易语言的各种函数都是经过封装过的,包括文本比较,字节集比较等敏感的功能函数全都是经过封装的,并且功能特征码无论哪个版本的易语言还完全相同…
现在网上的一些易语言特征码根本不可靠,只要把代码稍微VM一下,特征码就找不到了,在此,笔者稍微研究了一下易语言库函数调用过程:
测试程序的源码如下:
易语言测试程序代码
先看看”信息框”函数是怎么被调用的

信息框的汇编代码

可见易语言调用库函数是保留了参数的属性,所以实际传递的参数比代码写的参数要多

调用跳转

跳转到调用库函数的函数的主体

调用库函数

这边是调用库函数,之前设置的EBX就是库函数主体的位置了

信息框库函数主体

终于到库函数的主体部分了…(调用一个函数经历这么多代码,怪不得易语言代码效率这么低)

文本比较调用过程

顺便贴上文本比较的代码部分,可见易语言文本比较也是通过调用库函数实现的

那么只要找到想要Hook的易语言库函数的特征码,就能轻而易举的实现Hook
这里笔者采用DLL注入的方式来实现inlinehook,特征码记录在自定义的配置文件里面
配置定义:

enum EasyLanTypes { zjx, dzsx, zsx, xsx, sjdxsx, wbx, zjj, ljx, noreturn };
typedef struct {
    BYTE *pBin;
    UINT lenth;
} BIN;
typedef struct {
    string MsgText;
    UIN
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值