aiQG's Blog

Happy hacking. Happy developing.

aiQG's GitHub ⛓Links P
Other CTF Swift Developing & Reversing

_ios逆向_app修改

18 January 2020

by aiQG_

//pacman真好玩

给panman256加上一个无敌

首先当然是”砸壳”

看到是unity做的, 用Il2CppDumper 从Unity il2cpp文件还原DLl, 生成的ida脚本可以恢复很多函数名, dump.cs保存用到的类

然后拿到binary, 用ida加载, 跑Il2CppDumper生成的脚本, 恢复一下函数名(这两步可能需要很长时间, 这期间可以找找dump.cs里可能有用的方法)

找到一个player类, 里面有个 KillCharacterKillCharacterNow , 猜测和玩家死亡有关

lldb远程调试, image list -b pacman256 找到基地址, 通过dump.cs结合ida找到函数位置下断点调试//arm64的寄存器比较特殊, 主要关注PC(下一条执行的指令)和LR(子程序结束后执行的指令(相当于返回地址))

回溯找到偏移为0x7CEA4的OnTriggerEnter函数(BadGuy类)//一看就知道是碰到👻触发的判断////当然不能直接把这个函数给干掉, 因为游戏中还有各种杀死👻的机制

这个函数偏移0x6e8处有个 B.NE 的关键跳转, 每当玩家碰到ghost就会触发判断, 若跳转则玩家不死亡, 不跳转则玩家死亡

改成 0010007D58C 06 00 00 14 B loc_10007D5A4 无条件跳转

保存, 复制出来重签名

安装到iPhone上玩玩

成功!

//这里我用的是越狱的iPhone5S iOS12.3(16F156) 从App Store下载, 最后安装在未越狱的iPhone7 iOS13.3(17C54)上, 完美运行!

Developing & Reversing

return

email:nrxxmzlrovqw4z3fgeztcncaozuxaltroexgg33n