代码混淆

代码混淆

代码混淆(Obfuscation)是将计算机程序的源代码或机器码,转换成功能上等价,但是难于阅读和理解的形式的行为。

代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。

其主要工作有:

将代码中的各种元素,如变量、函数、类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。

重写代码中的部分逻辑,将其变成功能上等价、但是更难理解的形式。比如将for循环改写成while循环、将循环改写成递归、精简中间变量,等等。

打乱代码的格式。比如删除空格、将多行代码挤到一行中、或者将一行代码断成多行等等。

添加花指令,通过特殊构造的指令来使得反编译器或反汇编器出错,进而干扰反编译工作的进行。

代码混淆器也会带来一些问题。主要的问题包括:

被混淆的代码难于理解,因此调试也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。

对于支持反射的语言,代码混淆有可能与反射发生冲突。

代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。

猜你喜欢

Playrix介绍及游戏下载
bt365手机官方网址

Playrix介绍及游戏下载

07-08 6949
佳能6D画质评测(探究佳能6D相机的画质表现与性能优势)
电子字典app哪个好(哪个电子字典APP应该选择?)
365彩票所有官方app下载平台

电子字典app哪个好(哪个电子字典APP应该选择?)

07-21 1423
《逃离塔科夫》多少人民币 steam售价介绍一览
包子餡怎麼做好吃,12種包子餡做法大全,都在這裡了快點來看!
一步一步教你通过imToken钱包提现加密货币到银行卡