IOS逆向工程重签名

前言


一个月前,虾神放出了这篇文章,是关于逆向编程方面的,当时很有兴趣,只是项目紧迫没有时间去研究。最近稍微空闲下来,翻到Kitten的博客想起这件事,于是回头去试试逆向编程。

说实话,我是一个逆向的菜鸟,以前只是了解实现过程:砸壳 -- 注入hook代码 -- 重签名。关于砸壳和注入代码,网上有很多方法和工具,由于没有越狱设备,暂时不去尝试。这里主要说下最简单的重签名。对象还是最近火热的Pokemon Go。

准备

  • 虾神的项目
  • 参考博客(少走很多弯路)
  • 肯定很多人都不知道自己做的app的签名过程,这篇博客很详细得说明了这一过程。博客(耐心看有好处)

重签名.dylib文件


首先从github上将虾神砸壳过的项目clone下来并解压pokemon_unsigned.zip,样子大概是这样:

项目文件
pokemongo 包里的内容

这里先不急打开LocationFaker.xcodeproj文件编译,就算打开了也会出错,因为这里缺少越狱iosOpenDev环境。我们可以去官网下载一个安装包。这里我安装的是1.6-2安装包。

iosOpenDev

下载下来是一个pkg文件,双击运行,先试着安装。

安装iOSOpenDev-1.6-2.pkg

不出意外肯定是安装失败的,官方的说法是先安装MacPorts,再更新 MacPorts,再安装 DPKG 文件....这里介绍一个简单的方法。虽然安装失败,但是你的电脑里还是会存在iosopendevsetup文件夹。全局搜索就能找到这个文件夹。

搜索iosopendevsetup

终端cd到/opt/iosopendevsetup/bin目录下,执行sudo ./iod-setup base命令就可以成功安装了。
大退xcode,打开新建工程界面就可以发现我们有越狱开发环境了。

iOSOpenDev环境安装成功

回头再打开虾神的项目LocationFaker.xcodeproj,配置下证书和描述文件

配置证书和描述文件

这里有几点要注意:

  • 配置的描述文件最好使用通配符 “*” 的描述文件,这样你就不用改 plist文件中的bundle id了。
  • 选择了形如iOS Team Provisioning Profiel:com.kittenyang.pokemonHook这样的描述文件,那么你需要一并修改包内容里面 info.plist的 Bundle ID 为 com.kittenyang.pokemonHook
  • 描述文件在 Xcode - Preference - Account - 选择一个 Team - View Details - 找到描述文件右键 Show In Finder.
  • 拷贝出你准备用来签名的描述文件,改名成 embedded.mobileprovision到包pokemongo.app内容里面。
  • 下载开发者证书备用。
通配符描述文件
重签名证书下载

一切就绪就编译吧,我这边是success,成功编译。在项目中LatestBuild里找到刚才编译的LocationFaker.dylib,改名为libLocationFaker.dylib扔到pokemongo.app包里,覆盖原来文件。包重签名就这样完成了。

重签名.ipa文件


这里我选择用iReSign来重签名。首先要得到一个.ipa,这个ipa文件就是原来项目中的那个包pokemongo.app
把pokemongo.app拖入iTunes的资料库,就会自动生成.ipa文件。如果不知道iTunes的资料库的路径,就全局搜索pokemongo.ipa就好。

打开iReSign,填写ipa路径、mobileprovision(刚才的描述文件路径)和证书路径(备用的证书),其他空着,重新签名。成功后会获得pokemongo-resigned.ipa,把pokemongo-resigned.ipa拖入iTools就能安装啦。

Paste_Image.png

实现效果


成功运行没闪退!

总结


逆向工程重签名是逆向工程中最简单的一步,即便如此,一套流程走下来还是有很大的收获,总之还是非常有意思的。

我是翻滚的牛宝宝,欢迎大家评论交流~

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

推荐阅读更多精彩内容

  • 期待了很久的精灵宝可梦总算发布了,出于对它的热爱特地问朋友借了个美区的Apple ID下下来准备试玩一番。可是万万...
    loannes阅读 1,414评论 0 3
  • 为什么要重签名? 1、在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等)。修改完成以...
    Yochi阅读 8,345评论 9 11
  • ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 ap...
    红发_KVO阅读 71,982评论 24 63
  • 注:这么长时间以来本文后续加入了新的内容以及一些修改,由于精力有限,所以不会同步更新到简书上。请大家移步到本项目的...
    Uri阅读 11,830评论 36 66
  • 月圆夜,绾青丝,独立寒窗。 再逢时,洗铅华,沧海相忘。
    相忘沧海阅读 120评论 0 1