首页
社区
课程
招聘
[求助]使用cynject 注入dylib 并hook目标函数 运行死机!
发表于: 2014-11-13 11:16 8393

[求助]使用cynject 注入dylib 并hook目标函数 运行死机!

2014-11-13 11:16
8393
使用的工具
cynject:cydiasubstrate库中提供的,可以实现进程注入。

我写的测试程序
1. demo:目标程序 循环调用NSLog 输出信息
2. my.dylib:调用MSHookFunction((void*)NSLog,(void*)&my_NSLog,NULL)

过程
1. 运行demo
2. 执行cynject向demo注入my.dylib, 然后死机了。。。

错误信息
pc指针指向 my_NSLog 地址
错误类型 有时是KERN_INVALID_ADDRESS 有时是KERN_PROTECTION_FAILURE


[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

收藏
点赞
支持
分享
最新回复 (2)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你最好写一个old_NSLog,用来保存NSLog被hook后,新的NSLog的地址
my_NSLog里面这样写 :
{
     // 这里写你要做的东西

     old_NSLog(.........);
}

最好hook把old_NSLog填到第三个参数里
2014-11-22 23:24
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
3
1
2
3
4
5
6
7
8
9
MSHook(void, NSLogv, NSString *format, va_list args) {
    _NSLogv(format, args);
 
    NSString *logResult = [[NSString alloc] initWithFormat:format arguments:args];
    FLogInfo("%s", TO_CSTR(logResult));
}
 
...
MSHookFunction(NSLogv, MSHake(NSLogv));


最近正好在写类似的功能,将目标程序的NSLog输出到文件中。Hook的是NSLogv,实际上NSLog是调用的NSLogv。
用这两段就可以了,或者参考这个Tweak.xm
2014-11-25 22:57
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册