TA的每日心情 | 衰 2016-3-10 10:33 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
管理员
- 积分
- 804
|
8#
楼主 |
发表于 2014-5-9 15:10:42
|
只看该作者
0040EA1A 0000 ADD BYTE PTR DS:[EAX],AL
0040EA1C 0000 ADD BYTE PTR DS:[EAX],AL
...................................................
004010CC 55 PUSH EBP 我们再这里用Od的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
004010DF 75 1B JNZ SHORT chap702.004010FC
这个程序的输入表没有损坏,可以直接运行.第二种方法在软件加了几层壳时很有用,节省大量时间.前提是你必须找到脱壳规律.
"手动脱壳入门第二篇"脱壳动画!
脱壳教程4:手动脱壳入门第三篇
脱壳教程4:手动脱壳入门第三篇
【使用工具】 Fi,Peid,Ollydbg
【脱壳平台】 Win2K/XP
【软件名称】 chap703.exe
【软件简介】 Aspack 1.03加壳的一个Win98的记事本
【软件大小】 21.2KB
【加壳方式】 ASPack 1.08.03 -> Alexey Solodovnikov
【保护方式】 Aspack 1.03
【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:
脱壳内容
好,我们这次脱Aspack的壳看看它的特性。
本地下载
首先必须的工具要准备好,
附件中壳为Fi测壳为Aspack1.0803
手动脱壳建议大家用Ollydbg,工作平台Win2000,WinXp,Win9x不推荐。
手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。不要用Peid查入口,单步跟踪,提高手动找入口能力。
用OD载入程序后。
Od提示程序加壳,选不继续分析。
0040D000 > 60 PUSHAD 停在这里,我们先记住Aspack壳的加壳入口第一句是PUSHAD
和UPX几乎一样的,但第二句以后完全不同.
0040D001 E8 00000000 CALL chap703.0040D006 这里看清,直接Call下一句,F8走有些系统会跑飞,程序直接运行.我们一般遇到Call,很近的Call用F7走.较远的Call用F8步过,我们以后会体会更深.
0040D006 5D POP EBP Call这里.
0040D007 81ED 0A4A4400 SUB EBP,444A0A
0040D00D BB 044A4400 MOV EBX,444A04
0040D012 03DD ADD EBX,EBP
0040D014 2B9D B1504400 SUB EBX,DWORD PTR SS:[EBP+4450B1]
0040D01A 83BD AC504400 0>CMP DWORD PTR SS:[EBP+4450AC],0
0040D021 899D BB4E4400 MOV DWORD PTR SS:[EBP+444EBB],EBX
0040D027 0F85 17050000 JNZ chap703.0040D544
0040D02D 8D85 D1504400 LEA EAX,DWORD PTR SS:[EBP+4450D1]
0040D033 50 PUSH EAX
0040D034 FF95 94514400 CALL DWORD PTR SS:[EBP+445194]
到这里我们看到信息框中写有GetModuleHandleA
0040D034 FF95 94514400 CALL DWORD PTR SS:[EBP+445194] ; kernel32.GetModuleHandleA
0040D03A 8985 CD504400 MOV DWORD PTR SS:[EBP+4450CD],EAX
0040D040 8BF8 MOV EDI,EAX |
|