Python 控制流代码混淆简介,加大别人分析你代码逻辑和流程难度
【今日推荐】:为什么一到面试就懵逼!>>> 前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: 王平 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 聊下 Python 的代码混淆,对 Python 的代码做混淆感觉是不伦不类,但是对于外包项目交付型的,又有一些需要。 混淆的目的就是加大别人分析你代码逻辑和流程的难度,让代码看上去杂乱,逻辑混乱。但是程序要能正常运行。 一般混淆 对 Python 代码做简单点混淆的就是变量名/类名/字符串/常量做混淆,把名称变成很长或者近似。 这类的混淆库很多,比如 Intensio-Obfuscator 这个库,这个库分简单和复杂混淆,来看下用它的简单模式来混淆 Python 代码: 左边是混淆前,右边是混淆后,只是把变量名方法名混淆并且加长了。 这种简单混淆的意义不大,字符串和常量都一目了然,代码结构,就靠静态分析,代码的脉络也看得还是清楚。 再复杂一点的混淆就是把关键代码藏起来,和在代码里加一些无效代码。 还是 Intensio-Obfuscator 这个库的复杂混淆模式,我们来看看: 右边初看,貌似不像是 Python 代码,实际上右边那串字符串就是左边的 Python 代码,只不过是 unicode