[color=#0000FF][(ben)教大家脱壳]③[/color]

社区服务
高级搜索
猴岛论坛辅助工具[color=#0000FF][(ben)教大家脱壳]③[/color]
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
2个回复

[color=#0000FF][(ben)教大家脱壳]③[/color]

楼层直达
(ben)

ZxID:6489528

等级: 新兵
举报 只看楼主 使用道具 楼主   发表于: 2009-05-14 0
汗,前两壳斑竹竟然没点一下就这样让它掉下去。。这可以是我的成就啊。没事。。
今天晚上我在给大家上一课。
今天上课之前我给大家布置一个任务,你们要将这个东西给背下来。
cmp a,b 比较a与b
test a,b
mov a,b 把b的值送给a
ret 返回主程序
nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)***机器码的含义参看上面
(解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)
call 调用子程序
je 或jz 若相等则跳(机器码74 或0F84)
jne或jnz 若不相等则跳(机器码75或0F85)
jmp 无条件跳(机器码EB)
jb 若小于则跳
ja 若大于则跳
jg 若大于则跳
jge 若大于等于则跳
jl 若小于则跳
jle 若小于等于则跳
pop 出栈
push 压栈

今天我们来学习PECompact脱壳, PECompact也是一种压缩壳,强度一般。我们以win98中的记事本为例,它的OEP是4010CC。
第一步,先侦壳,侦壳工具为peid0.92是PECompact 1.68 - 1.84 -> Jeremy Collake加的壳,我们请出调试利器:Ollydbg1.09,载入程序
0040AB20 > EB 06            JMP SHORT PECompac.0040AB28 第一个就是个跳
0040AB22  68 CC100000      PUSH 10CC
0040AB27  C3              RETN
0040AB28  9C              PUSHFD
0040AB29  60              PUSHAD
0040AB2A  E8 02000000      CALL PECompac.0040AB31  这里有个CALL,我们F7进去不然程序运行了
0040AB2F  33C0            XOR EAX,EAX
0040AB31  8BC4            MOV EAX,ESP
0040AB33  83C0 04          ADD EAX,4
可能你们会问。我们怎么知道这个CALL该进不该进啊。。这里我教你们一个笨方法,遇到CALL时F8走过去如果运行了我们就从新载入从来,这不就可以了。
进入CALL后我们继续走,一直走到这
0040D24D  57              PUSH EDI
0040D24E  AD              LODS DWORD PTR DS:[ESI]
0040D24F  85C0            TEST EAX,EAX
0040D251  0F84 9B000000    JE PECompac.0040D2F2  这里有个跳,没实现,我们要让他实现。回车进去F4运行所选
0040D257  8BD0            MOV EDX,EAX
0040D259  0395 E6904000    ADD EDX,DWORD PTR SS:[EBP+4090E6]
0040D25F  AD              LODS DWORD PTR DS:[ESI]
0040D260  56              PUSH ESI
0040D261  8BC8            MOV ECX,EAX
0040D263  57              PUSH EDI
0040D264  52              PUSH EDX
0040D265  8DB5 6BA14000    LEA ESI,DWORD PTR SS:[EBP+40A16B]
再走
0040D2F2  5F              POP EDI
0040D2F3  8BB5 E2904000    MOV ESI,DWORD PTR SS:[EBP+4090E2]
0040D2F9  AD              LODS DWORD PTR DS:[ESI]
0040D2FA  83F8 FF          CMP EAX,-1
0040D2FD  74 74            JE SHORT PECompac.0040D373  又是个没实现的跳,我们一样让它实现,回车进去F4
0040D2FF  0385 E6904000    ADD EAX,DWORD PTR SS:[EBP+4090E6]
0040D305  8BD8            MOV EBX,EAX
0040D307  AD              LODS DWORD PTR DS:[ESI]
0040D308  0385 E6904000    ADD EAX,DWORD PTR SS:[EBP+4090E6]
再走
0040D39D  03DE            ADD EBX,ESI
0040D39F  49              DEC ECX
0040D3A0  74 72            JE SHORT PECompac.0040D414  又是一样进去让它实现
0040D3A2  78 70            JS SHORT PECompac.0040D414
0040D3A4  66:8B07          MOV AX,WORD PTR DS:[EDI]
0040D3A7  2C E8            SUB AL,0E8
0040D3A9  3C 01            CMP AL,1

0040D414  5F              POP EDI
0040D415  59              POP ECX
0040D416  33C0            XOR EAX,EAX
0040D418  85C9            TEST ECX,ECX
0040D41A  74 3B            JE SHORT PECompac.0040D457  一样实现它
0040D41C  8BF7            MOV ESI,EDI
0040D41E  33C0            XOR EAX,EAX
0040D420  83F9 04          CMP ECX,4
再走
0040D54E  61              POPAD  这是壳的出口标志,但这不是真正的出口,我们继续走
0040D54F  9D              POPFD
0040D550  50              PUSH EAX
0040D551  68 CC104000      PUSH PECompac.004010CC
0040D556  C2 0400          RETN 4
0040D559  8BB5 5B974000    MOV ESI,DWORD PTR SS:[EBP+40975B]
0040D55F  0BF6            OR ESI,ESI

004010CC  55              PUSH EBP    到了这,这就是我们的真正出口了,上节课有说。直接DUMP
004010CD  8BEC            MOV EBP,ESP
004010CF  83EC 44          SUB ESP,44
004010D2  56              PUSH ESI
004010D3  FF15 E4634000    CALL DWORD PTR DS:[4063E4]              ; kernel32.GetCommandLineA
004010D9  8BF0            MOV ESI,EAX
004010DB  8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD  3C 22            CMP AL,22

今天脱壳就到这。。。。。斑竹点亮下别掉下去了,如果大家学得好,我将教大家破解一些简单的挂。虽然我没录象但我觉得我的文字讲述很清楚











dzfd1314

ZxID:4706604

等级: 列兵
举报 只看该作者 沙发   发表于: 2009-05-14 0
我先来顶    我有时间在看  最近有点忙
http://www.xixi12345.cn/
dzfd1314

ZxID:4706604

等级: 列兵
举报 只看该作者 板凳   发表于: 2009-05-14 0
最近猴岛的人好像不是很多了  加上你没做视频教程  所以人气不旺  继续 
http://www.xixi12345.cn/
« 返回列表
发帖 回复