大家好,拍花QQ545235297 我已经给大家说过脱壳的前奏还有一些简单的脱
今天这课就是脱隐藏表面的内壳,当用peid侦壳 显示 ASPack 2.12 -> Alexey Solodovnikov
这些就是,很多菜鸟都不会这些 所以我这课给大家讲解,大家用心看下/
-----------------------------------------------
0057E001 > 60 PUSHAD
======〉载入来到这里
0057E002 E8 03000000 CALL memcolla.0057E00A
=======〉变形call f7进入
0057E00A 5D POP EBP ; memcolla.0057E007
0057E00B 45 INC EBP
0057E00C 55 PUSH EBP
0057E00D C3 RETN 返回57E008
0057E008 /EB 04 JMP SHORT memcolla.0057E00E
0057E00A |5D POP EBP
0057E00B |45 INC EBP
0057E00C |55 PUSH EBP
0057E00D |C3 RETN
0057E00E E8 01000000 CALL memcolla.0057E014
=======〉变形call f7进入
0057E014 5D POP EBP
0057E015 BB EDFFFFFF MOV EBX,-13
0057E01A 03DD ADD EBX,EBP
0057E01C 81EB 00E01700 SUB EBX,17E000
0057E022 83BD 22040000 00 CMP DWORD PTR SS:[EBP+422],0
0057E029 899D 22040000 MOV DWORD PTR SS:[EBP+422],EBX
0057E02F 0F85 65030000 JNZ memcolla.0057E39A
==========>一个大的跳转,跳!
0057E39A B8 00100000 MOV EAX,1000
0057E39F 50 PUSH EAX
0057E3A0 0385 22040000 ADD EAX,DWORD PTR SS:[EBP+422]
0057E3A6 59 POP ECX
0057E3A7 0BC9 OR ECX,ECX
0057E3A9 8985 A8030000 MOV DWORD PTR SS:[EBP+3A8],EAX
0057E3AF 61 POPAD 这里的代码 正是aspack的特征点
0057E3B0 75 08 JNZ SHORT memcolla.0057E3BA
0057E3B2 B8 01000000 MOV EAX,1
0057E3B7 C2 0C00 RETN 0C
0057E3BA 68 00000000 PUSH 0
0057E3BF C3 RETN 跳向 4010000
------------------------------------------------------
00401000 87C0 XCHG EAX,EAX
=======>来到这里,一般就可以dump了 ,很顺利,但是这是一个变形spack,我们的工作还没有完成,继续!
00401002 FC CLD
00401003 80EC 00 SUB AH,0
00401006 83F1 00 XOR ECX,0
00401009 90 NOP
0040100A 90 NOP
0040100B FC CLD
0040100C BB 00D45700 MOV EBX,memcolla.0057D400
00401011 FFE3 JMP EBX
==========〉跳向 57D400
0057D400 /EB 01 JMP SHORT memcolla.0057D403
0057D402 |34 86 XOR AL,86
0057D404 C9 LEAVE
0057D405 66:83C5 00 ADD BP,0
0057D409 90 NOP
0057D40A FC CLD
0057D40B FC CLD
0057D40C FC CLD
0057D40D E8 12000000 CALL memcolla.0057D424
========〉注意这里call调用的地址就在底下,很近,其实这是一个变形(也可称为花指令)f7进入
0057D412 80CA 00 OR DL,0
0057D415 50 PUSH EAX
0057D416 9C PUSHFD
0057D417 58 POP EAX
0057D418 F6C4 01 TEST AH,1
0057D41B - 75 FE JNZ SHORT memcolla.0057D41B
0057D41D 58 POP EAX
0057D41E 83ED 00 SUB EBP,0
0057D421 90 NOP
0057D422 FC CLD
0057D423 90 NOP
0057D424 5D POP EBP 在这里!
0057D425 EB 01 JMP SHORT memcolla.0057D428
0057D428 90 NOP
0057D429 FC CLD
0057D42A FC CLD
0057D42B 81ED 05104000 SUB EBP,memcolla.00401005
0057D431 53 PUSH EBX
0057D432 9C PUSHFD
0057D433 5B POP EBX
0057D434 F6C7 01 TEST BH,1
0057D437 - 75 FE JNZ SHORT memcolla.0057D437
0057D439 5B POP EBX
0057D43A 8ADB MOV BL,BL
0057D43C 0C 00 OR AL,0
0057D43E 66:8BC9 MOV CX,CX
0057D441 90 NOP
0057D442 66:8BF6 MOV SI,SI
0057D445 83C4 00 ADD ESP,0
0057D448 8BC9 MOV ECX,ECX
0057D44A FC CLD
0057D44B FC CLD
0057D44C 90 NOP
0057D44D 8DB5 1B114000 LEA ESI,DWORD PTR SS:[EBP+40111B]
0057D453 66:83C3 00 ADD BX,0
0057D457 8AFF MOV BH,BH
0057D459 EB 01 JMP SHORT memcolla.0057D45C
0057D45B 57 PUSH EDI
0057D45C EB 01 JMP SHORT memcolla.0057D45F
0057D45E 8783 C80090FC XCHG DWORD PTR DS:[EBX+FC9000C8],EAX
0057D464 FC CLD
0057D465 BA 7C020000 MOV EDX,27C
0057D46A 51 PUSH ECX
0057D46B 9C PUSHFD
0057D46C 59 POP ECX
0057D46D F6C5 01 TEST CH,1
0057D470 - 75 FE JNZ SHORT memcolla.0057D470
0057D472 59 POP ECX
0057D473 8AC0 MOV AL,AL
0057D475 80EC 00 SUB AH,0
0057D478 FC CLD
0057D479 90 NOP
0057D47A 51 PUSH ECX
0057D47B 9C PUSHFD
0057D47C 59 POP ECX
0057D47D F6C5 01 TEST CH,1
0057D480 - 75 FE JNZ SHORT memcolla.0057D480
0057D482 59 POP ECX
0057D483 EB 01 JMP SHORT memcolla.0057D486
0057D485 CF IRETD
0057D486 66:83C7 00 ADD DI,0
0057D48A FC CLD
0057D48B FC CLD
0057D48C 90 NOP
0057D48D FC CLD
0057D48E 8A0E MOV CL,BYTE PTR DS:[ESI]
0057D490 51 PUSH ECX
0057D491 9C PUSHFD
0057D492 59 POP ECX
0057D493 F6C5 01 TEST CH,1
0057D496 - 75 FE JNZ SHORT memcolla.0057D496
0057D498 59 POP ECX
0057D499 66:83CC 00 OR SP,0
0057D49D 66:83CB 00 OR BX,0
0057D4A1 66:8BC9 MOV CX,CX
0057D4A4 83F7 00 XOR EDI,0
0057D4A7 90 NOP
0057D4A8 90 NOP
0057D4A9 83CF 00 OR EDI,0
0057D4AC 53 PUSH EBX
0057D4AD 9C PUSHFD
0057D4AE 5B POP EBX
0057D4AF F6C7 01 TEST BH,1
0057D4B2 - 75 FE JNZ SHORT memcolla.0057D4B2
0057D4B4 5B POP EBX
0057D4B5 FC CLD
0057D4B6 FC CLD
0057D4B7 90 NOP
0057D4B8 C0C1 F6 ROL CL,0F6 ; 移动常数超出 1..31 的范围
0057D4BB 87ED XCHG EBP,EBP
0057D4BD 87C9 XCHG ECX,ECX
0057D4BF 8BC0 MOV EAX,EAX
0057D4C1 66:83CE 00 OR SI,0
0057D4C5 66:35 0000 XOR AX,0
....
....
....
0057D50E 46 INC ESI
0057D50F 53 PUSH EBX
0057D510 9C PUSHFD
0057D511 5B POP EBX
0057D512 F6C7 01 TEST BH,1
0057D515 - 75 FE JNZ SHORT memcolla.0057D515
0057D517 5B POP EBX ; memcolla.0057D400
0057D518 66:83ED 00 SUB BP,0
0057D51C FC CLD
0057D51D 90 NOP
0057D51E 90 NOP
0057D51F 90 NOP
0057D520 85D2 TEST EDX,EDX
0057D522 ^ 0F85 66FFFFFF JNZ memcolla.0057D48E
=========〉 注意这里 ,向回跳,不能让它跳
0057D528 60 PUSHAD
========〉F4
0057D528 60 PUSHAD
0057D529 BE 00104000 MOV ESI,memcolla.00401000
0057D52E B8 75C05027 MOV EAX,2750C075
0057D533 8906 MOV DWORD PTR DS:[ESI],EAX
0057D535 B8 72D75248 MOV EAX,4852D772
0057D53A 8946 04 MOV DWORD PTR DS:[ESI+4],EAX
0057D53D B8 1EBC7546 MOV EAX,4675BC1E
0057D542 8946 08 MOV DWORD PTR DS:[ESI+8],EAX
0057D545 B8 1FD11027 MOV EAX,2710D11F
0057D54A 8946 0C MOV DWORD PTR DS:[ESI+C],EAX
0057D54D B8 71D01127 MOV EAX,2711D071
0057D552 8946 10 MOV DWORD PTR DS:[ESI+10],EAX
0057D555 B8 71D01037 MOV EAX,3710D071
0057D55A 8946 14 MOV DWORD PTR DS:[ESI+14],EAX
0057D55D B8 31D01561 MOV EAX,6115D031
0057D562 8946 18 MOV DWORD PTR DS:[ESI+18],EAX
0057D565 61 POPAD
0057D566 EB 02 JMP SHORT memcolla.0057D56A
0057D568 3A23 CMP AH,BYTE PTR DS:[EBX]
0057D56A 60 PUSHAD
0057D56B 9C PUSHFD
0057D56C BE 00104000 MOV ESI,memcolla.00401000
0057D571 8BFE MOV EDI,ESI
0057D573 B9 80FE0300 MOV ECX,3FE80
0057D578 BB 71D01027 MOV EBX,2710D071
0057D57D AD LODS DWORD PTR DS:[ESI]
0057D57E 33C3 XOR EAX,EBX
0057D580 AB STOS DWORD PTR ES:[EDI]
0057D581 ^ E2 FA LOOPD SHORT memcolla.0057D57D
========>向回循环,破坏掉
0057D583 9D POPFD
========>F4 来到这里
0057D584 61 POPAD
0057D585 EB 02 JMP SHORT memcolla.0057D589
0057D587 3A23 CMP AH,BYTE PTR DS:[EBX]
0057D589 60 PUSHAD
0057D58A 9C PUSHFD
0057D58B BE 00105000 MOV ESI,memcolla.00501000
0057D590 8BFE MOV EDI,ESI
0057D592 B9 000D0000 MOV ECX,0D00
0057D597 BB 71D01027 MOV EBX,2710D071
0057D59C AD LODS DWORD PTR DS:[ESI]
0057D59D 33C3 XOR EAX,EBX
0057D59F AB STOS DWORD PTR ES:[EDI]
0057D5A0 ^ E2 FA LOOPD SHORT memcolla.0057D59C
========>向回循环,破坏掉
0057D5A2 9D POPFD
========>F4 来到这里
0057D5A3 61 POPAD
0057D5A4 BA F8085000 MOV EDX,memcolla.005008F8
0057D5A9 FFE2 JMP EDX .............跳向程序的OEP
--------------------------------------------------------
005008F8 55 PUSH EBP
========>在这里就可以dump了
005008F9 8BEC MOV EBP,ESP
005008FB 83C4 F0 ADD ESP,-10
005008FE 53 PUSH EBX
———————————————————————
修复