在逆向过程中, 我们经常有这样的需求:
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
复制代码
1
2
3
4
5
6
7
8
9var 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']));
终端执行命令:
复制代码
1
2
3
4frida -l hook_revoke.js 微信
接下来, 在手机端微信向某个好友发消息, 再撤回后, mac端微信上消息仍然存在, 达到了防撤回的效果.
最后
以上就是着急黑夜最近收集整理的关于frida替换函数实现mac端微信防撤回的全部内容,更多相关frida替换函数实现mac端微信防撤回内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复