跟着虾神做Pokemon Go锁区破解

96
xi_lin
2016.07.09 21:37* 字数 866

-- 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

  • 官网给的installer在跑到最后一步的时候提示失败
  • 官方github issue里给的解决方案太麻烦了,要安装一坨东西。。
  • 搜到杨神的动手实录发现可以直接手动执行

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
随笔
Web note ad 1