【ChinaBeta.Cn 网络安全】
0040D1B9 /0F84 A0000000 JE NOTEPAD.0040D25F 又是一个大跳转,前面的就不用留意了,留意这里。 0040D1BF |894A 0C MOV DWORD PTR DS:[EDX+C],ECX 0040D1C2 |0385 47050000 ADD EAX,DWORD PTR SS:[EBP+547] 0040D1C8 |52 PUSH EDX 0040D1C9 |51 PUSH ECX 0040D1CA |50 PUSH EAX 0040D1CB |50 PUSH EAX 0040D1CC |8985 53050000 MOV DWORD PTR SS:[EBP+553],EAX 0040D1D2 |8BD8 MOV EBX,EAX ............................................................. 0040D1D4 E8 4F030000 CALL NOTEPAD.0040D528 F8步过远程Call 0040D1D9 5B POP EBX 0040D1DA 59 POP ECX 0040D1DB 5A POP EDX 0040D1DC 0BC0 OR EAX,EAX 0040D1DE 75 12 JNZ SHORT NOTEPAD.0040D1F2 0040D1E0 52 PUSH EDX 0040D1E1 51 PUSH ECX 0040D1E2 53 PUSH EBX 0040D1E3 E8 46030000 CALL NOTEPAD.0040D52E F8步过远程Call 0040D1E8 0BC0 OR EAX,EAX 0040D1EA 0F84 82000000 JE NOTEPAD.0040D272 又是一个大跳转,真多。 ............................................................. 0040D218 /74 3D JE SHORT NOTEPAD.0040D257 看这个跳转的位置,我们看到了Popad标志,快到了,不能让他往回走,继续向下。 0040D21A |890E MOV DWORD PTR DS:[ESI],ECX 0040D21C |79 05 JNS SHORT NOTEPAD.0040D223 0040D21E |0FB7C0 MOVZX EAX,AX 0040D221 |EB 0D JMP SHORT NOTEPAD.0040D230 0040D223 |0385 47050000 ADD EAX,DWORD PTR SS:[EBP+547] 0040D229 |66:C700 0000 MOV WORD PTR DS:[EAX],0 ............................................................. 0040D23D E8 F2020000 CALL NOTEPAD.0040D534 0040D242 5B POP EBX 0040D243 0BC0 OR EAX,EAX 0040D245 74 4D JE SHORT NOTEPAD.0040D294 没跳,也不能跳,它会跳过Popad语句,那样的话我们还要跟踪。 0040D247 5B POP EBX 0040D248 59 POP ECX 0040D249 5F POP EDI 0040D24A 8907 MOV DWORD PTR DS:[EDI],EAX 0040D24C 5E POP ESI 0040D24D 5A POP EDX 0040D24E 5B POP EBX 0040D24F 83C6 04 ADD ESI,4 0040D252 83C7 04 ADD EDI,4 0040D255 ^ EB BD JMP SHORT NOTEPAD.0040D214 往回跳 0040D257 83C2 14 ADD EDX,14 0040D25A ^ E9 55FFFFFF JMP NOTEPAD.0040D1B4 往回跳 0040D25F 8B85 57050000 MOV EAX,DWORD PTR SS:[EBP+557] 太顺利,F4直接到这里。 0040D265 0385 8B050000 ADD EAX,DWORD PTR SS:[EBP+58B] Eax寄存器里面10CC+400000=4010CC 0040D26B 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX 0040D26F 61 POPAD 出口标志 0040D270 FFE0 JMP EAX 跨段跳跃到我们熟悉的记事本Oep=4010CC
004010CC 55 PUSH EBP 入口点,跨段来到这里并且经过了PoPad关键字,我们在这里用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 NOTEPAD.004010FC 004010E1 56 PUSH ESI 重建输入表时,插件有两个选项。Method2重建输入表很快,脱壳后运行率高。Method1重建输入表慢,脱壳后运行率较低。本程序用Method1,2重建输入表后程序都可直接运行。
简单方法: 0040D000 60 PUSHAD 0040D001 E8 00000000 CALL NOTEPAD.0040D006 0040D006 5D POP EBP 0040D007 83ED 06 SUB EBP,6 0040D00A 80BD 3E050000 0>CMP BYTE PTR SS:[EBP+53E],1 0040D011 0F84 48020000 JE NOTEPAD.0040D25F 0040D017 C685 3E050000 0>MOV BYTE PTR SS:[EBP+53E],1 运行到这里时Ctrl+F向下找Popad 0040D26F 61 POPAD F2下断点F9运行到这里后取消断点。 0040D270 FFE0 JMP EAX 004010CC 55 PUSH EBP 入口点,跨段来到这里并且经过了PoPad关键字,我们在这里用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 NOTEPAD.004010FC 004010E1 56 PUSH ESI 脱壳后软件运行正常。
上一页 [1] [2]
(责任编辑:hahack)
注:本站所有资料均为个人爱好与广大网友分享!如用于非法!造成一切后果自负·与本站无关! |