代码混淆,是将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。
代码混淆的主要目的是为了保护源代码,阻止反向工程。反向工程会带来许多问题,诸如知识产权泄露,程序弱点暴露易受攻击等。使用即时编译技术的语言,如Java、C#所编写的程序更容易受到反向工程的威胁。
代码混淆的主要的方法有:
将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。
重写代码中的部分逻辑,将其变成功能上等价但是更难理解的形式。比如将for循环改写成while循环,将循环改 写成递归,精简中间变量,等等。
打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。
代码混淆器也会带来一些问题。主要的问题包括:
被混淆的代码难于理解,因此调试除错也变得困难起来。开发人员通常需要保留原始的未混淆的代码用于调试。
对于支持反射的语言,代码混淆有可能与反射发生冲突。
代码混淆并不能真正阻止反向工程,只能增大其难度。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全。
原创辛苦:http://zh.wikipedia.org/zh/代码混淆
reflector官网:http://www.aisto.com
爱华网本文地址 » http://www.aihuau.com/a/25101015/280980.html
更多阅读
什么是大三阳小三阳——简介“大三阳”和“小三阳”是指在进行“乙肝肝炎抗原二对半”体检时的二种不同结果。大小三阳都是反映体内乙肝病毒数量和活跃程度的一个数据,只是反映人体内携带病毒的状况,都不能反映肝脏功能的正常与否,因而
什么是太阳能能黑光灯(即太阳能杀虫灯)?——简介太阳能灯具应用领域比较广泛,根据其功能主要可分为太阳能路灯、太阳能庭院灯、太阳能草坪灯、太阳能黑光灯(太阳能杀虫灯)、太阳能信号灯等。 什么是太阳能能黑光灯(即太阳能杀虫灯)?—
什么是小米F码&小米F码有什么用?——简介 在小米论坛经常会看到“参加××活动,获得F码”之类的帖子。那么,到底什么是F码?它又有什么用呢?什么是小米F码&小米F码有什么用?——什么是小米F码?什么是小米F码&小米F
什么是挖煤模式?什么手机有挖煤模式?——简介什么是挖煤模式?哪些手机有挖煤模式?其实,说到挖煤模式,很多人都没有听说过这个名字。因为挖煤模式是三星手机特用的一个模式名词。什么是挖煤模式?什么手机有挖煤模式?——方法/步骤
什么是空巢老人,空巢老人,指的就是家里小孩不在身边的中老年人,他们缺少关爱,生活寂寞,因为儿女长时间不回家,家庭如同空巢一般,令人心酸,随着社会老龄化程度的加深,空巢老人越来越多,已经成为一个不容忽视的社会问题,当子女们由于工作、学