iOS逆向逆向未来(reverse engineering)iOS逆向

IOS逆向工程重签名

2016-08-04  本文已影响1511人  o翻滚的牛宝宝o

前言


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

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

准备

重签名.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,配置下证书和描述文件

配置证书和描述文件

这里有几点要注意:

通配符描述文件 重签名证书下载

一切就绪就编译吧,我这边是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

实现效果


成功运行没闪退!

总结


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

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

上一篇下一篇

猜你喜欢

热点阅读