-- 2016.09.15 --
补充自己砸壳加dylib的过程(详细步骤见虾神的hook项目,此处为补遗)
- clutch -i //在越狱机器上执行,列出已安装应用
- clutch -d 14 //14为我机器上pokemon go的编号
- 拿到ipa后提权
chmod 777 pokemongo
- 用yolo修改binary加载动态库
注意当前5625ffd这个commit是最新的,但是这个版本不能处理32bit thin binary,看issue 3对代码做修改后才行
可以用file命令查看自己砸壳后的包是什么架构的
在yolo complete以后可以用MachOView加载一下binary看load section有没有加载自己新添加的dylib
-- 2016.07.10 --
获取本机signing identity列表命令
- 可以直接拿到名称用于签名步骤
security find-identity -v -p codesigning
-- 2016.07.09 --
Clone 虾神项目
生成LocationFaker.dylib
- 打开工程,可以看到核心代码就是hook了CLLocation的coordinate方法,这里我们可以修改48/49两行的坐标为任意不锁区地点
- 修改code sign和证书,建议使用通配证书这样就不用修改bundle id了
- 注意Project和Target下的都要修改
- 这步其实修改不对也没关系,保证能编译成功就行,在生成以后还可以重签,见重签部分
- 编译后提示找不到iOSOpenDev目录
安装iOSOpenDev
cd /opt/iosopendevsetup/bin
sudo ./iod-setup base
// 可能是我机器 上还有8.1的SDK所以很快就安装完了
- 重新build后重命名Product目录下生成的dylib文件为libLocationFaker.dylib,复制备用
更新ipa中的相应文件
- 先解压pokemon_unsigned.zip,显示app里的包内容
- 用上一步中生成的libLocationFaker.dylib做替换
- 找到自己第二步中修改的证书对应的mobileprovision文件
- 方法是Xcode->Preference->Account->选择相应的Team->View Details->在相应的描述文件上右键选择Show In Finder
- 重命名mobileprovision文件为embedded.mobileprovision并替换Payload目录下的文件
重签名ipa
- 虾神已经准备好了fastlane重签脚本,在resign目录下
- 执行命令
sudo gem install fastlane
- 把pokemongo.app拖入iTunes,然后到Apps->My Apps->Pokemon Go->右键选Show In Finder找到ipa
- 修改Fastfile(我实验下来文件中必须写绝对路径,否则提示找不到文件)
32行,ipa,填写ipa绝对路径
33行,signing_identity,不会写可以先写一个"iPhone Distribution",后期根据提示修改
34行,provisioning_profile,复制前面的mobileprovision到目录下,并填写绝对路径
- 在Fastfile同目录下执行命令
fastlane ios resign
- 此时会提示Couldn't find signing identity并列出Available identities,选择之前证书对应的项复制,ctrl+c中断执行,再修改Fastfile对应项,再重新执行上述命令
- 此时可以用这个证书名重签一次libLocationFaker.dylib来保证成功
codesign -f -s "iPhone Distribution: Your Company" libLocationFaker.dylib
- 当出现
fastlane.tools finished successfully 🎉
后目录下的ipa就是重新签名完成的了
发布到fir之类的平台上安装使用
- Done