iOS 逆向学习笔记

关于逆向的例子网上很多牛人都有分享,包括微信消息禁止撤回、自动抢红包、虾米音乐VIP等等。为了满足一下自己的好奇心更为了能够深入的了解iOS内部原理,于是“站在巨人的肩膀上”利用周末简单学习一下,在此做个学习笔记,梳理一下基本知识、整理一下基本步骤(大神请忽略此文)。

1.要做什么

在手机不越狱的情况下,可以修改微信运动步数。当然网上也有很多教程(包括越狱的和非越狱的),可以直接拿来用。但为了知其所以然,所以打算自己动手一步步实现。

2.准备工作

需要用到的工具:已砸壳的ipa文件、iOSOpenDev、yololibCaptainHookiReSign(很好用的签名工具)。由于直接从AppStore里下载的App都是经过加密的,所以需要解密(即砸壳,需要有一部越狱设备),没有越狱设备直接去网上下载即可。

3.开始实现

(1)下载ipa完成后要确认下是否真的已被解密。先通过命令unzip weChat.ipa解压得到weChat.app文件,再通过
命令otool -l WeChat.app/WeChat | grep -B 2 crypt来查看是否已解密。结果如下:

          cmd LC_ENCRYPTION_INFO     // armv7架构
      cmdsize 20
     cryptoff 16384
    cryptsize 49463296
      cryptic 0   // 0代表解密、1代表加密
--
          cmd LC_ENCRYPTION_INFO_64  // arm64架构
      cmdsize 24
     cryptoff 16384
    cryptsize 53149696
      cryptic 0  // 0代表解密、1代表加密

(2)安装iOSOpenDev来编写Hook代码实现你想要的功能。安装iOSOpenDev会遇到失败的情况,具体安装步骤以及失败的解决办法请参考这篇博客。(教程中的第五步的下载文件已失效,可以跳过该步骤)。安装成功后,新建工程选择CaptainHook Tweak,并将CaptainHook.h文件导入工程中。

CaptainHookTweak.png

  至于如何用class-dump提取接口文件以及编写Hook代码,这里暂不介绍,网上教程很多。代码写完后,选择真机编译程序,成功后生成的动态库(xxx.dylib)便是我们需要注入到二进制文件中的程序。
  (3)新建一正常项目,bundle Id可以自由设置,这样不会覆盖掉手机里已安装的原版微信。build一下,保存好生成的描述文件embedded.mobileprovision(名字貌似不可自定义)。
  (4)下载yololib,将yololib、xxx.dylib、embedded.mobileprovision、解压后的wechat.app放在同一目录中,执行命令./yololib WeChat.app/WeChat xxx.dylib将动态库注入到微信的二进制文件中。成功后结果如下:

2017-03-21 01:28:00.199 yololib[39045:1159498] FAT binary!
2017-03-21 01:28:00.199 yololib[39045:1159498] Injecting to arch 9
2017-03-21 01:28:00.200 yololib[39045:1159498] Patching mach_header..
2017-03-21 01:28:00.203 yololib[39045:1159498] Attaching dylib..

2017-03-21 01:28:00.203 yololib[39045:1159498] Injecting to arch 0
2017-03-21 01:28:00.203 yololib[39045:1159498] 64bit arch wow
2017-03-21 01:28:00.206 yololib[39045:1159498] dylib size wow 72
2017-03-21 01:28:00.207 yololib[39045:1159498] mach.ncmds 76
2017-03-21 01:28:00.207 yololib[39045:1159498] mach.ncmds 77
2017-03-21 01:28:00.207 yololib[39045:1159498] Patching mach_header..
2017-03-21 01:28:00.210 yololib[39045:1159498] Attaching dylib..

2017-03-21 01:28:00.210 yololib[39045:1159498] size 66
2017-03-21 01:28:00.210 yololib[39045:1159498] complete!

注入成功后,再将xxx.dylib和embedded.mobileprovision拷贝到weChat.app目录下即可。
  (5)新建目录Payload,将weChat.app放入该目录下执行命令zip -qry weChat.ipa Payload/生成ipa文件,接下里对ipa进行重签名、打包即可安装到手机。
  (6)对ipa签名和打包为了方便,可以选择用这个开源工具iReSign,很实用(entitlements.plist可以不用选择,会自动生成)。
  (7)额外说明:如果想查看App原来的bundle Id,可通过系统自带命令行工具Plutil(property list utitlity)plutil -p ~/Desktop/xxx.app/Info.plist | grep CFBundleIdentifier更多信息请看这里

4.遇到的坑

如果自定义enlitiments.plist,记得Team ID一定要填写生产证书ID,也可在开发者官网查看;
  如果安装失败,试着删除weChat.app中的Watch、Plugins文件。

这仅仅是个开始、还有很多很多东西需要去学习和探索……

参考资料:
http://bbs.iosre.com/
https://www.ianisme.com/ios/2319.html
http://www.tuicool.com/articles/FF3QFjE
http://blog.csdn.net/chsadin/article/details/51613197

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容