查壳:Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks
从OD菜单--->插件--->ODbgScript--->运行脚本--->Armadillo V4.0-V4.4.dll.osc。
10001000 55 push ebp ; This is the OEP! Found By: fly
10001001 8BEC mov ebp, esp
10001003 837D 0C 01 cmp dword ptr [ebp+C], 1
10001007 75 09 jnz short 10001012
10001009 B8 01000000 mov eax, 1
1000100E C9 leave
引用 machenglin 前辈的教程,
http://www.unpack.cn/viewthread.php?tid=6863&highlight=Armadillo
、用ArmInline修复
1、用ArmInline V0.96可以自动找到Enable Import Table Elimination,但需要手动定位IAT的起始、结束Size,否则不能
全部修复。
2、用ArmInline V0.96不能自动找到Enable Strategic Code Splicing,需要手动定位。
Alt+M 到内存窗口,根据:
大小=00010000~00020000之间,类型=Priv,访问=RWE,初始访问=RWE。
找到这里,这就是Enable Strategic Code Splicing区段。
===================================
内存映射,项目 38
地址=02020000
大小=0001D000 (118784.)
物主=02020000 (自身)
区段=
类型=Priv 00021040
访问=RWE
初始访问=RWE
===================================
3、在ArmInline V0.96填入相应的值,先Enable Strategic Code Splicing,后Enable Import Table Elimination,修复
之。
Alt+M 到内存窗口,我这里怎么找不到
大小=00010000~00020000之间,类型=Priv,访问=RWE,初始访问=RWE。
这样的类型,是什么原因,不解?
Memory map
地址 大小 (十进制) 属主 区段 包含 类型 访问 初始访问 已映射为
00010000 00001000 (4096.) 00010000 (自身) Priv 00021004 RW RW
00020000 00001000 (4096.) 00020000 (自身) Priv 00021004 RW RW
00060000 00001000 (4096.) 00030000 Priv 00021104 RW 保护 RW
00070000 00003000 (12288.) 00070000 (自身) Map 00041002 R R
00080000 00014000 (81920.) 00080000 (自身) Priv 00021004 RW RW
00180000 00006000 (24576.) 00180000 (自身) Priv 00021004 RW RW
00190000 00003000 (12288.) 00190000 (自身) Map 00041004 RW RW
001A0000 00016000 (90112.) 001A0000 (自身) Map 00041002 R R \Device\HarddiskVolume1\WINDOWS\system32\unicode.nls
001C0000 0003D000 (249856.) 001C0000 (自身) Map 00041002 R R \Device\HarddiskVolume1\WINDOWS\system32\locale.nls
00200000 00041000 (266240.) 00200000 (自身) Map 00041002 R R \Device\HarddiskVolume1\WINDOWS\system32\sortkey.nls
00250000 00006000 (24576.) 00250000 (自身) Map 00041002 R R \Device\HarddiskVolume1\WINDOWS\system32\sorttbls.nls
00260000 00041000 (266240.) 00260000 (自身) Map 00041002 R R
002B0000 00006000 (24576.) 002B0000 (自身) Map 00041020 R E R E
00370000 00002000 (8192.) 002B0000 Map 00041020 R E R E
00380000 00010000 (65536.) 00380000 (自身) Priv 00021004 RW RW
00390000 00003000 (12288.) 00390000 (自身) Map 00041002 R R \Device\HarddiskVolume1\WINDOWS\system32\ctype.nls
003A0000 00008000 (32768.) 003A0000 (自身) Priv 00021004 RW RW
003B0000 00001000 (4096.) 003B0000 (自身) Priv 00021004 RW RW
003C0000 00001000 (4096.) 003C0000 (自身) Priv 00021004 RW RW
003D0000 00001000 (4096.) 003D0000 (自身) Map 00041004 RW RW
003E0000 0000E000 (57344.) 003E0000 (自身) Map 00041004 RW RW
003F0000 00004000 (16384.) 003F0000 (自身) Priv 00021004 RW RW
00460000 00103000 (1060864.) 00460000 (自身) Map 00041002 R R
00570000 000A5000 (675840.) 00570000 (自身) Map 00041020 R E R E
00870000 00050000 (327680.) 00870000 (自身) Map 00041002 R R
008C0000 00010000 (65536.) 008C0000 (自身) Map 00041004 RW RW
00900000 00001000 (4096.) 00900000 (自身) Priv 00021004 RW RW
00980000 00011000 (69632.) 00980000 (自身) Map 00041002 R R \Device\HarddiskVolume1\WINDOWS\system32\c_1252.nls
009A0000 0001B000 (110592.) 009A0000 (自身) Priv 00021004 RW RW
009C1000 000BE000 (778240.) 009A0000 Priv 00021004 RW RW
00A85000 00001000 (4096.) 009A0000 Priv 00021004 RW RW
00AA0000 00064000 (409600.) 00AA0000 (自身) Priv 00021004 RW RW
00B10000 00002000 (8192.) 00B10000 (自身) Map 00041002 R R
00B20000 0000C000 (49152.) 00B20000 (自身) Priv 00021004 RW RW
00B30000 00002000 (8192.) 00B30000 (自身) Map 00041002 R R
00B40000 00006000 (24576.) 00B40000 (自身) Priv 00021004 RW RW
00B50000 00001000 (4096.) 00B50000 (自身) Map 00041004 RW RW
00B60000 00001000 (4096.) 00B60000 (自身) Map 00041004 RW RW
00B70000 00001000 (4096.) 00B70000 (自身) Priv 00021004 RW RW
00B80000 00001000 (4096.) 00B80000 (自身) Priv 00021004 RW RW
00BB0000 00002000 (8192.) 00BB0000 (自身) Map 00041002 R R
00BC0000 00028000 (163840.) 00BC0000 (自身) Priv 00021004 RW RW
10000000 00001000 (4096.) 复件_复?10000000 (自身) Imag 01001002 R RWE
7F6F0000 00007000 (28672.) 7F6F0000 (自身) Map 00041020 R E R E
7FFA0000 00033000 (208896.) 7FFA0000 (自身) Map 00041002 R R
7FFD6000 00001000 (4096.) 7FFD6000 (自身) Priv 00021004 RW RW
7FFE0000 00001000 (4096.) 7FFE0000 (自身) Priv 00021002 R R
00061000 0000F000 (61440.) 00030000 堆栈 于 主线程 Priv 00021104 RW 保护 RW
7FFDF000 00001000 (4096.) 7FFDF000 (自身) 数据块 于 主线程 Priv 00021004 RW RW
后面都是IMAG类型,但是这里没有所说的 [类型=Priv,访问=RWE,初始访问=RWE]类型,不太明白,我也是头次接触DLL,不懂,希望大侠们赐教!
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法