iOS代码混淆
前言
最近一直在看Python,也很喜欢Python的灵活性;今天主要想说的是iOS的代码混淆,为什么想做代码混淆?为了APP的安全,为了防止别人破壳轻易破解我们代码;还有就是做马甲包了,我们知道的市场需求很大,但是不能花费过多的精力在开发上,毕竟只是个马甲,没必要花费太多的成本!
混淆工具
网上搜了一下,开源免费的混淆都在转载的
的混淆方法,或者在念茜的脚本基础上二次开发,大家去看过就知道念茜的这篇博客是在14年写的,那时我刚做iOS没多久🤗,而且那时候中国区审核还没有那么严格,若果你现在还使用那种方法进行混淆,你肯定会收到苹果的
🤓,所以我们还是探索别的混淆方法吧,不要再挖坟了!
我这里主要是通过Python写的混淆工具,具体功能有方法混淆、属性混淆、类名混淆、添加垃圾代码、删除注释、修改资源文件Hash值,具体的如下:
代码混淆-2.png
开始混淆
import addRubbishCode as addCode
import cunfusionObjName as conObjN
import confusionFun as conFunc
import cunfusionProperty as conPro
import confusionLog as conLog
import deleteNotes as delNot
import updateSourceHash as updHash
file_dir = '/Users/zhangfujie/Desktop/Obfuscated/'
def start_fun():
# 混淆属性
conLog.tips('*' * 30 + 'Fun:开始混淆属性' + '*' * 30)
conPro.startConfusionPro(file_dir)
# 混淆方法
conLog.tips('*' * 30 + 'Fun:开始混淆方法' + '*' * 30)
conFunc.startConfusionFun(file_dir)
# 混淆类名
conLog.tips('*' * 30 + 'Fun:开始混淆类名' + '*' * 30)
conObjN.startObfuscatedObjName(file_dir)
# 垃圾代码
conLog.tips('*' * 30 + 'Fun:添加垃圾代码' + '*' * 30)
addCode.startAddRubbishCode(file_dir)
# 混淆或者删除注释
conLog.tips('*' * 30 + 'Fun:开始删除注释' + '*' * 30)
delNot.startDeleteNotes(file_dir)
# 修改资源文件的hash值
conLog.tips('*' * 30 + 'Fun:修改资源HASH值' + '*' * 30)
updHash.startUpdateSourceHash(file_dir)
start_fun()
混淆日志
混淆的部分日志,混淆的时候回通过import logging自动生成混淆日志《混淆脚本日志.log》,便于开发者修改部分报错:
忽略路径
我们在混淆的时候,没必要全部进行混淆,特别是第三方库,或者Pods管理的第三方库;毕竟混淆的越多问题也就越多,所以我添加了混淆忽略文件📂,如下图:
import confusionLog as conLog
ignore_Files = ['/Pods/', '/Vendor/', '/LIB/', '/Util/']
conLog.tips('已忽略的路径 === ' + str(ignore_Files))
# 判断是否是忽略的文件夹
def isIgnoreFiles(tmp_path):
# if '+' in tmp_path:
# return True
for item in ignore_Files:
if item in tmp_path:
return True
return False
特别说明
混淆以后肯定会有或多或少的报错,所以要求使用者必须会iOS开发技能,一般报错都是因为一下两点:
以上两种错误都可以在日志文件中找到对应的混淆字段,然后手动替换上去就行!
还有就是,该混淆工具目前只适用于OC项目工程,不支持swift项目,但是我打算等OC混淆工具全部OK以后(包括图形界面),会把swift的混淆加进去的!
最后要说的是如果项目巨大,不建议混淆全部的方法属性,可以混淆重要逻辑的方法和属性,主要是因为比较、
、
!
混淆结果
1.函数混淆
2.属性混淆
3.类名混淆
4.添加垃圾代码
5.去除注释
QQ20190713-125945@2x.png
6.修改Hash值
针对项目中的资源文件,我们可以通过修改Hash的方式来进行混淆,运行如下:
🔆Tips:已忽略的路径 === ['/Pods/', '/Vendor/', '/LIB/', '/Util/']
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/MainWeb_Back_Icon.imageset/fanhui-4.png
🎉Infor:[UPdHash Meg] Old:dd03889c2e8647b9377d08775333557ff11425dd<->New:4a72c7b640882ae436b18868aa021331169db3fa
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/60.png
🎉Infor:[UPdHash Meg] Old:2d73347848d7168c09c48efe28a7ac5a9ec7411b<->New:551483123b5cc2c4c5ff2f5bf876db0d075261a1
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/58.png
🎉Infor:[UPdHash Meg] Old:c0c671fe3707bca8c5accdcadd8aa9f4f1f2726c<->New:d022db1c1f99c263b69bc09c09bc52dd1fa97fb5
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/120-1.png
🎉Infor:[UPdHash Meg] Old:5a6a7ec42d7489be18888828c1a9caba0da688ca<->New:8bbddfbbbed9023e4537e9e6caeed79c88ef8955
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/120.png
🎉Infor:[UPdHash Meg] Old:5a6a7ec42d7489be18888828c1a9caba0da688ca<->New:dcc4b47092bca1d6a6bb6d7bd671a0ef7ce2f4da
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/180.png
🎉Infor:[UPdHash Meg] Old:fee9220dbba52040517a0f77ffe8335e9300a64b<->New:d28a9118e1cf4a2ce9fc2805184ad42e20500c95
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/GUEG_ICON.png
🎉Infor:[UPdHash Meg] Old:07ed6c66ec7d5550bfa1e32b4848687417027c90<->New:fb780d87591cc86dd0fd24cdfa41e76a091ad657
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/80.png
🎉Infor:[UPdHash Meg] Old:ca3b3f61fc4c391515fe895d81360d15ec598049<->New:769ebf182fbb3a3fd69c46c3a595c1669c505f63
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/40.png
🎉Infor:[UPdHash Meg] Old:1bb7908a2ba1295fa69ad476a81003f2f413a3a8<->New:10793e67b27cdf5ad1ee4b9d37aecc62074b8ffc
🎉Infor:[UPdHash OK] /Users/zhangfujie/Desktop/Obfuscated/GUEG_MJ/GUEG/GUEG/Assets.xcassets/AppIcon.appiconset/87.png
......等等......
特别说明
网上有很多付费的混淆工具,有个人的也有公司的,收费也从几千元到上万元不等,有的按照时间收费,有的按照次数收费;一般都是用作马甲包开发的!
本人在这里说明,进群加本人QQ(群:),本人免费提供混淆服务!但是
!
请注意哟!!!😍😍😍
为什么???🤔🤔🤔
任性呗!!!👍👍👍
作者:ZFJ_张福杰
来源:CSDN
原文:https://zfj1128.blog.csdn.net/article/details/95482006
版权声明:本文为博主原创文章,转载请附上博文链接!









网友评论