ios逆向工具tweak logos语法总结
文章目录
- %hook
- %hook 后面的类名,是要替换的类名, 里面的 self, 就是这个类
- self 要使用的方法,如果报错找不到方法名,则要在前面声明这个类有这个方法,语法如下:
- %new
- %orig
- 发布debug和release版本
- %c
- %ctor
- %dtor
- 获取原来app里的对象变量MSHookIvar
以%百分号开头的语句,是logos语法,可以在theos tweek里面使用
%hook
%hook 类名
方法1..
方法2..
%end
%hook 后面的类名,是要替换的类名, 里面的 self, 就是这个类
self 要使用的方法,如果报错找不到方法名,则要在前面声明这个类有这个方法,语法如下:
@interface 类名
声明的方法
@end
例如make时候报错如下:
Tweak.x:19:25: error: no visible @interface for 'FindFriendEntryViewController' declares the selector 'numberOfSectionsInTableView:'if ( section == [self numberOfSectionsInTableView:tableView ] - 1 ){~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
解决方法:
声明self是什么类,在里面加上方法名,如下:
@interface FindFriendEntryViewController
- (long long)numberOfSectionsInTableView:(id)arg1;
@end
方法2:声明这个类,并且说明他遵守哪个协议,因为上面的numberOfSectionsInTableView是在协议UITableViewDataSource里定义的,所以声明self的类遵守了哪个协议,就代表里面有哪些方法.
@interface FindFriendEntryViewController<UITableViewDataSource>
@end
%new
%new
方法名1..
%new
方法名2..
- %new下面的方法,是自己添加的方法,不是之前类拥有的方法.自定义的方法都要加在 %new 里
- %new一定要写在%hook 和 %end之间,就是在%hook 类的里面,否则编译报错
- 自定义的%new方法要在%hook之前声明,格式如下,否则会报错找不到方法
error: no visible @interface for ‘类名’ declares the selector ‘方法名’
@interface 类名
方法名
@end
%orig
调用原来的方法,自动传入原来所有参数,例如原来方法参数是3个,就自动传入3个,不需要手动填写参数列表
%orig;
发布debug和release版本
在cydia中已安装可以查看 是debug版还是release版本
在make之后的mage package决定打包什么版本
debug版本 直接输入make package
make package
release版本 添加debug=0
make package debug=0
%c
下面2行代码等价%c() 等价于 NSClassFromString ,可以返回字符串表示的类对象
NSClassFromString(@"Student")
%c(Student)
%ctor
在动态库被加载的时候调用的方法,注意不要写在%hook和%end之间
%ctor{NSLog(@"ctor执行-------------");
}
%dtor
在app被关闭的时候调用,注意不要写在%hook和%end之间
%dtor{NSLog(@"dtor-------------");
}
获取原来app里的对象变量MSHookIvar
MSHookIvar<变量类型>(要获取的对象, "变量名");
例如下面代码 返回原理的self对象里面的age变量
unsigned int age = MSHookIvar<unsigned int>(self, "age");
ios逆向工具tweak logos语法总结相关推荐
- IOS逆向学习-Tweak
IOS逆向学习-Tweak 1. theos指令及可能遇到问题 2. thes的实战练习 2.1 将桌面的更新数字去掉 2.2. 给微信发现界面增加两行功能 2.2.1 hook代码语法知识 2.2. ...
- ios逆向工具MonkeyDev简介
MonkeyDev简介 虽然是美国的苹果开发的操作系统,但是要论越狱iPhone和逆向分析来说,那国内远胜于米国了,可能是国内很多相关的灰色产业链吧.在之前,我们想动态调试一个没有源码的应用程序,通常 ...
- iOS逆向工具-Theos
阅读此文前,请确保iOS设备已越狱,否则一切都是空谈! 1.环境安装 a.指定xcode(根据自己xcode路径来): sudo xcode-select -s/Applications/Xcode. ...
- ios逆向工具Class-dump的安装和导出.h文件的教程
目录 官网文件安装方法 运行报错 Cannot find offset for address xxx in stringAtAddress: 解决运行报错的版本下载地址: 获取app文件 class ...
- iOS逆向(8)-Monkey、Logos
由于最近微信大佬发飙,罚了红包外挂5000万大洋,这就让人很慌了,别说罚我5000万,5000块我都吃不消.所以笔者决定以后不用微信做例子了.换成优酷了?. 本文会对优酷的设置页面增加一个开启/关闭屏 ...
- 2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程——使用theos tweak 注入hook修改游戏执行代码上传动态头像
2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程--使用theos tweak 注入hook修改游戏执行代码上传动态头像 开篇 需求&最终效果 环境要求与即将使用的 ...
- iOS逆向实战与工具使用(微信添加好友自动确认)
iOS逆向实战与工具使用(微信添加好友自动确认) 原文链接 源码地址 WeChatPlugin-iOS Mac OS 版微信小助手(远程控制.消息防撤回.自动回复.微信多开) 一.前言 本篇主要实现在 ...
- iOS逆向 开发工具
iOS逆向开发交流群 iOS逆向开发所需要的一些工具集合
- iOS逆向之脱壳工具creakerXI+,最简单、最适合新手的脱壳工具
在学习iOS逆向中,脱壳是必备技能之一,在网上看教程有使用 Clutch 和 dumpdecrypted 但是,不知道 是我操作问题,还是手机版本,以及APP版本更新问题 尝试了几次,都无法成功脱壳 ...
- ios逆向越狱手机必备工具篇
1.手机越狱 ps:越狱前用xcode调试手机断点一次.这样手机里就会生成以后debugServer文件. 手机版本ios12.4 https://www.abcydia.com/read-16031 ...
最新文章
- 在CentOS7上部署Apache Mesos
- 微型计算机的EMC设计视频,干货 | EMC设计有多难,看完这31个电磁兼容标准电路,瞬间懂了...
- 如何找出R中加载的软件包版本?
- 一款功能强大的IP查询工具
- MySQL主从复制原理、半同步操作步骤及原理
- 如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结)
- Kubernetes群集的零停机服务器更新
- 雷蛇在天猫618大爆发,雷军第二天就找其创始人取经
- 网易云课堂Java模拟面试笔记(31-40)
- DataGridView的DataGridViewComboBoxColumn列点击后触发其他方法
- htc tracker avatar
- HashKey TokenGazer | 去中心化身份(DID)研究报告
- Linux内核研究系列之可执行文件格式(转)
- 致远项目管理SPM系统案例:华仁药业股份有限公司合同管理
- php股票量化交易接口有什么优势?
- 正则表达式匹配连续出现的单词
- 杭电计算机复试面试题库,杭电电子分院历年复试题(整理版)
- 基于51单片机的PWM控制马达电机调速正反转(仿真+源码+全套资料)
- Android Q读写共享目录媒体文件
- 论文解读:Correcting Chinese Spelling Errors with Phonetic Pre-training