最初由 kanxue 发布
处理IAT的代码:
找"处理IAT的代码",不知下面方法找的对否:
1:bp 1002ced4
2:bp 1002cef7
1002CEF7 B8 21BD0200 MOV EAX,2BD21--->断在这
1002CEFC 64:8F05 0000000>POP DWORD PTR FS:[0]
1002CF03 83C4 04 ADD ESP,4
1002CF06 55 PUSH EBP
1002CF07 53 PUSH EBX
1002CF08 51 PUSH ECX
1002CF09 57 PUSH EDI
1002CF0A 56 PUSH ESI
1002CF0B 52 PUSH EDX
1002CF0C 8D98 8F110010 LEA EBX,DWORD PTR DS:[EAX+1000118F]
1002CF12 8B53 18 MOV EDX,DWORD PTR DS:[EBX+18]
1002CF15 52 PUSH EDX
1002CF16 8BE8 MOV EBP,EAX
1002CF18 6A 40 PUSH 40
1002CF1A 68 00100000 PUSH 1000
1002CF1F FF73 04 PUSH DWORD PTR DS:[EBX+4]
1002CF22 6A 00 PUSH 0
1002CF24 8B4B 10 MOV ECX,DWORD PTR DS:[EBX+10]
1002CF27 03CA ADD ECX,EDX
1002CF29 8B01 MOV EAX,DWORD PTR DS:[ECX]
1002CF2B FFD0 CALL EAX
1002CF2D 5A POP EDX
1002CF2E 8BF8 MOV EDI,EAX
1002CF30 50 PUSH EAX
1002CF31 52 PUSH EDX
1002CF32 8B33 MOV ESI,DWORD PTR DS:[EBX]
1002CF34 8B43 20 MOV EAX,DWORD PTR DS:[EBX+20]
1002CF37 03C2 ADD EAX,EDX
1002CF39 8B08 MOV ECX,DWORD PTR DS:[EAX]
1002CF3B 894B 20 MOV DWORD PTR DS:[EBX+20],ECX
1002CF3E 8B43 1C MOV EAX,DWORD PTR DS:[EBX+1C]
1002CF41 03C2 ADD EAX,EDX
1002CF43 8B08 MOV ECX,DWORD PTR DS:[EAX]
1002CF45 894B 1C MOV DWORD PTR DS:[EBX+1C],ECX
1002CF48 03F2 ADD ESI,EDX
1002CF4A 8B4B 0C MOV ECX,DWORD PTR DS:[EBX+C]
1002CF4D 03CA ADD ECX,EDX
1002CF4F 8D43 1C LEA EAX,DWORD PTR DS:[EBX+1C]
1002CF52 50 PUSH EAX
1002CF53 57 PUSH EDI
1002CF54 56 PUSH ESI
1002CF55 FFD1 CALL ECX
1002CF57 5A POP EDX
1002CF58 58 POP EAX
1002CF59 0343 08 ADD EAX,DWORD PTR DS:[EBX+8]
1002CF5C 8BF8 MOV EDI,EAX
1002CF5E 52 PUSH EDX
1002CF5F 8BF0 MOV ESI,EAX
1002CF61 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4]
1002CF64 83C0 04 ADD EAX,4
1002CF67 2BF0 SUB ESI,EAX
1002CF69 8956 08 MOV DWORD PTR DS:[ESI+8],EDX
1002CF6C 8B4B 10 MOV ECX,DWORD PTR DS:[EBX+10]
1002CF6F 894E 24 MOV DWORD PTR DS:[ESI+24],ECX
1002CF72 8B4B 14 MOV ECX,DWORD PTR DS:[EBX+14]
1002CF75 51 PUSH ECX
1002CF76 894E 28 MOV DWORD PTR DS:[ESI+28],ECX
1002CF79 8B4B 0C MOV ECX,DWORD PTR DS:[EBX+C]
1002CF7C 894E 14 MOV DWORD PTR DS:[ESI+14],ECX
1002CF7F FFD7 CALL EDI------>F7进入.
1002CF81 8985 82120010 MOV DWORD PTR SS:[EBP+10001282],EAX
1002CF87 8BF0 MOV ESI,EAX
1002CF89 59 POP ECX
1002CF8A 5A POP EDX
1002CF8B EB 0C JMP SHORT packed.1002CF99
1002CF8D 03CA ADD ECX,EDX
1002CF8F 68 00800000 PUSH 8000
1002CF94 6A 00 PUSH 0
1002CF96 57 PUSH EDI
1002CF97 FF11 CALL DWORD PTR DS:[ECX]
1002CF99 8BC6 MOV EAX,ESI
1002CF9B 5A POP EDX
1002CF9C 5E POP ESI
1002CF9D 5F POP EDI
1002CF9E 59 POP ECX
1002CF9F 5B POP EBX
1002CFA0 5D POP EBP
1002CFA1 FFE0 JMP EAX--->这里下一个硬件断点,这里方便处理IAT之后按F9就可到这了.
------------------------------------------------------------
003F09A8 53 PUSH EBX---->进入这里
003F09A9 57 PUSH EDI
003F09AA 56 PUSH ESI
003F09AB 55 PUSH EBP
003F09AC E8 00000000 CALL 003F09B1
003F09B1 5D POP EBP
003F09B2 81ED 8F120010 SUB EBP,1000128F
003F09B8 8DB5 86120010 LEA ESI,DWORD PTR SS:[EBP+10001286]
003F09BE 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4]
003F09C1 83C0 04 ADD EAX,4
003F09C4 2BF0 SUB ESI,EAX
003F09C6 8BDE MOV EBX,ESI
003F09C8 8B56 08 MOV EDX,DWORD PTR DS:[ESI+8]
003F09CB 8B76 1C MOV ESI,DWORD PTR DS:[ESI+1C]
003F09CE 03F2 ADD ESI,EDX
003F09D0 8DBD 3E1B0010 LEA EDI,DWORD PTR SS:[EBP+10001B3E]
003F09D6 AD LODS DWORD PTR DS:[ESI]
003F09D7 AB STOS DWORD PTR ES:[EDI]
003F09D8 AD LODS DWORD PTR DS:[ESI]
003F09D9 AB STOS DWORD PTR ES:[EDI]
003F09DA FC CLD
003F09DB 837B 48 01 CMP DWORD PTR DS:[EBX+48],1
003F09DF 74 15 JE SHORT 003F09F6
003F09E1 8B73 44 MOV ESI,DWORD PTR DS:[EBX+44]
003F09E4 85F6 TEST ESI,ESI
003F09E6 74 0E JE SHORT 003F09F6
003F09E8 B9 1D000000 MOV ECX,1D
003F09ED 03F2 ADD ESI,EDX
003F09EF 8B7B 40 MOV EDI,DWORD PTR DS:[EBX+40]
003F09F2 03FA ADD EDI,EDX
003F09F4 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
003F09F6 8BF3 MOV ESI,EBX
003F09F8 8DBD 2A1B0010 LEA EDI,DWORD PTR SS:[EBP+10001B2A]
003F09FE 012F ADD DWORD PTR DS:[EDI],EBP
003F0A00 016F 04 ADD DWORD PTR DS:[EDI+4],EBP
003F0A03 016F 08 ADD DWORD PTR DS:[EDI+8],EBP
003F0A06 8D8D A11A0010 LEA ECX,DWORD PTR SS:[EBP+10001AA1]
003F0A0C 51 PUSH ECX
003F0A0D E8 AF000000 CALL 003F0AC1
003F0A12 6A 00 PUSH 0
003F0A14 56 PUSH ESI
003F0A15 E8 32040000 CALL 003F0E4C
003F0A1A 8B4E 2C MOV ECX,DWORD PTR DS:[ESI+2C]
003F0A1D 8B56 24 MOV EDX,DWORD PTR DS:[ESI+24]
003F0A20 0356 08 ADD EDX,DWORD PTR DS:[ESI+8]
003F0A23 898D 3A1B0010 MOV DWORD PTR SS:[EBP+10001B3A],ECX
003F0A29 6A 40 PUSH 40
003F0A2B 68 00100000 PUSH 1000
003F0A30 51 PUSH ECX
003F0A31 6A 00 PUSH 0
003F0A33 FF12 CALL DWORD PTR DS:[EDX]
003F0A35 8985 361B0010 MOV DWORD PTR SS:[EBP+10001B36],EAX
003F0A3B 56 PUSH ESI
003F0A3C E8 C3020000 CALL 003F0D04
003F0A41 56 PUSH ESI
003F0A42 E8 1B020000 CALL 003F0C62
003F0A47 56 PUSH ESI
003F0A48 E8 67010000 CALL 003F0BB4
003F0A4D 56 PUSH ESI
003F0A4E E8 C8000000 CALL 003F0B1B
003F0A53 6A 01 PUSH 1
003F0A55 56 PUSH ESI
003F0A56 E8 F1030000 CALL 003F0E4C
003F0A5B 8B4E 34 MOV ECX,DWORD PTR DS:[ESI+34]
003F0A5E 85C9 TEST ECX,ECX
003F0A60 74 16 JE SHORT 003F0A78
003F0A62 034E 08 ADD ECX,DWORD PTR DS:[ESI+8]
003F0A65 51 PUSH ECX
003F0A66 56 PUSH ESI
003F0A67 E8 26050000 CALL 003F0F92---->这里F7进入
003F0A6C 85C0 TEST EAX,EAX
003F0A6E 74 08 JE SHORT 003F0A78
003F0A70 6A 00 PUSH 0
003F0A72 FF95 161B0010 CALL DWORD PTR SS:[EBP+10001B16]
003F0A78 8B7B 08 MOV EDI,DWORD PTR DS:[EBX+8]
003F0A7B 8BDE MOV EBX,ESI
003F0A7D 837B 48 01 CMP DWORD PTR DS:[EBX+48],1
003F0A81 75 15 JNZ SHORT 003F0A98
003F0A83 8B43 0C MOV EAX,DWORD PTR DS:[EBX+C]
003F0A86 8B4B 40 MOV ECX,DWORD PTR DS:[EBX+40]
003F0A89 8BF1 MOV ESI,ECX
003F0A8B 03F7 ADD ESI,EDI
003F0A8D C606 E9 MOV BYTE PTR DS:[ESI],0E9
003F0A90 83C1 05 ADD ECX,5
003F0A93 2BC1 SUB EAX,ECX
003F0A95 8946 01 MOV DWORD PTR DS:[ESI+1],EAX
003F0A98 8BF3 MOV ESI,EBX
003F0A9A 57 PUSH EDI
003F0A9B E8 74060000 CALL 003F1114
003F0AA0 8B46 28 MOV EAX,DWORD PTR DS:[ESI+28]
003F0AA3 8B7E 08 MOV EDI,DWORD PTR DS:[ESI+8]
003F0AA6 03C7 ADD EAX,EDI
003F0AA8 68 00800000 PUSH 8000
003F0AAD 6A 00 PUSH 0
003F0AAF FFB5 361B0010 PUSH DWORD PTR SS:[EBP+10001B36]
003F0AB5 FF10 CALL DWORD PTR DS:[EAX]
003F0AB7 8B46 0C MOV EAX,DWORD PTR DS:[ESI+C]
003F0ABA 03C7 ADD EAX,EDI
003F0ABC 5D POP EBP
003F0ABD 5E POP ESI
003F0ABE 5F POP EDI
003F0ABF 5B POP EBX
003F0AC0 C3 RETN
----------------------------------------------------
003F0F92 55 PUSH EBP----->进入这里
003F0F93 8BEC MOV EBP,ESP
003F0F95 53 PUSH EBX
003F0F96 57 PUSH EDI
003F0F97 56 PUSH ESI
003F0F98 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
003F0F9B 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
003F0F9E 33C0 XOR EAX,EAX
003F0FA0 3946 10 CMP DWORD PTR DS:[ESI+10],EAX
003F0FA3 75 04 JNZ SHORT 003F0FA9
003F0FA5 3906 CMP DWORD PTR DS:[ESI],EAX
003F0FA7 74 24 JE SHORT 003F0FCD
003F0FA9 0306 ADD EAX,DWORD PTR DS:[ESI]
003F0FAB 74 03 JE SHORT 003F0FB0
003F0FAD 0343 08 ADD EAX,DWORD PTR DS:[EBX+8]
003F0FB0 8B4E 0C MOV ECX,DWORD PTR DS:[ESI+C]
003F0FB3 034B 08 ADD ECX,DWORD PTR DS:[EBX+8]
003F0FB6 8B7E 10 MOV EDI,DWORD PTR DS:[ESI+10]
003F0FB9 85FF TEST EDI,EDI
003F0FBB 74 03 JE SHORT 003F0FC0
003F0FBD 037B 08 ADD EDI,DWORD PTR DS:[EBX+8]
003F0FC0 50 PUSH EAX
003F0FC1 57 PUSH EDI
003F0FC2 51 PUSH ECX
003F0FC3 53 PUSH EBX
003F0FC4 E8 17000000 CALL 003F0FE0---->这里F7进入
003F0FC9 40 INC EAX
003F0FCA 75 08 JNZ SHORT 003F0FD4
003F0FCC 48 DEC EAX
003F0FCD 5E POP ESI
003F0FCE 5F POP EDI
003F0FCF 5B POP EBX
003F0FD0 C9 LEAVE
003F0FD1 C2 0800 RETN 8
进入之后,一路F8即可接上"老大的处理IAT的代码"