文章目录

  • 前言
  • 一、Reveal的使用
    • 下载安装
    • 简单使用
  • 二、头文件提取
    • icdump安装使用
  • 三、tweak编写
    • Theos安装
    • tweak编写

前言

这篇文章介绍了两方面内容:

  1. Reveal的下载安装与简单使用
  2. icdump用于头文件提取
  3. tweak编写

一、Reveal的使用

Reveal可以调试app任意界面。

下载安装

电脑端:
1.官网下载,但是只有试用期

https://revealapp.com/download/

2.使用旧版破解版,下述链接中配有百度网盘旧版

https://juejin.cn/post/6909716520490762248

手机端:
在Cydia应用中搜索Reveal2Loader,进行安装即可。进入设置中,找到Reveal,点击 Reveal,进入 Enabled Applications 打开允许调试的 APP即可

简单使用

电脑端打开Reveal应用,手机端重启需要调试的APP,然后在Reveal应用中选择usb连接的应用图标打开。

图可分为三列,对中间一列可以通过鼠标控制进行旋转,选择目标点击之后,就会在左右跳出相关类。在右边的NSObject中class就是view类,还有上面的View Controller中也说明了是哪个类。

二、头文件提取

通过Reveal获取目标类名之后,需要获取类中方法。class-dump无法应用oc/swift混合开发的情形。目前有工具icdump和resymbol
运行之后,icdump的效果好一点,resymbol提取的话乱码较多。
提取头文件之后就可以获取方法名,为下一步编写tweak做准备。

icdump安装使用

安装以及提取头文件命令如下,executable表示ios app脱壳之后的可执行文件。

pip3 install icdump
readobjc.py executable  > headers.txt

三、tweak编写

tweak本质上是iOS平台的动态库,存放于/Library/MobileSubstrate /DynamicLibraries目录下。这个目录下除dylib外还存在着plist与bundle两种格式的文件,plist文件是用来标识该tweak的作用范围,而bundle是tweak所用到的资源文件。

Theos安装

Theos 是一个不需要使用Xcode,就能管理,开发和部署iOS软件的跨平台开发工具
参考下述链接,简单缩短为下述4条命令

http://darren90.github.io/2019/02/12/2019JailBreak/iOS-逆向%3C7%3E-Theos的安装及Tweak项目介绍/

1.安装ldid

brew install ldid

2.修改配置文件~/.bash_profile

export THEOS=/opt/theos
export PATH=$THEOS/bin:$PATH

修改之后,执行source ~/.bash_profile即可。

3.下载theos

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

4.新建tweak项目
命令行下执行

nic.pl

然后选择iphone/tweak即可
接下来在填写选项时,

  1. package name: 表示插件tweak的包名。
  2. [iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: 是目标app包名,不可填错。
    其他选项可以任意填写或直接回车即可

tweak编写

参考https://www.jianshu.com/p/6c0a4b1492eb,其中介绍了theos的一些语法。
根据Reveal中定位出来的class名字,再配合icdump的结果

选择上图中选中的方法进行修改,目的是不显示文字部分只显示图片部分。
tweak.x代码如下(这里需要注意icdump的结果,在参数部分不一定准确,可以配合IDA或者Hopper查看)

#import <objc/NSObject.h>
#import <Foundation/Foundation.h>
#import <SpringBoard/SpringBoard.h>%hook SOSquareTimelineTextView
- (NSObject *)initWithFrame:(struct CGRect)arg2{return nil;
}%end
%ctor{NSLog(@"ctor执行-------------");
}%dtor{NSLog(@"dtor结束-------------");
}

上述代码是针对OC函数,但是目前swift/oc混合开发情况,对swift函数来编写tweak实现hook,可参考如下链接

https://www.mbo42.com/2018/04/01/hooking-swift-methods/
https://github.com/623637646/SwiftHook
https://kunnan.github.io/2018/06/06/hooking-swift-methods/

然后,在tweak所在目录下,依次执行下述三条命令即可

1. make
2 .make package
3. make install

最后成功去除了文字部分,如下图所示。

iOS插件tweak编写相关推荐

  1. 使用podspec创建iOS插件

    概述 在WWDC 2014全球开发者大会上,苹果开放了动态库.App Extension等全新的功能,这为iOS插件化开发带来了可能.在iOS开发中,动态库是iOS提供的一种资源打包方式,可以将代码文 ...

  2. ios逆向,tweak简洁使用教程

    准备工作: .爱思助手 .一台已越狱的iphone,并已安装cydia . 安装Theos,安装教程就忽略了,Theos安装起来比较麻烦,主要是网络原因,这里提供一份绿色版本 https://down ...

  3. 浅谈C#中一种类插件系统编写的简单方法(插件间、插件宿主间本身不需要通信)...

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 三年多前还在上研时,用C#+反射机制写过插件系统,后来又用M ...

  4. Jquery插件的编写和使用

    第七章 Jquery插件的编写和使用     插件的定义: 插件也称为扩展,是一种遵循一定规范的应用程序接口编写出来的程序. 下面是Jquery插件的编写很使用:要查看请点击:Jquery插件的编写很 ...

  5. 微信摇一摇插件ios_微信密友插件ios下载-微信密友ios插件下载6.6.6最新版-西西软件下载...

    微信密友ios插件是一款功能强大的苹果版微信密友隐藏软件,该插件支持微信密友隐藏.后台消息推送.群红包自动抢.运动步数修改等功能,功能强大,界面清爽,欢迎下载体验! 微信密友ios插件介绍: 1.Cy ...

  6. SQLMAP插件tamper编写与使用

    今天继续给大家介绍渗透测试相关知识,本文主要内容是SQLMAP插件tamper编写与使用. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次 ...

  7. 【Gazebo入门教程】第六讲 控制器插件的编写与配置(下)

    [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) \qquad 文章目录 [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) 一.系统插件 二.Velodyne传感器插件 1. ...

  8. 【Gazebo入门教程】第五讲 控制器插件的编写与配置(上)

    [Gazebo入门教程]第五讲 控制器插件的编写与配置(上) 文章目录 [Gazebo入门教程]第五讲 控制器插件的编写与配置(上) 一.控制插件的使用方法 1. 插件简介 2. 插件编写流程 二.模 ...

  9. linux hadoop eclipse 安装,linux下安装Hadoopeclipse插件以及编写第一个简单的MapReduce程序...

    linux下安装Hadoopeclipse插件以及编写第一个简单的MapReduce程序 Hadoop 安装eclipse这个不难.网上太多的教程,一找一大把.熟悉了之后也不再需要看教程就可以自己安装 ...

  10. python开发ios插件_[原创]Textobot-换个轻松高效的方式开发iOS越狱插件

    许愿:要是段老师的看雪平台能导入头条或者公众号的文章就好了. 导读 0x00.交个朋友 0x01.越狱开发 0x02.Cydia插件体系 0x03.Cydia插件开发 0x04.Textobot插件体 ...

最新文章

  1. 使用泛型 ,做计算器
  2. 【Android】startActivityForResult()与onActivityResult()与setResult()参数分析
  3. wpf ui框架_RapidCAX 开源UI框架
  4. 批处理之列出目录下所有文件
  5. proxy aspectj_使用AspectJ,Javassist和Java Proxy进行代码注入的实用介绍
  6. j2ee 和 j2se_在J2SE应用中模拟CDI的会话和请求范围
  7. hbuilderx制作简单网页_简单的手机网页制作教程
  8. 一文讲述G6实现流程图绘制的常用方法
  9. Zookeeper集群部署及报错分析
  10. 微软将VB和C#合二为一 年底推出全新平台VS2010
  11. C笔试题:IP地址(点分十进制)转换为十进制数
  12. Ng Alain分页控件的使用
  13. java的框架gwt介绍_GWT Portlets
  14. BUUCTF MISC刷题
  15. Python网络爬虫之数据解析(一)
  16. Excel画横坐标不均分的图表
  17. 深度优先搜索(DFS)与广度优先搜索(BFS)算法详解
  18. 基于simulink的双闭环矢量控制的电压型PWM整流器仿真
  19. 为何选用F1值(调和平均数)衡量P与R?
  20. 十分钟看懂图像语义分割技术

热门文章

  1. 如何将PDF格式的文件转换成TXT
  2. 中国月儿明,英国屋漏偏逢连夜雨 | 经济学人早报精选
  3. 计算机毕设Python+Vue亚健康人群健康管理系统(程序+LW+部署)
  4. Tanking个人短网址生成源码
  5. SpringBoot中使用邮箱接口
  6. 专注于最有价值的事情——亚马逊云科技首席科学家工作心得分享
  7. 涨知(芝)识(士)啦,电脑F1-F12功能键你会了吗?
  8. 一本通1549最大数
  9. 2020-04-06数据库具体操作
  10. 程序员外企工作真的是一种好事吗?今天我就用自己的亲身经历告诉你是一种什么感受!