使用IPAPatch免越狱调试别人的APP

版权声明:本文为博主原创文章,未经博主允许可以转载,但转载时请附上原文地址: https://blog.csdn.net/youshaoduo/article/details/81701306

现在大家都开始使用MonkeyDev来调试别人的APP了,但是越牛逼的框架使用起来越繁琐,毕竟功能跟易用性是呈反比的。但是对于简单的渗透来说,用IPAPatch还是方便一些。

首先从github上下载IPAPatch,然后解压缩,发现就是一个iOS的工程文件,先看一下他的文件结构:

├── Assets
│   ├── Dylibs
│   ├── Frameworks
│   │   └── RevealServer.framework
│   ├── Resources
│   └── app.ipa
├── IPAPatch
│   ├── IPAPatchBypassAntiDebugging.h
│   ├── IPAPatchBypassAntiDebugging.m
│   ├── IPAPatchEntry.h
│   ├── IPAPatchEntry.m
│   ├── Info.plist
│   └── Vendors
│       └── fishhook
├── IPAPatch-DummyApp
│   ├── AppDelegate.h
│   ├── AppDelegate.m
│   ├── Info.plist
│   ├── ProjectConfigurationWarning.cpp
│   ├── ProjectConfigurationWarning.hpp
│   └── main.m
├── IPAPatch.xcodeproj
│   ├── project.pbxproj
│   ├── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── xcshareddata
│   │   └── xcuserdata
│   └── xcuserdata
│       └── youssef.xcuserdatad
├── LICENSE
├── README.md
├── Temp
│   ├── Payload
│   │   └── app-resign.app
│   └── __MACOSX
│       └── Payload
└── Tools
    ├── create_ipa.sh
    ├── options.plist
    ├── optool
    ├── patch.sh
    └── restore-symbol

我们可以看到,在Assets文件夹下,可以放入脱壳的app.ipa,这里有两点要注意,首先必须是脱壳的ipa,其次必须重新命名成app.ipa.

Assets文件夹下面的Frameworks文件夹里,可以放入需要重新打包进APP的framework,这里我放了RevealServer.framework,是为了用Reveal查看他的UI结构。

重新打包之后生成的app放在了Temp->Payload文件夹下面。

然后用xcode打开IPAPatch工程。

工程结构

其实我们需要用到的就是IPAPatchEntry.m文件,我们主要的hook代码就写在里面。

在重新打包之前,我们要先改一下IPAPatch-DummyApp的bundleID和证书文件:

这里写图片描述

证书选择个人证书就行,bundleID随便改,只要不跟别人的冲突。

将已经砸壳过得app.ipa放入Assets文件夹中,然后连接上手机,运行一下。。

这个手机选择也是有讲究的,我试过iOS8-iOS11的未越狱手机,发现在iOS11.4.1上会安装失败,其他系统会成功,所以最好是找个iOS10或者iOS9的手机测试。

在安装过程中,如果出现错误:
couldn’t be opened because you don’t have permission to view it. Even though i have placed my app decrypted with clutch and named it app.ipa

我的解决方法是进入options.plist文件(Xcode里面文件搜一下),把里面的RESTORE_SYMBOLS字段改为NO,然后重新运行就好。

猜你喜欢

转载自blog.csdn.net/youshaoduo/article/details/81701306
今日推荐