IOS逆向开发的原理、工具准备
"基本原理
Objective-C 是这门动态性語言,人们能够运用IA的Runtime动态性的替换成App原来的涵数,来超过人们(不为人知)的目地。IA 中对某一构造函数的方式的启用并不是像 C++ 相同立即获得方式的建立的偏位值来启用,因此 C++ 方式与建立的关联在编译时就可确认。而 IA 中方式和建立的关联是在运作时决策的。在启用某一构造函数的方式时,事实上是启用了 obj_msgsend 向构造函数上传1个名字为方式名的信息,而人们能够替换成这一没有响应这一信息的建立內容。IA 中较为强有力的动态性特点 Method Swizzing 就是说创建在这一基本之中。
简易而言就是说下列三句编码:
Method originalMethod = class_getInstanceMethod(theClass, originalSelector);
Method newMethod = class_getInstanceMethod(theClass, newSelector);
method_exchangeImplementations(originalMethod, newMethod);
与此同时,原先启用originalSelector涵数,都是对准人们的newSelector涵数,为此建立HOOK。
磨刀不误砍柴工,工欲善其事
要开展苹果ios的HOOK开发设计,最先要提前准备每台mac电脑电脑上(屁话),每台越狱5的iphone或是ipad。对于这种的要求,高手们开发设计了许多Nb的专用工具,专做帮人们更强的去HOOK,我们是立在高手的肩部上。
先详细介绍下列越狱5开发设计常用的专用工具OpenSSH,Dumpdecrypted,class-dump、Theos、Reveal、IDA,Hopper,
OpenSSH
这一专用工具是根据命令行专用工具浏览苹果6手机,运行命令行脚本制作。在Cydia中检索openssh,安裝。主要使用方法给出:
1、开启Mac下的terminal,键入指令ssh root@192.168.2.2(越狱5机器设备ip详细地址)
2、接下去会提醒键入超级管理员账户密码,默认设置是alpine
3、回车键确定,只能root登陆机器设备
你还可以将你Mac的公钥导进机器设备的/var/root/.ssh/authorized_keys文档,那样就能够免密登陆root了。
Cycript
Cycript是高手saurik开发设计的1个十分强劲的专用工具,能够让开发人员在命令行下和运用互交,在运作时查询和改动运用。它能够协助你HOOK1个App。Cycript更为暖心和好用的作用是它能够协助人们轻轻松松测试函数实际效果,整个过程安全性负作用,实际效果非常明显,实乃业界良心!
安裝方法:在Cydia中检索Cycript安裝
使用说明:
1、root登陆越狱5机器设备
2、cycript-p 你愿意检测的系统进程名
3、随意玩,彻底适配IA英语的语法例如cy# [#0x235b4fb1 hidden]
Cycript有几个十分有效的指令:
choose:要是了解1个类构造函数存有于当今的系统进程中,却我不知道它的详细地址,不可以根据“#”操作符来获得它,这时能够应用choose指令获得到此类的全部构造函数的内存地址
复印1个构造函数的全部特性 [obj _ivarDescription].toString()
复印1个构造函数的全部方式[obj _methodDescription].toString()
动态性加上特性 objc_setAssociatedObject(obj,@”isAdd”, [NSNumbernumberWithBool:YES], 0);
获得动态性加上的特性 objc_getAssociatedObject(self, @”isAdd”)
Reveal
Reveal是由ITTY BITTY荣誉出品的miui剖析专用工具,能够形象化地查询App的miui合理布局,人们能够用于科学研究他人的App页面是如何做的,有什么原素。更关键的是,能够立即寻找你可以HOOK的哪个ViewController,贼便捷无需瞎猫抓耗子相同四处去找是哪家ViewController了。
安裝方式:
1、下载最新版mac电脑版的Reveal
2、苹果ios安裝Reveal Loader,在Cydia中检索并安裝Reveal Loader
在安裝Reveal Loader的那时候,它会全自动从Reveal的安卓下载1个必需的文档libReveal.dylib。要是互联网情况不大好,未必可以取得成功免费下载这一dylib文档,因此在免费下载完Reveal Loader后,查验苹果ios上的“/Library/RHRevealLoader/”文件目录下有木有1个名叫“libReveal.dylib”的文档。如果不是就开启Mac Reveal,在它标题栏的“Help”选择项下,选定至少的
相关文章
- 5条评论
- 末屿梦息2022-06-06 04:38:25
- 设计常用的专用工具OpenSSH,Dumpdecrypted,class-dump、Theos、Reveal、IDA,Hopper,OpenSSH这一专用工具是根据命令行专用工具浏览苹果6手机,运行命令行脚本制作。在Cydia中检索openssh,安裝。主要使用方法给出: 1、开启Mac下
- 辙弃七婞2022-06-05 22:25:48
- 是它能够协助人们轻轻松松测试函数实际效果,整个过程安全性负作用,实际效果非常明显,实乃业界良心! 安裝方法:在Cydia中检索Cycript安裝 使用说明: 1、root登陆越狱5机器设备 2、cycript-p 你愿意检测
- 笙沉王囚2022-06-05 21:28:26
- objc_getAssociatedObject(self, @”isAdd”)RevealReveal是由ITTY BITTY荣誉出品的miui剖析专用工具,能够形象化地查询App的miui合理布局,人们能够用于科学研究他人的App页面是如何做的,有什么原素
- 性许妄愿2022-06-06 00:23:56
- 去HOOK,我们是立在高手的肩部上。 先详细介绍下列越狱5开发设计常用的专用工具OpenSSH,Dumpdecrypted,class-dump、Theos、Reveal、IDA,Hopper,
- 余安秋酿2022-06-06 03:24:12
- ect(self, @”isAdd”)RevealReveal是由ITTY BITTY荣誉出品的miui剖析专用工具,能够形象化地查询App的miui合理布局,人们能够用于科学研究他人的App页面是如何做的,有什么原素。更关键的是