继续UnPackMe
前几个壳发现效果不好,不知道是没人玩还是难度大了点,总之到现在还没有看到一篇分析.那好吧,来个简单点的吧,希望大家都动手试试.还是没人玩的话,那我真得考虑是否有必要继续在52上传壳样让大家玩了. 别这样我们都还想跟你学习呢,继续发吧,让我们也开开眼界,呵呵,超人的东西一定要玩 呵呵这么简单,连俺这个壳盲都秒杀,有点信心了 地下壳的兼容性都极差,玩这些没意思。
直接用个脱壳机把他给脱掉 我来凑下ximo兄的兴趣,这个属于伪装壳,上面的朋友已经用脱壳机试啦,我自己也试了下,确实可用,但是ximo兄
要求是东OD。非用脱壳机,我来开个头,我的方法是两次内存法,首先OD载入
━━━━━━━━━━━━━━━━━━━━━━━━━━
00410000 >E8 04000000call test.00410009//程序停在这里
004100058360 EB 0C and dword ptr ds:,0C //ait+m打开内存镜象
004100095D pop ebp
0041000AEB 05jmp short test.00410011
0041000C45 inc ebp
0041000D55 push ebp
0041000EEB 04jmp short test.00410014
00410010B8 EBF900C3mov eax,C300F9EB
00410015E8 00000000call test.0041001A
━━━━━━━━━━━━━━━━━━━━━━━━━━
在00406000处下段,F2设置访问中断,接着shift+f9运行
Memory map, 条目 18
地址=00406000
大小=00001000 (4096.)
属主=test 00400000
区段=
类型=Imag 01001002
访问=R
初始访问=RWE
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C5CD300419 xor byte ptr ds:,al //经过shift+f9运行后,程序停在这里
0040C5D0^ E2 FBloopd short test.0040C5CD //在次ait+f9打开内存镜像
0040C5D261 popad
0040C5D3E8 0D000000call test.0040C5E5
0040C5D84C dec esp
0040C5D96F outs dx,dword ptr es:
0040C5DA61 popad
━━━━━━━━━━━━━━━━━━━━━━━━━━
此时在00401000处F2设置访问中断,shift+f9,此时会发现资源全部释放出来啦
Memory map, 条目 17
地址=00401000
大小=00005000 (20480.)
属主=test 00400000
区段=
包含=代码,数据
类型=Imag 01001002
访问=R
初始访问=RWE
━━━━━━━━━━━━━━━━━━━━━━━━━━
004010CC55 push ebp //此时当然是我们的OEP啦,直接停在了这里,脱壳吧; test.00400000
004010CD8BEC mov ebp,esp
004010CF83EC 44sub esp,44
004010D256 push esi
004010D3FF15 E0634000call dword ptr ds: ; kernel32.GetCommandLineA
004010D98BF0 mov esi,eax
004010DB8A00 mov al,byte ptr ds:
004010DD3C 22cmp al,22
004010DF75 13jnz short test.004010F4
004010E146 inc esi 在来把我跟到的段点说下,呵呵,这个断点算是最近的啦首先我们OD载入
bp LoadLibraryA
━━━━━━━━━━━━━━━━━━━━━━━━━━
00410000 >E8 04000000call test.00410009//OD载入
004100058360 EB 0C and dword ptr ds:,0C//在命令栏输入bp LoadLibraryA回车
004100095D pop ebp //shift+f9四次之后,ait+f9返回
0041000AEB 05jmp short test.00410011
0041000C45 inc ebp
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C61B59 pop ecx //四次shift+f9返回后程序停在这里
0040C61C85C0 test eax,eax//ait+b取消断点
0040C61E^ 0F84 45FFFFFFje test.0040C569//单步走
0040C6248038 CCcmp byte ptr ds:,0CC
0040C627^ 0F84 3CFFFFFFje test.0040C569
0040C62D89C3 mov ebx,eax
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C6A083C1 14add ecx,14
0040C6A38379 0C 00 cmp dword ptr ds:,0
0040C6A7^ 0F85 65FFFFFFjnz test.0040C612 //这里说下这个JNZ是向上的,那么我们下面是一句nop是不可以在那里打断的
0040C6AD90 nop
0040C6AEEB 04jmp short test.0040C6B4 //我们在这里F4运行到所选,因为NOP是空代码,看过天草教程应该知道
0040C6B095 xchg eax,ebp
0040C6B1C065 70 68 shl byte ptr ss:,68
━━━━━━━━━━━━━━━━━━━━━━━━━━
0040C6C1 /7E 05jle short test.0040C6C8
0040C6C3 |77 03ja short test.0040C6C8
0040C6C5 |83ED 00sub ebp,0
0040C6C8 \5D pop ebp
0040C6C9012C24 add dword ptr ss:,ebp
0040C6CCC3 retn//这里飞向我们的OEP啦
━━━━━━━━━━━━━━━━━━━━━━━━━━
004010CC55 push ebp//脱壳修复吧
004010CD8BEC mov ebp,esp
004010CF83EC 44sub esp,44
004010D256 push esi
004010D3FF15 E0634000call dword ptr ds: ; kernel32.GetCommandLineA
004010D98BF0 mov esi,eax
004010DB8A00 mov al,byte ptr ds: 引用第3楼haseo于2008-09-06 20:09发表的:
地下壳的兼容性都极差,玩这些没意思。
这位朋友你说错啦,别管他是什么壳,脱壳练习有助你脱壳的全面应对,地下壳有时候并不比那些出名的壳简单多少,那些壳都有人做了教程,地下壳很少有教程,有时甚至连搜索壳名都很难搜索到,此时就要靠你自己的经验去判断啦,这样对脱壳很有帮助 引用第5楼小生我怕怕于2008-09-08 00:49发表的:
我来凑下ximo兄的兴趣,这个属于伪装壳,上面的朋友已经用脱壳机试啦,我自己也试了下,确实可用,但是ximo兄
要求是东OD。非用脱壳机,我来开个头,我的方法是两次内存法,首先OD载入
.......
我很菜的,只会用脱壳机的。。。。。。 引用第5楼小生我怕怕于2008-09-08 00:49发表的:
我来凑下ximo兄的兴趣,这个属于伪装壳,上面的朋友已经用脱壳机试啦,我自己也试了下,确实可用,但是ximo兄
要求是东OD。非用脱壳机,我来开个头,我的方法是两次内存法,首先OD载入
━━━━━━━━━━━━━━━━━━━━━━━━━━
00410000 >E8 04000000call test.00410009//程序停在这里
004100058360 EB 0C and dword ptr ds:,0C //ait+m打开内存镜象
.......
不错,省的我写脱文了,呵呵
页:
[1]
2