ios逆向工具tweak logos语法总结
文章目錄
- %hook
- %hook 后面的類名,是要替換的類名, 里面的 self, 就是這個(gè)類
- self 要使用的方法,如果報(bào)錯(cuò)找不到方法名,則要在前面聲明這個(gè)類有這個(gè)方法,語(yǔ)法如下:
- %new
- %orig
- 發(fā)布debug和release版本
- %c
- %ctor
- %dtor
- 獲取原來(lái)app里的對(duì)象變量MSHookIvar
以%百分號(hào)開頭的語(yǔ)句,是logos語(yǔ)法,可以在theos tweek里面使用
%hook
%hook 類名 方法1.. 方法2.. %end%hook 后面的類名,是要替換的類名, 里面的 self, 就是這個(gè)類
self 要使用的方法,如果報(bào)錯(cuò)找不到方法名,則要在前面聲明這個(gè)類有這個(gè)方法,語(yǔ)法如下:
@interface 類名 聲明的方法 @end例如make時(shí)候報(bào)錯(cuò)如下:
Tweak.x:19:25: error: no visible @interface for 'FindFriendEntryViewController' declares the selector 'numberOfSectionsInTableView:'if ( section == [self numberOfSectionsInTableView:tableView ] - 1 ){~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~解決方法:
聲明self是什么類,在里面加上方法名,如下:
方法2:聲明這個(gè)類,并且說(shuō)明他遵守哪個(gè)協(xié)議,因?yàn)樯厦娴膎umberOfSectionsInTableView是在協(xié)議UITableViewDataSource里定義的,所以聲明self的類遵守了哪個(gè)協(xié)議,就代表里面有哪些方法.
@interface FindFriendEntryViewController<UITableViewDataSource> @end%new
%new 方法名1.. %new 方法名2..- %new下面的方法,是自己添加的方法,不是之前類擁有的方法.自定義的方法都要加在 %new 里
- %new一定要寫在%hook 和 %end之間,就是在%hook 類的里面,否則編譯報(bào)錯(cuò)
- 自定義的%new方法要在%hook之前聲明,格式如下,否則會(huì)報(bào)錯(cuò)找不到方法
error: no visible @interface for ‘類名’ declares the selector ‘方法名’
@interface 類名 方法名 @end%orig
調(diào)用原來(lái)的方法,自動(dòng)傳入原來(lái)所有參數(shù),例如原來(lái)方法參數(shù)是3個(gè),就自動(dòng)傳入3個(gè),不需要手動(dòng)填寫參數(shù)列表
%orig;發(fā)布debug和release版本
在cydia中已安裝可以查看 是debug版還是release版本
在make之后的mage package決定打包什么版本
debug版本 直接輸入make package
release版本 添加debug=0
make package debug=0%c
下面2行代碼等價(jià)%c() 等價(jià)于 NSClassFromString ,可以返回字符串表示的類對(duì)象
NSClassFromString(@"Student") %c(Student)%ctor
在動(dòng)態(tài)庫(kù)被加載的時(shí)候調(diào)用的方法,注意不要寫在%hook和%end之間
%ctor{NSLog(@"ctor執(zhí)行-------------"); }%dtor
在app被關(guān)閉的時(shí)候調(diào)用,注意不要寫在%hook和%end之間
%dtor{NSLog(@"dtor-------------"); }獲取原來(lái)app里的對(duì)象變量MSHookIvar
MSHookIvar<變量類型>(要獲取的對(duì)象, "變量名");例如下面代碼 返回原理的self對(duì)象里面的age變量
unsigned int age = MSHookIvar<unsigned int>(self, "age");總結(jié)
以上是生活随笔為你收集整理的ios逆向工具tweak logos语法总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PostgreSQL中的索引—9(BRI
- 下一篇: 嵌入式应该怎么去学?-熊健-专题视频课程