初入茅庐
最近闲来无事,想起最近小表弟给我发了一个网址让我帮他看看。

我并没有回复,而是默默的点开他发的链接。

发现这是一个某网游的辅助网,共有三款软件,作为一名喜爱福老玩家,看到这行为十分的生气,而且价格也是出奇的低,出于好奇,我默默的下载了其中一个辅助……

下载之后运行程序,看看这个程序跑路了没,服务器连接成功,那应该是没问题。

按照国际惯例步骤,先查个壳,把程序拖入到studyPE+和ExeinfoPE里,主要看PE类型、文件类型和所在区段。

这里入口区段为CODE(貌似中感染了这里先不管他,和正常的区段.test差不多),文件类型为 Borland Delphi 感觉大概率是易语言写的程序,区段也挺干净的,都属于是常见区块里的内容,初步判断这个程序应该是不带壳的,那基本上应该是属于成功一半了。

反调试绕过
那么接下来先让我们的主角x32dbg登场,然后把目标程序拖入到x32dbg中,发现这个程序拖入到x32dbg中是会闪退的。

https://www.bilibili.com/video/BV165kEYeEfb/?p=11&share_source=copy_web&vd_source=3be97cfc577d54e942d8c53c036e9bae

选择查看PEB,可以看到有一个名称为BeingDebugged的函数,正常来说值是为0x0的,当这里发现BeingDebugged的值为0x1,则说明检测到了调试行为.



双击地址,找到30的位置,选中右键在内存窗口中转到指定DWORD到内存2进行查看。

然后在内存2中,发现BeingDebugged是 1,说明正在被调试,只需要把 01 数值改为 00 ,就可以启动程序了。


当然也有更简单的方法,直接使用x32dbg自带的隐藏调试器,把程序拖进去,选中,就会自动的把BeingDebugged的值改为0,这样程序就可以自动绕过这种简单的反调试了。

破解过程
附加程序之后直接进入主模块,明显的易语言特征 xor eax,eax ret,那就验证了前面的说法,这就是个易语言程序。


右键当前模块搜索匹配特征,搜索易语言的特征push 0x10001.

逐个进入分析,就会发现上面有存在登录成功的提示,那么这个push大概率就是登录成功的功能窗口。

004018A | 68 1E600152 | push 5201601E |
回到主模块直接搜索FF 25


直接就看到了程序的入口,易语言程序入口 mov eax,6 就是程序启动之后往下执行,一直到push 52010001 执行他启动的卡密窗口id。

他 push 52010001这个窗口id,之后进入call ,call函数调用的地址是412E6F 那么对应的就是载入启动窗口,这里使用push大法可以破解。

004018A | 681E600152 | push 5201601E


这时候我们在打开我们修补补丁之后的程序,这时候就会发现成功的进入功能模块了,至此,到这里我们就已经成功的把该辅助破解了。




没有回复内容