la0s / la0s.github.io

Mine Mine,你雨伞雨伞赶快打开~
6 stars 5 forks source link

iOS重打包绕过签名校验防护 | La0s #25

Open la0s opened 5 years ago

la0s commented 5 years ago

https://la0s.github.io/2019/03/21/iOS_Resign/

还是上篇文章里那个有反调试的APP,我们这里来试一下静态patch的方法,也就是重打包的方法。一般来说iOS重打包有两种方法: 第一种方法:直接使用Cydia Impactor使用开发者签名安装即可,这种情况下不会修改APP的BundleID(推荐) 第二种方法:先使用iOS App Signer手动签名 然后使用mobiledevice install_app ~/Downloads/*.ipa 命令安装 但是这种情况下会把自己的签名覆盖APP的BundleID,有可能会导致异常 针对于这个APP的ptrace反调试,直接使用Keypatch插件Nop掉sub_10004FF4C函数即可,然后Edit -> Patch program -> Apply patches to input file替换掉二进制文件即可 重新压缩成IPA文件,使用Cydia Impactor安装,但是应用闪退了,这说明应用做了签名校验,一般来说iOS开发会用exit函数退出应用,直接找到_exit的调用者 一个很明显的OC函数[XYAppIdentifierManager appIdentifierWithOrganizationId:],查看此函数 修改指向退出流程的跳转指令CBNZ -> CBZ,再重新打包应用就不会闪退了