ios逆向工具tweak logos语法总结
生活随笔
收集整理的這篇文章主要介紹了
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是什么類,在里面加上方法名,如下:
方法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
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语法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PostgreSQL中的索引—9(BRI
- 下一篇: 嵌入式应该怎么去学?-熊健-专题视频课程