一个软件壳为arm3.78双进程,按照看雪精华7的arm3.78壳的脱
法,始终不成功,后来找到fly的“ArmMutex.osc”将双进程成
功转换成单进程,再用“Armadillo V4.0-V4.4.Standard.Protection.osc”
直接找到oep,脱壳后peid为C++ 7.0,但修复始终不成功。下面是步骤,
请fly多多指教。。。
flyodbg载入程序,忽略所有异常,并添加以下几个:
C0000005(ACCESS VIOLATION)
C000001D(ILLEGAL INSTRUCTION)
C000001E(INVALID LOCK SEQUENCE)
C0000096(PRIVILEGED INSTRUCTION)
0065C000 > 60 pushad\\\\\\\\\\\\\\\\\\\\入口,停在这。。
0065C001 E8 00000000 call 火麒麟?.0065C006
0065C006 5D pop ebp
0065C007 50 push eax
0065C008 51 push ecx
0065C009 0FCA bswap edx
0065C00B F7D2 not edx
0065C00D 9C pushfd
0065C00E F7D2 not edx
0065C010 0FCA bswap edx
运行脚本“ArmMutex.osc”,停下后来到这:
7C80EA1B > 8BFF mov edi,edi\\\\\\\\\\\\到这,,提示已转换成单进程。
7C80EA1D 55 push ebp
7C80EA1E 8BEC mov ebp,esp
7C80EA20 51 push ecx
7C80EA21 51 push ecx
7C80EA22 837D 10 00 cmp dword ptr ss:[ebp+10],0
7C80EA26 56 push esi
7C80EA27 0F84 66530300 je kernel32.7C843D93
7C80EA2D 64:A1 18000000 mov eax,dword ptr fs:[18]
7C80EA33 FF75 10 push dword ptr ss:[ebp+10]
7C80EA36 8DB0 F80B0000 lea esi,dword ptr ds:[eax+BF8]
7C80EA3C 8D45 F8 lea eax,dword ptr ss:[ebp-8]
7C80EA3F 50 push eax
再运行“Armadillo V4.0-V4.4.Standard.Protection.osc”停下后到达oep,,
00470DB4 6A 60 push 60 ; This is the OEP! Found By: fly
00470DB6 68 807A4800 push 火麒麟?.00487A80
00470DBB E8 940A0000 call 火麒麟?.00471854
00470DC0 BF 94000000 mov edi,94
00470DC5 8BC7 mov eax,edi
00470DC7 E8 C4EEFFFF call 火麒麟?.0046FC90
00470DCC 8965 E8 mov dword ptr ss:[ebp-18],esp
00470DCF 8BF4 mov esi,esp
00470DD1 893E mov dword ptr ds:[esi],edi
00470DD3 56 push esi
在00470db4处用LordPE_fix.EXE完整转存后,peid查为c++ 7.0 ,,oep应该是对的!!!
再用ImportREC.exe修复,加载进程,填入oep 70db4,iat自动搜索,提示“在这个oep入口点没有发现任何有用
的信息” 所以修复无法进行。。。。。
请教fly这是怎么回事???????
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法