最近工作需求,需要对项目进行代码混淆处理,做下笔记来记录过程。

  1. 需要python>=3.5
  2. 下载混淆工具包:
    1. https://github.com/Hnfull/Intensio-Obfuscator 网址下载解压包后压缩(eg:地址为D: \ Intensio-Obfuscator)
    2. cd Intensio-Obfuscator-master
  3. python安装所需依赖
    1. python –m pip install -r ./requirements.txt
  4. 复制项目文件夹到指定目录(eg:D: \Objeck),再创建一个空文件夹用来放混淆后的项目(eg:D: \ObjeckConfusion)
  5. 忽略对指定变量的混淆:修改D:\Intensio-Obfuscator\Intensio-Obfuscator-master\src\intensio_obfuscator\exclude_examples\ exclude_words_by_user.txt (eg:末尾加上 DEBUG 和SECRET_KEY)
  6. 开始执行混淆脚本
    1. cd /Intensio-Obfuscator/Intensio-Obfuscator-master/src/intensio_obfuscator/
    2. python ./intensio_obfuscator.py -i D:\Objeck-o D:\ObjeckConfusion-mlen lower -ind 4 -rts --excludewords exclude_examples/exclude_words_by_user.txt
    3. 格式解释:python  (脚本名称)  –i (输入文件目录)  -o (混淆后输出文件目录) -mlen lower -ind 4 -rts --excludewords exclude_examples/exclude_words_by_user.txt
  7. 验证是否混淆成功
    1. 执行过程是否报错、看混淆生产的代码是否有被加密

中间遇到个很让我恶心的BUG,由于当时我电脑上装了django框架所以混淆django项目时一切顺利,但是交给测试人员测试时,他电脑没有装django所以就一直报错编码问题(UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 76: illegal multibyte sequence)这让我很是头疼,可能是我技术菜吧,让这个折磨了我很久才解决掉这个问题!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐