使用PEID分析某shift后门后得到程序加壳特征 nSpackV2.x → LiuXingPing *
,北斗的壳, 有现成的脱壳机, 本篇使用ESP定律手脱
OD载入, 停在这:
0040BBA7 9C pushfd0040BBA8 60 pushad
F7两次, 然后Ctrl+G到ESP位置下硬件断点后F9, 停下来后看到下面这个jmp:
0040BE2B 9D popfd0040BE2C - E9 2D5EFFFF jmp 00401C5E
F7跟进jmp后到达OEP:
00401C5E 55 PUSH EBP 00401C5F 8BEC MOV EBP,ESP 00401C61 6A FF PUSH -1 00401C63 68 78274000 PUSH sethc.00402778 00401C68 68 E41D4000 PUSH sethc.00401DE4 00401C6D 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 00401C73 50 PUSH EAX 00401C74 64:8925 0000000>MOV DWORD PTR FS:[0],ESP 00401C7B 83EC 68 SUB ESP,68 00401C7E 53 PUSH EBX 00401C7F 56 PUSH ESI
标准的VC头, 接下来dump出来:
dump出来的程序可以直接执行, PEiD再次查壳显示Microsoft VisualC++ 6.0 [Overlay]
, 至此, 脱壳完成; OD载入脱壳后的程序,Ctrl+N对MessageBoxA
下API断点:
F9运行, 输入假码断在这
00401882 . E86B020000 call <jmp.&MFC42.#4224_CWnd::MessageB>
往上翻, 找到对比关键点:
很简单的明文比较, 得到shift后门密码: *#&.hEz.
往下翻:
得到另一个密码:!h.e.z^