【iOS开发】iOS逆向开发入门

本文以一个简单的栗子,带你入门iOS逆向开发。提纲如下:

逆向开发流程

我们的需求是去除招商银行掌上生活App卡金融模块的浮动广告,如下图所示

需求

最终达到的效果如下图所示

效果

逆向开发环境搭建可参考笔者上篇相关文章,此外还需安装签名工具ldid

brew  install  ldid

安装theos到电脑的~/theos目录下

git clone --recursive https://github.com/theos/theos.git $THEOS

其中$THOSE是个环境变量,终端键入如下命令:vim ~/.bsah_profile,然后追加以下四行

export THEOS=~/thoes

export PATH=$THEOS/bin:$PATH

export THEOS_DEVICE_IP=127.0.0.1

export THEOS_DEVICE_PORT=10012

最后两个环境变量在Tweak项目中需要用到,表示用电脑的10012端口同iPhone的22端口通信。

安装Clutch,使用说明可参考官网,此处不做介绍。下面开始干活了。

一、脱壳、导出头文件

利用MJ大神的逆向工具MJAppTools,可以方便列出手机上的App信息。

App

如上图所示,可以看到掌上生活App的安装路径及Bundle ID。Mac登录iPhone,将掌上生活App脱壳,clutch -d App序列号或者Bundle ID

clutch -d com.cmbchina.cmblife

接着就将其脱壳了,如下图所示

脱壳

在上图所示目录下找到脱壳后的App包,拷贝到电脑的某个目录(/Users/你的电脑名/Desktop/reverse/CMBLife),然后cd到此目录,利用class-dump导出脱壳后的App包头文件。

class-dump  -H cmblife -o Headers

二、明确需求,找到目标文件

利用Reveal可以迅速找到目标文件,本文利用mjcript找到目标文件。

控制器

如上找到目标控制器,然后遍历它的根视图的所有子制图

MJSubviews(#0x14680cca0.view)

目标视图

如上,可以猜想浮动的广告控件就是蓝色框中的那个视图。也就是要hook的那个类。我们可以通过如下方式简单地验证就是此视图,设置其hidden属性看手机上显示与否。

验证目标视图

三、新建Tweak项目、编写代码

cd到/Users/你的电脑名/Desktop/reverse/CMBLife,新建工程

nic.pl

新建工程

填写项目信息,诸如Project Name、Package Name等。

打开Tweak.xm文件,编写代码,hook目标文件CMBDPFloatAdView

编写代码

将其初始化方法返回nil就可达到需求目标

四、编译、打包、安装

1)编译:执行make命令,创建了obj文件夹

make

2)打包:执行make package命令,生成package文件夹,存放deb文件

make package

,3)安装:执行make install安装deb文件

make install

安装完毕会重启SpringBoard,此后在Cydia中会看到刚刚安装的插件

CMBLifeTweak

        再次打开掌上生活App就没有浮动广告了。至此,一个完整插件就简单地开发完毕。逆向开发的基本流程大致如此。当然这其中还有些具体的、复杂的流程,本文不做介绍,希望可以起到抛砖引玉的作用。基本套路就是脱壳、导出头文件、静态分析、动态调试、编写代码、编译、安装、打包。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ios 逆向工程 刚进一个新公司,公司的大牛直接分给一个课题研究任务,直接懵逼了,/(ㄒoㄒ)/~~ 想哭,世界就...
    天下林子阅读 29,851评论 39 120
  • [TOC] iOS 逆向 -微信 helloWorld 一、 前言 本篇主要制作微信的 tweak,实现在非越狱版...
    TKkk阅读 14,470评论 21 42
  • 作者:青玉伏案 出处:http://www.cnblogs.com/ludashi/ 如果你对iOS逆向工程有所了...
    无沣阅读 5,150评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,280评论 25 709
  • 一、介绍及安装 1.简介 Theos是一个越狱开发包。与其它工具相比,它的特点就是简单:下载安装简单、Logos语...
    华南虎阅读 13,762评论 5 52

友情链接更多精彩内容