修改前的代碼和修改方法
004C51C4 pushfd
004C51C5 pushad
004C51C6 call 004C51CB
004C51CB pop ebp
004C51CC mov eax,7 修改為sub ebp,7(ebp的值為入口點(diǎn)的內(nèi)存值)
004C51D1 sub ebp,eax NOP
004C51D3 lea esi,dword ptr ss:[ebp-48C] 修改為mov ebx,-48C和add ebx,ebp, 記下此處的48C這個(gè)值就稱A1。
004C51D9 mov al,byte ptr ds:[esi] 修改為mov al,0(al的值為eax的最低二位)
004C51DB cmp al,0 NOP(EXE文件在ebp-48C的值為0,DLL則為1,所以可以將以下的判斷語(yǔ)句NOP, 如果修改DLL文件, 此處有點(diǎn)不同。 )
004C51DD je short 004C51F1 NOP(下面的修改代碼寫到NOP這里,也可以在這里寫點(diǎn)花代碼)
004C51DF mov esi,ebp NOP
004C51E1 lea esi,dword ptr ss:[ebp-464] NOP
004C51E7 mov al,byte ptr ds:[esi] NOP
004C51E9 cmp al,1 NOP
004C51EB je 004C5433 NOP
004C51F1 mov byte ptr ds:[esi],1 修改為mov byte ptr ds:[ebx],1(往上移到NOP處)
004C51F4 mov edx,ebp
004C51F6 sub edx,dword ptr ss:[ebp-4D0] 修改為sub ebx,44和sub edx,dword ptr ss:[ebx]
004C51FC mov dword ptr ss:[ebp-4D0],edx 修改為mov dword ptr ss:[ebx],edx(edx的值為基址)
004C5202 add dword ptr ss:[ebp-4A0],edx 修改為add ebx,30和add dword ptr ss:[ebx],edx
004C5208 lea esi,dword ptr ss:[ebp-45C] 修改為add ebx,44和lea esi,dword ptr ss:[ebx]
004C520E add dword ptr ds:[esi],edx
004C5210 pushad 二進(jìn)制代碼修改為50 51 52 53 54 55 56 57
004C5211 push 40 修改為mov ebx,40和push ebx
004C5213 push 1000 和下面一句一起修改為mov ebx,1000和push ebx和push ebx
004C5218 push 1000
004C521D push 0 修改為sub ebx,1000和push ebx
004C521F call dword ptr ss:[ebp-428] 修改為mov ebx,ebp和add ebx,-428和call dword ptr ss:[ebx], 記下此處的428這個(gè)值, 就稱A2。
004C5225 test eax,eax NOP
004C5227 je 004C5597 NOP
004C522D mov dword ptr ss:[ebp-4A8],eax 修改為sub ebx,80和mov dword ptr ss:[ebx],eax004C5233 call 004C5238 以下四句(含本句)NOP掉,修改為mov ebx,ebp和add ebx,3DC
004C5238 pop ebx NOP
004C5239 mov ecx,368 NOP
004C523E add ebx,ecx NOP
004C5240 push eax
004C5241 push ebx
004C5242 call 004C54F8 004C54F8的上一行代碼是JMP語(yǔ)句,NOP掉,本句修改為call 004C54F3
004C5247 popad 修改到此, 有興趣的可以繼續(xù)
004C5248 mov esi,dword ptr ds:[esi]
004C524A mov edi,ebp