例如指定 地址 0x0000000100c97a0c ,如何针对此地址进行写tweak呢?
?hook啥东西,那个地址的函数还是什么
1 个赞
那是一个sub_xxxx函数,我利用frida hook修改里面的返回值,但是用theos tweak不知道怎么针对地址进行修改返回值。。。
需要找到这个函数的偏移量
void (*origin_method)(void);
void hook_method(void) {
NSLog(@"hook success");
}
%ctor
{
unsigned long address = _dyld_get_image_vmaddr_slide(0) + 偏移量;
MSHookFunction((void *)address, (void *)&origin_method, (void **)&hook_method);
}
好的,非常感谢。我要注入指定app的,在frida中用如下实现
var base_addr = Module.findBaseAddress(module);
麻烦问下在Theos怎么写呢?
您好,我用您的代码hook sub_100A238B0(id a1,NSNumber *a2),但是出现了app闪退的情况,请问什么原因?
#import <substrate.h>
#import <mach-o/dyld.h>
void (*origin_method)(void);
void hook_method(void) {
NSLog(@"hook success");
}
%ctor
{
unsigned long address = _dyld_get_image_vmaddr_slide(0) + 0x100A238B0;
MSHookFunction((void *)address, (void *)&origin_method, (void **)&hook_method);
}
origion_method和hook_method换个位置
1 个赞
刚才搞错了,非常抱歉,现在可以了,谢谢
再次感谢大神们的帮助。
正确的应该是:
#import <substrate.h>
#import <mach-o/dyld.h>
void (*origin_method)(void);
void hook_method(void) {
NSLog(@"hook success");
}
%ctor
{
unsigned long address = _dyld_get_image_vmaddr_slide(0) + 0x100A238B0;
MSHookFunction((void *)address, (void *)&hook_method, (void **)&origin_method);
}
1 个赞
抱歉, 我贴错代码了, 之前还因为这个问题我特意问过
1 个赞
我已改正,非常感谢您的帮助
1 个赞