现在只会用补区段的方法脱,,想脱得更完美些,所以学习手动修复遇到困难,,请大侠们多多指教下。
查壳为ASProtect2。11X壳,,OD载入后粗跟了看看,IAT没加密,就是有很多CALL变形
01460368 55 PUSH EBP 伪OEP
01460369 2BE9 SUB EBP,ECX
0146036B 65:EB 01 JMP SHORT 0146036F ; 多余的前缀
0146036E 6933 6C242883 IMUL ESI,DWORD PTR DS:[EBX],8328246C
01460374 CD 99 INT 99
01460376 336C24 08 XOR EBP,DWORD PTR SS:[ESP+8]
0146037A 336C24 28 XOR EBP,DWORD PTR SS:[ESP+28]
0146037E 8D6C04 5D LEA EBP,DWORD PTR SS:[ESP+EAX+5D]
01460382 2BE8 SUB EBP,EAX
01460384 8D6C25 A3 LEA EBP,DWORD PTR SS:[EBP-5D]
//////////////////////////////
CTRL+B 搜FF15
01460507 FF15 10A14300 CALL DWORD PTR DS:[43A110] ; kernel32.ExitProcess
0146050D C3 RETN
0146050E FF35 F4FF4400 PUSH DWORD PTR DS:[44FFF4]
01460514 FF7424 08 PUSH DWORD PTR SS:[ESP+8]
01460518 68 01124601 PUSH 1461201
0146051D E8 DEFA0500 CALL 014C0000
/////////////////////////////////
回到OEP处CTRL+G到01276730 E8 17BEFDFF CALL 0125254C
01276726 33C0 XOR EAX,EAX
01276728 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
0127672B B8 00070000 MOV EAX,700
01276730 E8 17BEFDFF CALL 0125254C 申请内存空间14E0000,,,这行改为JMP14E0043
/////////////////////////////////
014E0000 0000 ADD BYTE PTR DS:[EAX],AL
014E0002 0000 ADD BYTE PTR DS:[EAX],AL
014E0004 0000 ADD BYTE PTR DS:[EAX],AL
014E0006 0000 ADD BYTE PTR DS:[EAX],AL
014E0008 0000 ADD BYTE PTR DS:[EAX],AL
014E000A BA 00104000 MOV EDX,DownLoad.<模块入口点> 这里新建EIP,,F9运行
014E000F 803A E8 CMP BYTE PTR DS:[EDX],0E8
014E0012 75 14 JNZ SHORT 014E0028
014E0014 8B42 01 MOV EAX,DWORD PTR DS:[EDX+1]
014E0017 03C2 ADD EAX,EDX
014E0019 05 05000000 ADD EAX,5
014E001E 3D 00004C01 CMP EAX,14C0000
014E0023 75 03 JNZ SHORT 014E0028
014E0025 EB 0C JMP SHORT 014E0033
014E0027 90 NOP
014E0028 42 INC EDX
014E0029 81FA 00A04300 CMP EDX,43A000
014E002F ^ 72 DE JB SHORT 014E000F
014E0031 - EB FE JMP SHORT 014E0031
014E0033 8915 00014E01 MOV DWORD PTR DS:[14E0100],EDX
014E0039 60 PUSHAD
014E003A FFE2 JMP EDX
014E003C 90 NOP
014E003D 90 NOP
014E003E 90 NOP
014E003F 90 NOP
014E0040 90 NOP
014E0041 90 NOP
014E0042 90 NOP
014E0043 60 PUSHAD
014E0044 B8 00A04300 MOV EAX,43A000
014E0049 90 NOP
014E004A 3910 CMP DWORD PTR DS:[EAX],EDX
014E004C 75 23 JNZ SHORT 014E0071
014E004E 8B0D 00014E01 MOV ECX,DWORD PTR DS:[14E0100]
014E0054 C701 FF150000 MOV DWORD PTR DS:[ECX],15FF
014E005A 8941 02 MOV DWORD PTR DS:[ECX+2],EAX
014E005D 61 POPAD
014E005E 90 NOP
014E005F 8B15 00014E01 MOV EDX,DWORD PTR DS:[14E0100]
014E0065 90 NOP
014E0066 90 NOP
014E0067 90 NOP
014E0068 ^ EB BE JMP SHORT 014E0028
014E006A 90 NOP
014E006B 90 NOP
014E006C 90 NOP
014E006D 90 NOP
014E006E 90 NOP
014E006F 90 NOP
014E0070 90 NOP
014E0071 83C0 04 ADD EAX,4
014E0074 3D 7CA64300 CMP EAX,43A67C
014E0079 ^ 7E CF JLE SHORT 014E004A
014E007B ^ EB E0 JMP SHORT 014E005D
014E007D 90 NOP
014E007E 90 NOP
014E007F 90 NOP
00 00 00 00 00 00 00 00 00 00 BA 00 10 40 00 80 3A E8 75 14 8B 42 01 03 C2 05 05 00 00 00 3D 00
00 4C 01 75 03 EB 0C 90 42 81 FA 00 A0 43 00 72 DE EB FE 89 15 00 01 4E 01 60 FF E2 90 90 90 90
90 90 90 60 B8 00 A0 43 00 90 39 10 75 23 8B 0D 00 01 4E 01 C7 01 FF 15 00 00 89 41 02 61 90 8B
15 00 01 4E 01 90 90 90 EB BE 90 90 90 90 90 90 90 83 C0 04 3D 7C A6 43 00 7E CF EB E0 90 90 90
按照大侠们说的数据窗口看看是不是己修复好了,,CTRL+G 0146051D
看了几个CALL 014C0000的地方,一个都没变,,
大侠们指教下,,是那里错了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!