概述
在逆向过程中, 我们经常有这样的需求:
hook某个目标函数, 将它的实现过程给屏蔽掉, 以达到想要的效果.
frida中提供了Interceptor.replace()来实现此功能.
例如, 我们想在mac上实现微信3.0消息防撤回的功能, 已经判断出撤回消息调用的方法是 -[FFProcessReqsvrZZ FFToNameFavChatZZ:sessionMsgList:] , 那我们只要把这个方法实现屏蔽掉就能达到防撤回的效果, 接下来, 我们用frida实现.
通过lldb对微信调试后发现, mac上应用并没有ASLR(使用image list -o -f WeChat). 在ida中找到方法的地址是0x100FDD7F7.
js代码如下:
hook_revoke.js
var addPtr = ptr("0x100FDD7F7");
// NativeFunction 里有3个参数, 分别代表是返回值、第一个参数、第二个参数
var add = new NativeFunction(addPtr, 'void', ['pointer', 'pointer']);
//进行替换
Interceptor.replace(add, new NativeCallback(function(arg1, arg2) {
console.log("Hook ptrace Bypass!!!");
return 0;
}, 'void', ['pointer', 'pointer']));
终端执行命令:
frida -l
hook_revoke.js
微信
接下来, 在手机端微信向某个好友发消息, 再撤回后, mac端微信上消息仍然存在, 达到了防撤回的效果.
最后
以上就是着急黑夜为你收集整理的frida替换函数实现mac端微信防撤回的全部内容,希望文章能够帮你解决frida替换函数实现mac端微信防撤回所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复