以前一直认为一个工具只要会用就可以了,可是作为一名喜欢安全的渣渣来讲,会用还远远不够,你还得了解它,欺骗它,改造它,提升它!
上一篇文章讲了如何脱掉peid0.94版本的壳
[调试原理]逆向peid_脱壳
这一篇文章对peid开始逆向分析它的原理。开始的时候,从最简单的分析起:如何判断程序有vc编译器编译的。
逆向工具:ollydbg,ida,winhex
分析对象:peid v0.94(完美脱壳后uppeid)
测试程序:TraceMe.exe
打开peid加载TraceMe.exe发现为Microsoft Visual C++ 6.0编写,所以直接打开ollydbg,查找字符串Microsoft Visual C,发现字符串
双机来到这个字符所在的地方
发现跳转来自的地方,往上寻找,发现这个函数的起始部分
这里用IDA一样可以达到相同的效果
直接下断,然后用peid加载我们的测试程序TraceMe.exe,后F9,程序中断下来
单步运行,将分析的算法写在下面的代码中:
00438C26 |. 53 push ebx
00438C27 |. 55 push ebp
00438C28 |. 56 push esi
00438C29 |. 57 push edi ; 下面就是填充一个数组
00438C2A |. B0 72 mov al,0x72 ; "r"
00438C2C |. 884424 2F mov byte ptr ss:[esp+0x2F],al
00438C30 |. 884424 31 mov byte ptr ss:[esp+0x31],al
00438C34 |. 884424 34 mov byte ptr ss:[esp+0x34],al
00438C38 |. 884424 39 mov byte ptr ss:[esp+0x39],al
00438C3C |. 8844