最近一直在忙,也不知道在忙什么,现在终于闲下来了,于是危险漫步赶紧拿起调试器,熟悉一下已经些生疏的汇编代码。
首先peid查壳,PC Shrinker 0.71。OD载入运行,无任何异常,判断其为压缩壳。入口为pushad pushfd,我们就用ESP定律吧。走过pushfd此时ESP的值为0013FFAO,右键数据窗口跟,来到数据窗口选中右键断点>硬件访问.>F9运行,来到了popad,popfd。选中调试删除硬件断点。F8单步走,看到mov eax 401000,jmp edx知道跳过去就是OEP啦。dump进程,再用peid查程序,显示是MASM32/TASM32,是汇编编写的。
首先运行程序看一下,能找到什么有用的信息,运行check it显示key file not found!
可以断定这是个文件保护。对于文件保护我们下文件断点bp CreateFileA,在od命令下下断回车,F9运行程序点check“,程序断下来了,断7c801A28,系统的领空,Alt+F9返回到程序的领空,往下看能看到key file not found!,在往上看到一个call,调用createfile,文件参数为keyfile.dat,看到这我们就明白了,必须要有一个名为keyfile.dat的文件,否则就会提示key file not found!我们现在打开WINHEX新建一个文件,字节数先随便输入一个但要记住,以10个字节为例建一个名keyfile.dat的文件,保存。在4010E1处下断点,od重新载人,F9运行,程序断下来了,然后F8单步运行。这次跳过了错误提示,调用ReadFile读取文件、如果读取的字节数为空,则提示Error reading file!向下lea edx,dword ptr[40308Cl开始指向文件内容,40308c是刚才readfite读取文件保存数据的缓冲区。我们可以用命令行输Ad40308c看下,结果发现,正是我们之前创建的文件数据。
本文内容所提及均为本地测试或经过目标授权同意,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,作者不鼓励或支持任何形式的非法破解行为。