180304 逆向-抵御静态分析(3)

1625-5 王子昂 总结《2018年3月4日》 【连续第519天总结】
A. 抵御静态分析(3)
B.

信息隐藏

为了提高界面的友好度,大多数软件都会在大量地方显示提示语。
而这些提示语由于特殊性和特征明显,经常被作为静态分析的突破口。(例如IDA的Shift+F12,OD的智能搜索字符串233)
破解者循着破解点的字符串即可直接找到破解点的代码,进行操作。

为了防范这一点,许多加壳、混淆工具会自动加密所有字符串。
在编写的时候,也可以自行进行加密字符串。
即使是简单的ascii+1,也可以使得字符串变得完全不可读
更复杂的可以使用一些函数来处理,使每个字符串都不尽相同,增加破解时的复杂度

多态变形技术

多态技术往往意味着它会把核心代码进行编码,然后生成一个复杂的解码器,在运行的时候对其解码。
变形则是把一段代码重新编码,虽然仍然使用x86指令集,但是例如”add eax, 5”可能会被换成等价的5个”inc eax”,并且可以用jmp打乱代码的顺序。
诸如此类的变换使代码迅速膨胀,因此注重小体积的病毒并不过多地用变形,而在壳中可以不去关心体积。Themida壳保护一个几KB的小文件会膨胀到将近2MB。
尽量地将代码变形,可以很好地干扰分析人员。

变形引擎编写较为困难,因为它需要一个反汇编引擎,还要能对代码块进行分析。

要想还原变形,就必须写一个相应的收缩程序(Shrinker),这也同样需要一个反汇编引擎。
在代码中插入的数据一致是所有反汇编引擎头疼的东西,即使是IDA也没有把握区分出谁是数据谁是代码。

变形引擎主要来自病毒,VX Heaven(http://vx.netlux.org)上有非常多的病毒资料,几乎所有的病毒引擎都可以下载。

C. 明日计划
文件完整性校验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值