作品发布     邀请码    设为首页  收藏 

当前位置:文章免杀 → 文章内容 >> 关于Armadillo壳输入表乱序、策略代码衔接的脱壳处理


关于Armadillo壳输入表乱序、策略代码衔接的脱壳处理

更新时间:2010-12-25 4:56:37   作者:佚名  来源:不详
文/图 浓咖啡
LogMeister是一款用于网络检测的国外软件,一个朋友想对其汉化,但奈何于是Armadillo壳。而我却正想找一个这样的程序,嘿嘿,于是就有了这篇文章。
前几期我们说过,Armadillo壳的变化是多样的,这次我们要说的重点是处理“输入表乱序、策略代码衔接”。在本次的脱壳过程中,我们需要的工具有OD、PEiD、Armadillo Find Protected V1.4、LordPE、Import REC、ArmInline v0.96和Resource Binder 2.1。
 
信息收集
1)用PEiD查壳,确认软件使用“Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks [Overlay]”加壳。
2)用Armadillo Find Protected V1.4查看,发现目标经Armadillo保护,保护系统授权等级(专业版),“程序所使用保护模式”为标准保护或最小保护模式,使用了“输入表乱序程序保护模式”和“策略代码衔接 程序保护模式”。
3)运行目标程序,用LordPE查看一下进程,发现只有1个LogMeister.exe进程,确认程序是单进程的Armadillo保护。
 
脱壳
1)找程序的OEP
打开OD,直接载入LogMeister.exe程序文件。程序会停在下面的代码处(入口)。
 
我们这次找OEP的过程,是利用Fly脚本(Armadillo V4.0-V4.44.Standard.Protection.oSc)进行的。当然,也可以手工进行,方法在前几期有过叙述。既然已经有前人发明了这样准确的脚本工具,而我们不去利用,还偏要自己手工去找,多浪费时间啊!(想扎实自己基本功的除外)看!运行脚本后,打开OD菜单的“插件->ODbgScript->;--gsprnt运行脚本”3333333nt,选“Armadillo V4.0-V4.44.Standard.Protection.oSc”。之后脚本在OD中运行后,弹出的对话框选“是”,然后程序会运行到软件的初始界面,点击“OK”后,脚本会再运行起来,见图1所示,;本4BDAB5   点击“确定”后,一下就到OEP所在的位置了。此处的OEP是004BDAB5处,其代码如下。
图1
 
找到了OEP,就应该用Lordpe来Dump吗?那可就大错特错了!因为在保护模式中,软件使用了“输入表乱序程序保护模式”和“策略代码衔接 程序保护模式”,还没有修复处理呢!这时如果就Dump出来,程序哪能运行啊?此时不要关闭OD啊3333333nt!
2)修复策略代码衔接
下面请出ArmInline v0.96,运行后找到LogMeister.exe进程。所谓修复策略代码衔接,就是用这个工具将代码拼接起来。至于“拼接代码的起点”,ArmInline会自动找到的,而“长度”就要对照一下OD内存中的大小了,如图2所示,此处的长度填入20000。然后,点击“删除拼接代码”,我们就可以暂时等待程序进行处理了,成功后的结果如图3所示。这样,策略代码衔接的问题就解决完了,此处不要关闭ArmInline v0.96,OD也没说可以关闭哦!
图2
图3
3)修复输入表乱序
还是用ArmInline v0.96处理。这里先介绍一下手工3333333nt333找IAT的方法。在OD的这行代码处:“004BDAD5 FF15 C409FF00 call dword ptr [FF09C4] kernel32.GetVersionExA”,右键选择“数据窗口中跟随->内存地址”,查看数据窗口,一直向上找到“010A0004”,再向下找到数值全是0的“010A0BB0”处,这就是起点和终点位置,长度大小为010A0BB0-010A0004=BAC,把这些数据填入ArmInline,然后点击“寻回IAT基址”,稍等一会,软件就处理好了。
    这样,“输入表乱序 程序保护模式”和“策略代码衔接 程序保护模式”就已经完整修复处理完成了。
 
Dump程序
打开LordPE,选LogMeister.exe进程 ,先修正一下大小,然后点击“完整转存”,程序就被Dump出来了,如图4所示,在文件夹里会生成一个Dump.exe文件。
图4
闭++.exe4
 
整体修复
运行Import REC,同样选取LogMeister.exe进程,OEP处当然要填“BDAB5”啦!RVA这里填入“010A0004”,大小为“BAC”;点击“获得输入信息”,此时会出错!别怕!再点“自动搜索IAT”,看!数据出来啦!抓取修复到dump.exe上,就“OK”喽!如图5所示。
图5
运行一下dumped_.exe,可以运行。再用PEiD查看,发现软件是是VC++7.0编写的。现在,我们就可以关闭ArmInline v0.96和OD啦!
 
优化
脱壳后的文件大小是3508KB,优化我们就用Resource Binder 2.1自动进行吧!长  KBxe!手工优化这里就不介绍了。优化后,文件大小是3266KB。
    至此,这个Armadillo壳“输入表乱序、策略代码衔接”保护模式的脱壳处理就全部完成了,可以交给朋友去汉化了

责任编辑:华中帝国        



本文引用网址: 

关于Armadillo壳输入表乱序、策略代码衔接的脱壳处理的相关文章
发表评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码