b917893200 发表于 2020-3-2 20:20

小白破解游戏辅助记录。

首先放入exeinfope,区段都正常,初步断定无壳。然后直接拖入OD。现在搜索字符串来到这个非法的位置。非法前面的跳转是肯定要跳的,这个毫无疑问,但是再运行还会非法,说明后面还有地方。我们单步跟踪。发现0040BFE6这个跳转也必须跳。试个几次就出来了。这里就过了非法。然后第一步,我们肯定要判定账号密码为正确吧,搜索账号或密码错误的字符串…………。我们来到段首直接mov eax,1 ret 0x10。为什么是0x10,下面有个差不多的,我在下面解释一下。登录函数的特征命令是push 20,我们搜索命令来到将段首改为mov eax,1 retn 0x18。前面一句是直接让判断为正确,后面为什么是0x18呢,我们搜索命令call 00410c09也就是调用这个函数的地方,我们可以看到压进6个函数,也就是24个字节,也就是0x18。我们要保持堆栈平衡所以要出栈24个字节。即retn 0x18。命令sub esp,84是E盾个人版的合法函数特征,也就是在栈上分配33个局部变量。这个是特征应该是不会变的。我们来到这个位置,其实sub esp,84能搜到很多位置,我们为什么要选这个位置呢,有2个可以判别的,一个是push 8,这也是E盾个人版的特点,还有一个是大量使用局部变量,这也是为什么sub esp,84。我们在段首改为实leave指令就是mov esp,ebp
pop ebp
ret。也就是函数退出前恢复调用前堆栈环境。这里为了方便就直接leave ret了。
至此,已经可以正常使用这个辅助了。原版文件https://pan.baidu.com/s/1mbX1uc80k9zkf1x3CUhAUg 提取码1d24。

末途 发表于 2020-3-2 21:11

感谢分享能破个hpjy的就舒服了

b917893200 发表于 2020-3-3 11:58

这个程序判断非法是靠窗口名来判断的。还有在函数前面直接mov eax,0x1是因为那个子程序有很多判断比如账号不存在。账号密码不正确什么的。任何一个判断失败,eax都为0.所以我们直接给eax赋值1,让那个判断登录的函数为真。其他的直接函数头赋值也是这个意思。可以下硬件断点,然后单步跟踪慢慢可以发现。内存断点断不下来不知道为什么。估计是那一片有VMP的关系吧

b917893200 发表于 2020-3-2 20:21

排版有点问题。各位大哥莫见怪{:301_999:}

b917893200 发表于 2020-3-2 20:23

不知道是因为我系统的问题还是什么。断点无法正常断下。而且这辅助注入的痕迹我目前也没找到,所以提取DLL和sys之类的就没搞。我只是用pchunter发现了他隐藏了一个驱动。

b917893200 发表于 2020-3-2 20:26

以管理员运行程序,才可以正常呼出。

b917893200 发表于 2020-3-2 20:27

今天先休息一下。明天看看能不能用ida分析一下辅助功能的实现

那年听风 发表于 2020-3-2 20:31

13071371215 发表于 2020-3-2 20:49

感谢楼主分享

cxpzzz 发表于 2020-3-2 21:02


谢谢楼主分享技术

晚风以晚 发表于 2020-3-2 21:21

我去试试谢谢楼主
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 小白破解游戏辅助记录。