过无壳E盾验证

使用OD调试程序。我们在网上可以查阅到,E盾在无壳的情况下的特征,但是这些特征只有在无壳的情况下有效

    1.使用OD(ctrl + G)跳到401000处,

401000

    2.右键-》中文搜索引擎-》智能搜索-》找到E盾特征字符串“EB10564D50726F7465637420626567696E00”

E盾字符串

    3.进入特征字符串所在的地址,向上翻看,找到程序开始的地方,修改汇编代码

image

    4.继续使用(1)(2)中的方式查找字符串,找到“XX成功,剩余时间”这段,向上找到跳转地址大于这个字符串的地址,因为跳过这个字符串表示输出,没有用到,说明是跳向了失败所以需要修改跳转代码,使其永远能够成功,下面这个是当前字符串所在的地址 0x4209F4

登陆成功

我们看到它跳转的地址超过了9F4,所以这个jmp就是跳向了失败

image

我们ctrl + a 分析可以看到,上面有一个跳转跳过了这个jmp,所以我们可以修改上面的跳转,最大程度的减小对寄存器变量的影响

第一处jmp

但是当我们单步向下跟的时候发现,程序会直接结束进程,存在二次验证

image

    5.时间验证的特征为 “sub esp,0x84”,在修改汇编代码之前我们要找到一处没有代码的地方,并且选择离本身代码比较远的地方,二进制汇编 八个九“99999999”

查找二进制字符串二进制编辑8个9

记住8个9的首地址,ctrl + S   找到sub esp,0x84修改汇编代码

image

到这里E盾的网络验证就算是过了,但是,这个程序实际上还加了一个调试器检测,让我很不舒服,所以我还是通过搜索字符串的方法定位到关键代码

非法工具

向上翻阅汇编代码,查看是否有跳转跳过或使用这个字符串,在字符串上方的跳转就跳过了字符串,为了,让其在不论有没有调试器都可以正常运行,直接将条件跳转改为jmp

image

向下走发现依然有二次验证,按照上面相同的方法,直接将验证call上面的条件跳转改为jmp永远跳过,然后,在使用OD保存修改的地方,程序打开,在验证窗口随便输入一个用户名密码,就可以成功登陆,进入主界面了

原文地址:https://www.cnblogs.com/Crack_MY/p/12057087.html