最初由 cnbragon 发布
把call的代码贴出来看看。
这是那个CALL里的:
0167:0040920B 53 PUSH EBX
0167:0040920C 55 PUSH EBP
0167:0040920D 56 PUSH ESI
0167:0040920E 8BF1 MOV ESI,ECX
0167:00409210 B306 MOV BL,06
0167:00409212 B20C MOV DL,0C
0167:00409214 B105 MOV CL,05
0167:00409216 B009 MOV AL,09
0167:00409218 57 PUSH EDI
0167:00409219 C68424B40100000E MOV BYTE [ESP+01B4],0E
0167:00409221 C68424B501000004 MOV BYTE [ESP+01B5],04
0167:00409229 C68424B60100000D MOV BYTE [ESP+01B6],0D
0167:00409231 C68424B701000001 MOV BYTE [ESP+01B7],01
0167:00409239 C68424B801000002 MOV BYTE [ESP+01B8],02
0167:00409241 C68424B90100000F MOV BYTE [ESP+01B9],0F
0167:00409249 C68424BA0100000B MOV BYTE [ESP+01BA],0B
0167:00409251 C68424BB01000008 MOV BYTE [ESP+01BB],08
0167:00409259 C68424BC01000003 MOV BYTE [ESP+01BC],03
0167:00409261 C68424BD0100000A MOV BYTE [ESP+01BD],0A
0167:00409269 889C24BE010000 MOV [ESP+01BE],BL
0167:00409270 889424BF010000 MOV [ESP+01BF],DL
0167:00409277 888C24C0010000 MOV [ESP+01C0],CL
0167:0040927E 888424C1010000 MOV [ESP+01C1],AL
0167:00409285 C68424C201000000 MOV BYTE [ESP+01C2],00
0167:0040928D C68424C301000007 MOV BYTE [ESP+01C3],07
0167:00409295 C68424C401000000 MOV BYTE [ESP+01C4],00
0167:0040929D C68424C50100000F MOV BYTE [ESP+01C5],0F
0167:004092A5 C68424C601000007 MOV BYTE [ESP+01C6],07
0167:004092AD C68424C701000004 MOV BYTE [ESP+01C7],04
0167:004092B5 C68424C80100000E MOV BYTE [ESP+01C8],0E
0167:004092BD C68424C901000002 MOV BYTE [ESP+01C9],02
0167:004092C5 C68424CA0100000D MOV BYTE [ESP+01CA],0D
0167:004092CD C68424CB01000001 MOV BYTE [ESP+01CB],01
0167:004092D5 C68424CC0100000A MOV BYTE [ESP+01CC],0A
。。。。。这样连续写内存大概510句左右
0167:0040A098 88542471 MOV [ESP+71],DL
0167:0040A09C 88442472 MOV [ESP+72],AL
0167:0040A0A0 C644247300 MOV BYTE [ESP+73],00
0167:0040A0A5 C644247403 MOV BYTE [ESP+74],03
0167:0040A0AA 884C2475 MOV [ESP+75],CL
0167:0040A0AE 885C2476 MOV [ESP+76],BL
0167:0040A0B2 C64424770B MOV BYTE [ESP+77],0B
0167:0040A0B7 E88AD80200 CALL `MFC42!ord_00000337`
这里是CALL `MFC42!ord_00000337:
0167:5F403838 53 PUSH EBX
0167:5F403839 8B1D40B1495F MOV EBX,[5F49B140]
0167:5F40383F 55 PUSH EBP
0167:5F403840 8B6C240C MOV EBP,[ESP+0C]
0167:5F403844 56 PUSH ESI
0167:5F403845 8B35D4BD495F MOV ESI,[5F49BDD4]
0167:5F40384B 57 PUSH EDI
0167:5F40384C 55 PUSH EBP
0167:5F40384D FFD3 CALL EBX ---->msvcrt!malloc
0167:5F40384F 8BF8 MOV EDI,EAX
0167:5F403851 59 POP ECX
0167:5F403852 85FF TEST EDI,EDI
0167:5F403854 0F84546E0500 JZ NEAR 5F45A6AE
0167:5F40385A 8BC7 MOV EAX,EDI
0167:5F40385C 5F POP EDI
0167:5F40385D 5E POP ESI
0167:5F40385E 5D POP EBP
0167:5F40385F 5B POP EBX
0167:5F403860 C3 RET
下面是CALL MFC42!ord_00000337过后的内容:
0167:0040A0BC 8BAC247C020000 MOV EBP,[ESP+027C]
0167:0040A0C3 8BF8 MOV EDI,EAX
0167:0040A0C5 83C404 ADD ESP,BYTE +04
0167:0040A0C8 897C242C MOV [ESP+2C],EDI
0167:0040A0CC 85ED TEST EBP,EBP
0167:0040A0CE 892F MOV [EDI],EBP
0167:0040A0D0 7408 JZ 0040A0DA
0167:0040A0D2 33C0 XOR EAX,EAX
0167:0040A0D4 8A442C54 MOV AL,[ESP+EBP+54]
0167:0040A0D8 8907 MOV [EDI],EAX
0167:0040A0DA 8D8C2448020000 LEA ECX,[ESP+0248]
0167:0040A0E1 E8E4D80200 CALL `MFC42!ord_0000021D`
0167:0040A0E6 8D8C2434020000 LEA ECX,[ESP+0234]
0167:0040A0ED C784246402000000+MOV DWORD [ESP+0264],00
0167:0040A0F8 E8C7D80200 CALL `MFC42!ord_00000238`
0167:0040A0FD 8D4C2420 LEA ECX,[ESP+20]
0167:0040A101 C684246402000001 MOV BYTE [ESP+0264],01
0167:0040A109 E80ED80200 CALL `MFC42!ord_0000021C`
0167:0040A10E 8B8C243C020000 MOV ECX,[ESP+023C]
0167:0040A115 55 PUSH EBP
0167:0040A116 51 PUSH ECX
0167:0040A117 8D8C243C020000 LEA ECX,[ESP+023C]
0167:0040A11E C684246C02000002 MOV BYTE [ESP+026C],02
0167:0040A126 E893D80200 CALL `MFC42!ord_000016E7`
0167:0040A12B 8B942450020000 MOV EDX,[ESP+0250]
0167:0040A132 6834A54400 PUSH DWORD 0044A534
0167:0040A137 52 PUSH EDX
0167:0040A138 8D8C2450020000 LEA ECX,[ESP+0250]
0167:0040A13F E874D80200 CALL `MFC42!ord_000016E5`
0167:0040A144 55 PUSH EBP
0167:0040A145 6A0D PUSH BYTE +0D
0167:0040A147 8D442428 LEA EAX,[ESP+28]
0167:0040A14B 6850AE4400 PUSH DWORD 0044AE50
0167:0040A150 50 PUSH EAX
0167:0040A151 E8E4D70200 CALL `MFC42!ord_00000B02`
0167:0040A156 83C410 ADD ESP,BYTE +10
0167:0040A159 C644241000 MOV BYTE [ESP+10],00
0167:0040A15E 833F00 CMP DWORD [EDI],BYTE +00
0167:0040A161 0F8559010000 JNZ NEAR 0040A2C0
0167:0040A167 660FB64C2410 MOVZX CX,[ESP+10]
0167:0040A16D 8B94243C020000 MOV EDX,[ESP+023C]
0167:0040A174 51 PUSH ECX
0167:0040A175 52 PUSH EDX
0167:0040A176 8D8C243C020000 LEA ECX,[ESP+023C]
0167:0040A17D E83CD80200 CALL `MFC42!ord_000016E7`
0167:0040A182 8B6C2410 MOV EBP,[ESP+10]
0167:0040A186 8B842474020000 MOV EAX,[ESP+0274]
0167:0040A18D 8B8C246C020000 MOV ECX,[ESP+026C]
0167:0040A194 81E5FF000000 AND EBP,FF
0167:0040A19A 8A1C28 MOV BL,[EAX+EBP]
0167:0040A19D 8A86A8010000 MOV AL,[ESI+01A8]
0167:0040A1A3 8A1429 MOV DL,[ECX+EBP]
0167:0040A1A6 32D8 XOR BL,AL
0167:0040A1A8 8B842478020000 MOV EAX,[ESP+0278]
0167:0040A1AF 8D4C2420 LEA ECX,[ESP+20]
0167:0040A1B3 50 PUSH EAX
0167:0040A1B4 55 PUSH EBP
0167:0040A1B5 6850AE4400 PUSH DWORD 0044AE50
0167:0040A1BA 51 PUSH ECX
0167:0040A1BB 885C2440 MOV [ESP+40],BL
0167:0040A1BF 8854242C MOV [ESP+2C],DL
0167:0040A1C3 E872D70200 CALL `MFC42!ord_00000B02`
0167:0040A1C8 8A44242C MOV AL,[ESP+2C]
0167:0040A1CC 83C410 ADD ESP,BYTE +10
0167:0040A1CF 32C3 XOR AL,BL
0167:0040A1D1 C644242800 MOV BYTE [ESP+28],00
0167:0040A1D6 8844241C MOV [ESP+1C],AL
0167:0040A1DA 833F00 CMP DWORD [EDI],BYTE +00
0167:0040A1DD 756E JNZ 0040A24D
0167:0040A1DF 8B7C2428 MOV EDI,[ESP+28]
0167:0040A1E3 8B442430 MOV EAX,[ESP+30]
0167:0040A1E7 81E7FF000000 AND EDI,FF
0167:0040A1ED B907000000 MOV ECX,07
0167:0040A1F2 2BCF SUB ECX,EDI
0167:0040A1F4 BB01000000 MOV EBX,01
0167:0040A1F9 D3E3 SHL EBX,CL
0167:0040A1FB 25FF000000 AND EAX,FF
0167:0040A200 99 CDQ
0167:0040A201 F7FB IDIV EBX
0167:0040A203 2501000080 AND EAX,80000001
0167:0040A208 7905 JNS 0040A20F
0167:0040A20A 48 DEC EAX
0167:0040A20B 83C8FE OR EAX,BYTE -02
0167:0040A20E 40 INC EAX
0167:0040A20F 8D94EF68010000 LEA EDX,[EDI+EBP*8+0168]
0167:0040A216 880432 MOV [EDX+ESI],AL
0167:0040A219 8B44241C MOV EAX,[ESP+1C]
0167:0040A21D 25FF000000 AND EAX,FF
0167:0040A222 99 CDQ
0167:0040A223 F7FB IDIV EBX
0167:0040A225 2501000080 AND EAX,80000001
0167:0040A22A 7905 JNS 0040A231
0167:0040A22C 48 DEC EAX
0167:0040A22D 83C8FE OR EAX,BYTE -02
0167:0040A230 40 INC EAX
0167:0040A231 8D8CEF28010000 LEA ECX,[EDI+EBP*8+0128]
0167:0040A238 8B7C242C MOV EDI,[ESP+2C]
0167:0040A23C 880431 MOV [ECX+ESI],AL
0167:0040A23F 8A442428 MOV AL,[ESP+28]
0167:0040A243 FEC0 INC AL
0167:0040A245 3C08 CMP AL,08
0167:0040A247 88442428 MOV [ESP+28],AL
0167:0040A24B 728D JC 0040A1DA (JUMP)