006E385D push eax 006E385E push eax 006E385F nop 006E3860 nop 006E3861 nop 006E3862 nop 006E3863 nop 006E3864 nop 006E3865 nop 006E3866 nop 006E3867 nop 006E3868 nop 006E3869 nop 006E386A nop 006E386B nop 006E386C nop 006E386D nop 006E386E nop 006E386F nop 006E3870 nop 006E3871 nop 006E3872 nop 006E3873 nop 006E3874 nop 006E3875 nop 006E3876 pop eax 006E3877 call dword ptr ds:[691194] 006E387D jmp short Acp.006E3896 006E387F nop 006E3880 nop 006E3881 nop ...... 006E3896 or eax,eax 006E3898 jnz short Acp.006E38D7 006E389A retn 006E389B nop 006E389C nop 006E389D nop ...... 006E38D7 mov ebx,eax 006E38D9 mov dword ptr ss:[ebp+4023F4],eax 006E38DF mov eax,Acp.0040D71F 006E38E4 mov edx,Acp.0040D76B 006E38E9 call Acp.006E148A 006E38EE mov eax,Acp.0040D72B 006E38F3 mov edx,Acp.0040D76F 006E38F8 call Acp.006E148A 006E38FD mov eax,Acp.0040D73A 006E3902 mov edx,Acp.0040D773 006E3907 call Acp.006E148A 006E390C mov eax,Acp.0040D748 006E3911 mov edx,Acp.0040D777 006E3916 call Acp.006E148A 006E391B retn
006E148A push ebx 006E148B push eax 006E148C push edx 006E148D add eax,ebp 006E148F push eax 006E1490 push ebx 006E1491 push eax 006E1492 mov eax,dword ptr ss:[ebp+41A614] 006E1498 nop 006E1499 nop 006E149A nop 006E149B nop 006E149C nop 006E149D nop 006E149E nop 006E149F nop 006E14A0 nop 006E14A1 nop 006E14A2 nop 006E14A3 nop 006E14A4 nop 006E14A5 nop 006E14A6 nop 006E14A7 nop 006E14A8 nop 006E14A9 pop eax ; 006E14AA call dword ptr ds:[691190] 006E14B0 jmp short Acp.006E14C9 006E14B2 nop 006E14B3 nop 006E14B4 nop ...... 006E14C9 pop edx 006E14CA mov dword ptr ss:[ebp+edx],eax 006E14CE pop eax ; 006E14CF pop ebx ; 006E14D0 retn 3.调用壳SDK的修复 在IAT修复时有2个函数没有修复,这2个函数都是指向MessageBoxA,看ACPr说明原来用作SDK接口。 程序对该函数调用相应也是2处:00407830和00407838.都指向壳代码006e084d.如果不修复直接指向原来的USer32.dll那么主程序总是显示未注册版而且对程序加壳后也显示未注册,很不爽。偶在6d4010处写入不分代码,然后修改407830和407838代码跳转到006d4010: 00407830:jmp 006d4010 00407838:jmp 006d4010
006D4010 cmp dword ptr ss:[esp+4],-1 006D4015 jnz 006D4023 006D4017 cmp dword ptr ss:[esp+8],0 006D401C je 006D4023 006D401E jmp 006E084D 006D4023 jmp dword ptr ds:[691588] ;JMP到user32.MessageBoxA 这样处理后只能算基本可以了。但还是有点问题,由于要浪费很多时间就不进一步处理了。 4.部分数据校验: 主程序的入口必须是2D4000 IMAGESIZE必须是:2F537A 因为数据校验代码部分是动态还原后执行的,不便修改该部分代码。 入口代码: 006D4000:PUSHAD CALL 006E369A POPAD JMP 004CC210 上一页 1 2 |