App加固中的代码混淆功能,让逆向工程师很头疼
“我想离开浪浪山。”
在数次尝试破解某个App 时,某个逆向工程师无奈感慨道。
逆向工程师顾名思义就是把一个个完整的软件逆推,还原成一段段代码,方便破解。
比如给他们一个手机App、电脑程序,用不了多久,他们就能逆推出程序的运行逻辑,找到其中的关键代码,篡改、破解、发现漏洞。
这其中最好的例子就是盗版软件。开发者们累死累活才写好的程序,分分钟就被人逆向破解,植入广告和木马,重新打包成盗版。
但逆向工程师并非是反面形象,亦有好坏之分,正义的逆向者只是做安全研究,而那些非正义的逆向者却拿着这项技能四处干坏事牟利。
因此,二者的对立也尤为明显,一方为了防破解使出浑身解数,一方为了破解绞尽脑汁。
今天,我们就来讲讲关于让非正义的逆向工程师们头疼的代码混淆。
代码混淆究竟是什么?
关于代码混淆,百度百科给出的解释是:代码混淆(Obfuscation)是将电脑程序的原始代码或机器代码,转换成功能上等价,但是难于被人阅读和理解的行为。混淆后的代码,会将原先有明确含义的类名、字段、函数等转为无意义的单词,这样对于计算机来说,执行逻辑还是正常的,但是当人们去分析混淆后的代码时,会加大阅读和理解的难度,以此来加强代码的保护。