app代上架吧 关注:625贴子:12,910
  • 1回复贴,共1

iOS马甲包上包总结-代码&界面篇

只看楼主收藏回复

在上马甲包的过程中最重要的一环就是要让苹果全方位的感觉到这是一款新app,跟其他应用没有关联,这需要修改工程,代码,资源,界面,交互等
本篇将针对iOS上包过程中涉及到的代码修改相关内容进行一些总结,其他方面将在其他总结内分别介绍
主要分为如下几个方面
工程相关信息,类名混淆,方法名混淆,无用的功能引入,违规功能屏蔽,关闭bitcode,界面更改,交互更改
工程相关信息修改
修改项如下:
bundle id, display name,版本号,编译号

工程名,打开XCode,直接重命名工程文件,XCode会自动检查附带需要修改的内容,直接点击Rename即可


修改工程名后需要修改项目的文件夹名,info.plist的路径,以及其他需要手动修改的内容


所有的entitlements全部删除重建(结合bundle id修改)
类名混淆
类名混淆有两种方式,加前缀后缀和替换类名
类名替换需要注意不能只是简单的乱码加密,会被苹果认为有明显目的性
解决方案是使用代码常用单词进行随机组合,并生成唯一类名后进行替换
这里推荐一种方式:
先将需要替换的类名整理出来,放到一个sqlite表中
新建6个数组,每个数组放10个单词,每次随机从每个数组中随机取一个词出来,6个词组成一个类名(可以带上自定义的前缀),在工程中做全局替换,然后将对应关系用sqlite保存起来以便还原和去重,这样会有60466176种组合
全局替换代码如下
12345 # 搜索并替换,包含xib和storyboard的类名都会被替换# $current_class_name 需要被替换的类名# $project_path 需要替换的目录# $class_name_for_replace 替换后的新类名grep -rl {$current_class_name} {$project_path} | xargs sed -i "" "s/{$current_class_name}/{$class_name_for_replace}/g"
方法名混淆&垃圾代码添加
方法名混淆跟类名混淆比较类似,如果代码比较规范的话,根据相应的规则梳理出相应的方法列表,然后根据上面的生成规则进行替换即可
垃圾代码主要是在类中添加无用的代码,可以写个脚本来生成,随便调用一下即可
无用的功能引入
引入一些跟自身app无关的功能并放置入口,能够正常使用,例如文件浏览器,视频播放器等,冲抵app本身代码的占有率
App代上:


IP属地:安徽1楼2021-10-25 17:45回复
    现在马甲包都在什么价格蛙


    IP属地:福建来自iPhone客户端2楼2021-12-04 18:34
    回复