好友
阅读权限25
听众
最后登录1970-1-1
|
一
00400104 >83EC 04 SUB ESP,4
00400107C70424 00C04000 MOV DWORD PTR SS:[ESP],UnPackMe.0040C000
0040010EC3RETN
内存镜像法
Memory map, 项目 25//F2 运行
地址=00409000
大小=00005000 (20480.)
属主=UnPackMe 00400000
区段=.rsrc
包含=数据,导入,资源
类型=映像 01001002
访问=R
初始访问=RWE
0040C000F5CMC
0040C00150PUSH EAX
0040C00273 04 JNB SHORT UnPackMe.0040C008
0040C00466:C1C6 50ROL SI,50; 位移常数超出 1..31 的范围
0040C00858POP EAX
0040C00966:A9 04FDTEST AX,0FD04
0040C00D51PUSH ECX
0040C00E66:83CE 00OR SI,0
Memory map, 项目 23//F2 运行
地址=00401000
大小=00007000 (28672.)
属主=UnPackMe 00400000
区段=.data
包含=代码
类型=映像 01001002
访问=R
初始访问=RWE
二
0040892B8807MOV BYTE PTR DS:[EDI],AL//来到这里
0040892D47INC EDI
0040892E01DBADD EBX,EBX
0040893075 07 JNZ SHORT UnPackMe.00408939
004089328B1EMOV EBX,DWORD PTR DS:[ESI]
0040893483EE FC SUB ESI,-4
0040893711DBADC EBX,EBX
00408939^ 72 ED JB SHORT UnPackMe.00408928
往下拉
00408A9D39C4CMP ESP,EAX
00408A9F^ 75 FA JNZ SHORT UnPackMe.00408A9B
00408AA183EC 80 SUB ESP,-80
00408AA4- E9 AE460000 JMP UnPackMe.0040D157 //来到这里下F2 运行,然后单步
三
0040D157 /76 04 JBE SHORT UnPackMe.0040D15D //来到这里
0040D159 |56PUSH ESI
0040D15A |83C4 04 ADD ESP,4
0040D15D \70 07 JO SHORT UnPackMe.0040D166
0040D15F56PUSH ESI
0040D16057PUSH EDI
0040D161C1E3 60 SHL EBX,60 ; 位移常数超出 1..31 的范围
0040D1645FPOP EDI
0040D1655EPOP ESI
0040D16666:83C1 00ADD CX,0
0040D16AF9STC
0040D16B66:83C4 00ADD SP,0
0040D16F05 00000000 ADD EAX,0
四
Memory map, 项目 23 //F2运行
地址=00401000
大小=00007000 (28672.)
属主=UnPackMe 00400000
区段=.data
包含=代码
类型=映像 01001002
访问=R
初始访问=RWE
0040D2228038 CC CMP BYTE PTR DS:[EAX],0CC //来到这里
0040D225^ 0F84 0BF8FFFF JE UnPackMe.0040CA36
0040D22B56PUSH ESI
0040D22C50PUSH EAX
0040D22D83C6 00 ADD ESI,0
0040D23058POP EAX
0040D2315EPOP ESI
0040D23266:A9 1C25TEST AX,251C
0040D23671 06 JNO SHORT UnPackMe.0040D23E
0040D23857PUSH EDI
0040D23966:A9 56A2TEST AX,0A256
0040D23D5FPOP EDI
0040D23E57PUSH EDI
0040D23F56PUSH ESI
0040D240BE 7E653BEE MOV ESI,EE3B657E
0040D2455EPOP ESI
0040D2465FPOP EDI
0040D24766:C1C1 60ROL CX,60; 位移常数超出 1..31 的范围
0040D24BF5CMC
0040D24C8038 55 CMP BYTE PTR DS:[EAX],55//比较OEP头的第一个字节是否等55,如果是,下面则不跳!
0040D24F75 24 JNZ SHORT UnPackMe.0040D275 //这里改成JMP 否是 OEP头会被NOP掉
0040D251C600 90 MOV BYTE PTR DS:[EAX],90//这里是把OEP头的第一个字节修改为90 NOP掉
0040D25435 00000000 XOR EAX,0
0040D25985C9TEST ECX,ECX
0040D25B53PUSH EBX
0040D25C80EA 00 SUB DL,0
0040D25F5BPOP EBX
0040D26035 00000000 XOR EAX,0
0040D26581FA 0E86733A CMP EDX,3A73860E
0040D26B79 06 JNS SHORT UnPackMe.0040D273
0040D26D7C 04 JL SHORT UnPackMe.0040D273
0040D26F66:83F4 00XOR SP,0
0040D2732C 00 SUB AL,0
0040D275FFE0JMP EAX//在这里下F2,运行,单步
四
0040170055PUSH EBP //OEP
004017018BECMOV EBP,ESP
004017036A FF PUSH -1
0040170568 00254000 PUSH UnPackMe.00402500
0040170A68 86184000 PUSH UnPackMe.00401886 ; JMP 到 msvcrt._except_handler3
0040170F64:A1 00000000MOV EAX,DWORD PTR FS:[0]
0040171550PUSH EAX
0040171664:8925 0000000>MOV DWORD PTR FS:[0],ESP
0040171D83EC 68 SUB ESP,68
0040172053PUSH EBX
0040172156PUSH ESI
0040172257PUSH EDI
004017238965 E8 MOV DWORD PTR SS:[EBP-18],ESP
暂时先这样了,困了,睡觉咯!脱壳脚本,明天没事再写吧! |
|