注册忘记密码

黑客论坛,黑客工具,黑客教程,QQ技术,黑客基地,黑客网络,黑客软件,黑客联盟,免杀,远控,ddos,cc,黑客攻防,黑客编程,黑客定位,手机定位,微信定位,hack,黑客网站,查开房,定位,信息查询

查看: 441|回复: 0

[免杀技术文章 ] 代码混淆与代码乱序

[复制链接]
   0 UID
   0帖子
   0精华
21
   0威望
500
   0金币
45816
   0贡献
5000
   0阅读权限
   200
   积分
   0
   在线时间
   600 小时
   最后登录
   2020-6-6
发表于 2020-5-23 07:25:29 来自手机 | 显示全部楼层 |阅读模式
    代码混淆(Obfuscated code)是指将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。一般简单的二进制代码混淆通常较容易实现,因为利用合理的替换逻辑后,会很少涉及段间跳转指令的修复问题,更多的只是简单的代码膨胀。 而代码乱序变形则是指将原有的程序以逻辑结构为疆域分成若干个部分,并将其先后顺序随机颠倒,然后再用jmp指令串起来,以使其真正的执行顺序不会被破坏。这种代码乱序变形技术是复杂的代码混淆技术的基础,如果要相对整个程序的大部分代码进行混淆的话,那么势必会导致大片的代码体积变动,这种变动会导致原程序中大多数的偏移地址不再正确,而代码乱序技术则恰好最擅长解决这类问题。因此,代码混淆与代码乱序在大多数情况下都是同时出现的。 无论是代码混淆还是代码乱序,对于黑客来说,它们都是对抗文件查杀以及内存查杀的好办法,虽然简单的代码混淆更容易实现,但是收到的效果可能也可能是最差的。 一般情况下,黑客们在编写执行简单代码混淆的逻辑部分时,首先会尽可能地去收集一些指令长度相同且功能相近的不同指令,并将这些指令做成一一对应的表,而整个代码混淆的过程其实就是一个简单的查表并替换的过程。但是很显然这种方法非常笨拙,且扩展性非常有限,通常难以达到目的。 因此黑客们想到了更加复杂的混淆与代码乱序的方法,这些方法的优点是灵巧且扩展性非常强,黑客们可以随时加入新的混淆算法,也可以随时将代码乱序逻辑更新为更好的方案。可以说此时限制黑客们的似乎只有数学上的门槛。 被这样混淆过后的代码,体积会变得异常庞大,例如著名的加壳软件Themida甚至可以将一个几十KB大小的文件混淆为数MB之巨,由此可见其威力是多么的强大。 但是其实混淆与代码乱序的方法也是有所限制的,最大的不足就是要求被处理的目标程序必须具有重定位表,否则这一切就无法稳定的执行。 [1]这里提到的“代码乱序”并不是简单地打乱JMP与CALL的跳转,而是一种类似于代码挪移的操作,它会将一段代码分为若干块,然后打乱这些代码块的原有顺序,并用JMP连接,以保证其执行流程不会改变。

发表回复

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则


快速回复 返回顶部 返回列表