以下是98记事本的脱壳教程
0040D001 > 60 PUSHAD 数据压栈
0040D002 E8 03000000 CALL NOTEPAD.0040D00A 在这里要按键盘F7键进入 ,否则程序就运行了
这是第一个问题:是不是有call 的地方就要单步进入,这是为什么。
0040D007 - E9 EB045D45 JMP 459DD4F7
0040D03C FF95 4D0F0000 CALL DWORD PTR SS:[EBP+F4D]
按键盘F7键来到这里:
0040D00A 5D POP EBP
0040D00B 45 INC EBP
0040D00C 55 PUSH EBP
0040D00D C3 RETN ………………………………..…在这里返回40D008
0040D00E E8 01000000 CALL NOTEPAD.0040D014
0040D013 EB 5D JMP SHORT NOTEPAD.0040D072
0040D008 /EB 04 JMP SHORT NOTEPAD.0040D00E ……….直接跳向0040D00E
0040D00A |5D POP EBP
0040D00B |45 INC EBP
0040D00C |55 PUSH EBP
0040D00D |C3 RETN
0040D00E \E8 01000000 CALL NOTEPAD.0040D014 来到这里,在这里要按键盘F7键进入 ,否则程序就运行了
0040D013 EB 5D JMP SHORT NOTEPAD.0040D072
0040D015 BB EDFFFFFF MOV EBX,-13
按键盘F7键来到这里:
0040D014 5D POP EBP
0040D015 BB EDFFFFFF MOV EBX,-13
0040D01A 03DD ADD EBX,EBP
0040D01C 81EB 00D00000 SUB EBX,0D000
0040D022 83BD 22040000 0>CMP DWORD PTR SS:[EBP+422],0
0040D029 899D 22040000 MOV DWORD PTR SS:[EBP+422],EBX
0040D02F 0F85 65030000 JNZ NOTEPAD.0040D39A …………在这里跳转未实现,我们要让它跳转,按回车键,再按键盘F4键,使得跳转实现。
这里是第2个问题:为什么要让它跳转,他在OD里是不成功的跳转,什么情况下要这样做?
0040D3AF 61 POPAD …………..栈弹出
0040D3B0 75 08 JNZ SHORT NOTEPAD.0040D3BA
0040D3B2 |B8 01000000 MOV EAX,1
0040D3B7 |C2 0C00 RETN 0C
0040D3BA \68 CC104000 PUSH NOTEPAD.004010CC OEP…………..压栈
0040D3BF C3 RETN 跳向程序入口点
来到:
004010CC 55 PUSH EBP 在这里就可以dump了
这是第3个问题:popad应该是壳的出口点了,为什么要到pupsh ebp dumap呢?
新手啥也不懂麻烦大家了,谢谢。
[课程]FART 脱壳王!加量不加价!FART作者讲授!