美文网首页iOS 逆向开发iOS架构有趣的技术
初涉iOS逆向工程:免越狱修改微信(外观篇)

初涉iOS逆向工程:免越狱修改微信(外观篇)

作者: iOS雯Ping | 来源:发表于2018-05-25 19:29 被阅读470次

    美国学者埃德加·戴尔(Edgar Dale)1946年提出了“学习金字塔”(Cone of Learning)的理论。他提到:学习效果在50%以上的,都是主动学习包括讨论、实践和讲授。希望能通过做笔记的方式,巩固自己学过的知识,以及分享这些知识给其他对此感兴趣的人。

    (其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS学习交流群687528266,不管你是小白还是大牛欢迎入驻,大家一起交流学习

    一:前言

    微信成立七年多了,主界面也一直没有变过,和刚推出一样的简洁,纯粹。 但是看久了这个唯一的主题,总会有一些眼腻。偶然在网上看到了美化版的微信,而这些“分身版”、“美化版”的客户端预留了大量高危接口,一不注意手机就会中招(详情参考 :微信双开是定时炸弹?关于非越狱iOS上微信分身高危插件ImgNaix的分析),于是生出了自己捣鼓的念头。刚开始的时候什么都不懂,做了一大堆无用功,写下来避免更多人重蹈覆辙。

    iMazing导入(失败)

    之前在Mac上用iMazing改过几个小游戏的数据,所以我先试着从iMazing导出,结果发现导出的.imazingapp文件只有几份简单的数据(猜测是没受签名保护的文件),根本没有能修改的东西,心态崩了。

    PP/爱思助手导入(失败)

    这是网上出现最多的方法,在PP助手上下载正版ipa,提取其中的文件,发现朋友圈的颜色在其根目录下的color.css文件中。直接用记事本打开随便修改几个RGB颜色,保存。导入到手机时出现验证失败的提示,很明显是签名的问题。网上对这个问题的说法不一,个人觉得是版本的问题 。到这篇文章完成之前iOS 11.2  仍然不能越狱,第三方助手工具也没有找到此版本对应的漏洞,所以不支持导入修改过的ipa,心态继续崩。

    IPAPatch导入(成功)

    此方法涉及到了精彩的iOS逆向工程,感谢Naituw大神带我打开了新世界的大门。

    二:IPAPatch是什么?

    GitHub用户Naituw表示之前开源的关闭 Facebook for iOS 的 HTTPS 证书校验的方法操作太过繁琐,为了进一步简化调试、验证操作,研发了IPAPatch,它可以提供一个简单的方法来修补iOS应用程序,且不需要越狱。

    三:IPAPatch 可以做什么呢?

    和 "HackingFacebook" 类似,"IPAPatch" 主要可以在第三方的 IPA 文件上 "添加" 自己的代码,但过程有很大不同:

    大神Github:https://github.com/Naituw/

    四:开整

    一 . 最终效果展示

    二 . 需要准备的工具及设备

    清醒的头脑

    开发者账号(或证书)

    Macbook

    Xcode for mac

    Reveal for mac

    PlistEdit Pro for mac

    三 . 具体实现步骤

    1.下载开源项目IPAPatch,下载地址:百度网盘 密码: wu1m;

    2.打开Reveal,依次点击菜单栏 Help → Show Reveal Library in Finder → iOS Library ,  在iOS Library里拿到集成文件RevealServer.framework,并将此集成文件移动到IPAPatch/Assets/Frameworks文件夹里;

    3.准备一个解密过的 微信.ipa 文件。可以自行砸壳,因为身边没有越狱的手机,所以我是在PP助手下载的越狱版。放上已破壳6.6.6版本:百度网盘https://pan.baidu.com/share/init?surl=zP4MlvUfLkVXwgFGqcRZtA 密码: ipyj;

    4.修改文件并保存;

    5.将 微信.ipa 重命名为 app.ipa,替换文件夹IPAPatch/Assets里的模板文件app.ipa;

    6.打开IPAPatch.xcodeproj文件,点击左上角项目栏的三角形感叹号移动界面至Show the Issue navigator,再点击进入左侧 IPAPatch-DummyApp 标签,在右边的详细信息里配置Bundle Identifier和开发者证书。其中Display Name更改后会作为前缀添加到更改后的App上;

    7.连接iPhone,趁电脑不注意,迅速点击左上角的运行按钮,稍等片刻,将自动将此App安装到手机上;

    上面的操作其实很简单,关键性的编译、执行以及注入步骤都已经由大神写进了patch.sh的脚本里,编译运行时,所有操作都是全自动完成的。

    Build Succeed后,激起了我修改更多数据的兴趣,刚好又在网上找到了另一个大神制作的一大堆iOS主题包。

    随便下载一个主题替换包,能替换的东西基本上已经全部包含在里面了。解压后将要替换的文件拖入之前的app.ipa里,等待文件替换完成。

    再重复第七步即可。

    简单介绍一下部分替换文件,有待继续挖掘

    app.ipa/AppIcon**x**@*x.png:微信图标,目前更改后手机桌面仍然显示原图标,原因不详

    app.ipa/Expression_**@2x.png :老掉牙的表情

    app.ipa/zh_CN.lproj/InfoPlist.strings :包含微信的名称、以及发现页的几项文字(朋友圈、扫一扫)

    app.ipa/zh_CN.lproj/mm.strings:大部分文字选项都在这个文件里,都可以修改,随便修改了两项 

    app.ipa/Assets.car:大多数图标文件集成在这个文件里

    app.ipa/in.caf :消息铃声

    四.遇到的几项问题以及注意事项

    1.个人描述证书只有七天的期限,七天后需要重新安装。

    2.用自己证书安装的微信不支持Safiri浏览器上的网页分享,应该是未上架App store客户端的通病。

    3.有时候不推送通知,或只通知一次,原因不详。

    4.解压后的IPAPatch文件只能用Xcode运行一次,第二次运行会出现“apple match-o linker error”,此问题还没有找到解决办法,望各路大神指点一二。

    5.第一次进入微信或者结束进程后再打开微信会有hock成功的提示。此提示可以在IPAPatchEntry.mm文件里更改(alertControllerWithTitle;message;alertControlleraddAction;)。

    五:总结

    这篇文章只记录了如何修改App的外观,其他的例如防撤回、自动抢红包以及隐藏小红点等功能性模块涉及到了更多Objective-C方面的知识,本人刚接触OC,尚未弄懂其深邃的语法,在接下来的日子里我会继续向深层次探索。

    文章来源于作者:Taag

    链接:https://www.jianshu.com/p/691d635eeda

    iOS开发整理发布,转载请联系作者授权

    喜欢晓雯!记得关注晓雯哟!!

    (其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS学习交流群687528266,不管你是小白还是大牛欢迎入驻,大家一起交流学习,加群私聊群主就可以领取2018最全梳理的面试宝典和资料)以及下图这份资料,希望你能找到理想中的工作

    相关文章

      网友评论

        本文标题:初涉iOS逆向工程:免越狱修改微信(外观篇)

        本文链接:https://www.haomeiwen.com/subject/wsiujftx.html