脱一未知壳
【文章标题】脱一未知壳【文章作者】mgic659117852/蚊香
【作者邮箱】mailto:[email protected]
【作者主页】http://hi.baidu.com/magic659117852
【使用工具】OD PEiD LordPE ImportREC
【脱壳平台】D版 XP-SP2
【原版下载】http://www.fs2you.com/zh-cn/files/56e9d8e3-efed-11dc-835d-00142218fc6e
【保护方式】花指令 + 未知壳
【文章声明】本人纯菜鸟...只是感兴趣,供学习和交流,没有其他目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【大概过程】PEiD显示为 Microsoft Visual C++ (包括深度扫描&核心扫描)...换另一侦壳工具...还是一样 =_= !看区段..很不友善的样子....
http://bbs.crsky.com/1128632305/Mon_0803/8_185717_46296e0bc5913d0.jpg
扩展信息...
http://bbs.crsky.com/1128632305/Mon_0803/8_185717_af2933c8c7dd2bb.jpg
断定是有壳的...但不知道叫啥...暂且称其为未知壳吧 ...
啥也不说了...OD载入:
Quote:
00409000 >55 push ebp ; ★☆ 停在这里
00409001 8BEC mov ebp, esp
00409003 6A FF push -1
00409005 68 11111100 push 111111 ; ★☆ 看此句和下句...很明显的花 =_=
0040900A 68 22222200 push 222222
0040900F 64:A1 00000000mov eax, dword ptr fs:
00409015 50 push eax
00409016 64:8925 0000000>mov dword ptr fs:, esp
0040901D 58 pop eax
0040901E 64:A3 00000000mov dword ptr fs:, eax
00409024 58 pop eax
00409025 58 pop eax
00409026 58 pop eax
00409027 58 pop eax
00409028 8BE8 mov ebp, eax
0040902A B8 00804000 mov eax, 00408000
0040902F FFE0 jmp eax ; ★☆ 直接在这里F4
花指令明显...在 0040902F 处F4后...F8一下...来到:
Quote:
00408000 5B pop ebx ; kernel32.7C816FF7
00408001 81E3 00FFFFFFand ebx, FFFFFF00
00408007 66:813B 4D5A cmp word ptr , 5A4D
0040800C 75 33 jnz short 00408041
0040800E 8BF3 mov esi, ebx
00408010 0373 3C add esi, dword ptr
00408013 813E 50450000cmp dword ptr , 4550
00408019 75 26 jnz short 00408041
0040801B 0FB746 18 movzxeax, word ptr
0040801F 8BC8 mov ecx, eax
00408021 69C0 AD0B0000imul eax, eax, 0BAD
此时 Alt+M 打开内存镜像...rsrc段下断 ...Shift+F9...来到:
Quote:
0040827F FF76 0C PUSH DWORD PTR DS:
00408282 011C24 ADD DWORD PTR SS:,EBX
00408285 FF5424 14 CALL DWORD PTR SS:
00408289 5E POP ESI
0040828A 5B POP EBX
0040828B 85C0 TEST EAX,EAX
0040828D 74 6F JE SHORT packer1.004082FE
0040828F 8BE8 MOV EBP,EAX
00408291 8BD3 MOV EDX,EBX
00408293 8BFB MOV EDI,EBX
00408295 0356 10 ADD EDX,DWORD PTR DS:
00408298 8B06 MOV EAX,DWORD PTR DS:
0040829A 85C0 TEST EAX,EAX
再一次 Alt+M 打开内存镜像...00401000处下断 ...Shift+F9...来到:
Quote:
0040688B 8807 MOV BYTE PTR DS:,AL ; ★☆ 停在这里...
0040688D 47 INC EDI
0040688E 01DB ADD EBX,EBX
00406890 75 07 JNZ SHORT packer1.00406899
00406892 8B1E MOV EBX,DWORD PTR DS:
00406894 83EE FC SUB ESI,-4
00406897 11DB ADC EBX,EBX
00406899^ 72 ED JB SHORT packer1.00406888
0040689B B8 01000000 MOV EAX,1
004068A0 01DB ADD EBX,EBX
单步往下...一直到:
Quote:
004069FB- E9 00A6FFFF JMP packer1.00401000 ; ★☆ 跳向OEP
00406A00 0000 ADD BYTE PTR DS:,AL
00406A02 0000 ADD BYTE PTR DS:,AL
00406A04 0000 ADD BYTE PTR DS:,AL
00406A06 0000 ADD BYTE PTR DS:,AL
00406A08 0000 ADD BYTE PTR DS:,AL
00406A0A 0000 ADD BYTE PTR DS:,AL
00406A0C 0000 ADD BYTE PTR DS:,AL
00406A0E 0000 ADD BYTE PTR DS:,AL
00406A10 0000 ADD BYTE PTR DS:,AL
00406A12 0000 ADD BYTE PTR DS:,AL
00406A14 0000 ADD BYTE PTR DS:,AL
00406A16 0000 ADD BYTE PTR DS:,AL
00406A18 0000 ADD BYTE PTR DS:,AL
00406A1A 0000 ADD BYTE PTR DS:,AL
00406A1C 0000 ADD BYTE PTR DS:,AL
-----------------------------------------------------------------------------
Quote:
00401000 6A 00 PUSH 0 ; ★☆ OEP ...DUMP之
00401002 E8 C50A0000 CALL packer1.00401ACC ; JMP 到 kernel32.GetModuleHandleA
00401007 A3 0C354000 MOV DWORD PTR DS:,EAX
0040100C E8 B50A0000 CALL packer1.00401AC6 ; JMP 到 kernel32.GetCommandLineA
00401011 A3 10354000 MOV DWORD PTR DS:,EAX
00401016 6A 0A PUSH 0A
00401018 FF35 10354000PUSH DWORD PTR DS:
0040101E 6A 00 PUSH 0
00401020 FF35 0C354000PUSH DWORD PTR DS:
00401026 E8 06000000 CALL packer1.00401031
0040102B 50 PUSH EAX
0040102C E8 8F0A0000 CALL packer1.00401AC0 ; JMP 到 kernel32.ExitProcess
PEiD再次查Unpack.exe : MASM32 / TASM32 ..... ImportREC 修复一下... Unpack_.exe可以运行....
但有个问题...就是在运行的同时它有一个类似DOS界面的窗口出现...
http://bbs.crsky.com/1128632305/Mon_0803/8_185717_8c2b35b60323e08.jpg
个人不解 !!! 后经高手指点....将子系统 'Win32 控制台' 改为 'Win32 GUI' 即可 ....(嗯呐..学习了一招=_= !)
http://bbs.crsky.com/1128632305/Mon_0803/8_185717_0f2957456ae6d91.jpg
Unpack_.exe载入PE编辑器 ---- 子系统 ----- 将 Windows控制台(0003) 改为 Windows图形用户界面(0002) ---- 保存..确定
OK了...整个世界都清静了 =_=
------------------------------------------------------------------------
【文章总结】应该属于压缩壳吧...其实就是走过花指令后用内存断点法...另去除那个类DOS界面对偶来说属于新知识 ..学习 =_=
------------------------------------------------------------------------
【版权声明】...啥版权..没...
[ 本帖最后由 magic659117852 于 2008-3-12 23:22 编辑 ] 写得很好~~
1.0040902F FFE0 jmp eax
2.00408301- E9 6AE5FFFF jmp 00406870
3.004069FB- E9 00A6FFFF jmp 00401000 浅谢谢楼 下了 学习一下 感谢楼主分享/:good 哇,想不到在这里碰到了蚊香,(*^__^*) 嘻嘻……,顺便学习了一下!!/:014 /:014
页:
[1]