第十四课 穿山甲壳的单进程标准脱法一

                         第十四课 穿山甲壳的单进程标准脱法一

今天开始进入我们加密壳脱壳环节。

一,关于 Armadillo

Armadillo也称穿山甲,是一款应用面较广的壳。可以运用各种手段来保护你的软件,同时也可以为软件加上种种限制,包括时间、次数,启动画面等等!很多商用软件采用其加壳。Armadillo对外发行时有PublicCustom两个版本。Public是公开演示的版本,Custom是注册用户拿到的版本。只有Custom才有完整的功能,Public版有功能限制,没什么强度,不建议采用。

 

二, Armadillo分类

 

    穿山甲这个壳变化非常多,各种不同的分法都可以分出不同类型的壳。

    

线程个分:

可以分为单线程双线程(即子父线程,需要父进程解码子进程)

保护手段分:

可以分Nanomites(即int3,或者有人叫CC保护方式)Code Splicing(又叫远程地址,把部分代码放到穿山甲壳所申请的内存地址去)Import Table Elimination(输入表乱序)Memory-Patching Protections(内存校验),加密情况可以分是否带KEY,当然还有版本不同的分(穿山甲壳版本不是特别重要)。

 

三, 如何侦查穿山甲壳

 

    这里我们用的侦壳工具(PEIDFI)相对的还是FI比较准确点。

 

    当然今天要介绍一款针对穿山甲壳的利器——Armadillo Find Protected V1.3

    (Armadillo Find Protected可以识别出Armadillo的版本和保护方式)

 

四, 脱穿山甲壳步骤(单线程的标准壳)

 

    1.FI侦壳

    2.OD载入(忽略所有异常(异常选项全部勾选),隐藏OD

3.命令行下断 HE(空格) 硬件执行断点 GetModuleHandle 后面直接跟参数A/W

A:代表ANSI编码函数。W:代表Unicode编码函数.一般软件为ANSI编码

所以这样写:HE GetModuleHandleA

4.F9运行,注意堆栈(运行一次停下来观察)

 找到关键位置“ASCII "VirtualAlloc"”,其下一次运行到包含“ASCII "VirtualFree"”

    5.到达(“ASCII "VirtualFree"”),再一次F9会提示不能绕过命令,确定掉提示后Shfift+F9,然后ALT+F9返回到主线程。

6.删除硬件断点,找到MAGIC跳(一般情况下是一个JE条件大跨度跳转,而且离我们的返回地址非常近,一般是 kernel32.loadLibraryA下面的第一个JE跳转。)找到MAGIC(je)后,我们就修改为无条件jejmp

如:

 

    7.查看内存,在00401000 处F2下断。然后SHIFT+F9

    8.接着单步慢慢向下调试,调试到CALL ECXF7步入

    9.脱壳 LOADPE(选种进程,纠正映像大小,完整脱壳)

    10.ImportREC修复,无效指针不用修复,直接CUT(减切)掉。

 

转载于:https://www.cnblogs.com/eldn/archive/2012/08/28/2660910.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值