frida hook微信防撤回(PC端)

PC端:

微信的主要功能都是在WeChat\[3.9.10.27]\WeChatWin.dll动态链接库中实现的

直接进IDA分析

都没有符号表

我们需要找一下实现撤回功能的函数,尝试在字符串里搜索revokeMsg

也是有非常多的字符串

我们需要用frida来hook这些字符串来找出撤回实际调用的函数

先初步写一个脚本找到WeChatWin.dll的基地址

#wecaht_hook
import frida
import sys

def main(target_process):
    session = frida.attach(target_process)

    jsCode = """

    //找WeChatWin.dll映射到内存的根地址
    const baseAddr = Module.findBaseAddress('WeChatWin.dll');
    console.log("WeChatWin.dll baseAddr: " + baseAddr);

    """
    #js脚本控制注入逻辑
    script = session.create_script(jsCode)

    script.load() #加载脚本
    print("Process attatched successfully!")
    sys.stdin.read() #持续执行

if __name__=='__main__':
    target_process = 15964 #pid
    main(target_process)
'''
WeChatWin.dll baseAddr: 0x7ffb6d8e0000
Process attatched successfully!
'''

### 手机微信撤回功能的免费实现 #### 使用Frida框架实现在Android设备上的微信撤回 通过利用开源工具Frida,可以拦截并修改微信的消息处理逻辑来阻止消息撤回。具体来说,在发送方尝试撤销一条已发出的信息时,接收的应用程序会收到通知,并执行相应的操作以移除该条目。然而,借助Frida注入JavaScript脚本到运行中的进程里,则可以在检测到此类事件发生之前就对其进行干预,从而使得原本应该消失的内容得以保留。 为了在安卓平台上部署此方案: 1. 安装必要的依赖项,包括但不限于Python环境以及Frida库; 2. 编写用于挂钩目标API调用的JS代码片段; 3. 将编译好的payload推送到移动终并通过ADB命令启动服务; 需要注意的是这种方法可能违反了《微信软件许可及服务协议》,因此仅供学习交流之目的[^2]。 #### 基于itchat库开发的小型自动化解决方案 对于希望快速体验效果而不愿深入研究底层机制的朋友而言,基于`itchat`这一第三方模块构建简单的Python应用程序可能是更为便捷的选择之一。尽管官方并不推荐也不支持任何绕过内置安全措施的行为,但在个人测试环境中探索相关技术原理依然是允许的。下面给出了一段示范性的源码清单,展示了如何捕捉来自联系人的新入站数据包并将它们存储至本地数据库中以便日后查阅——即使对方选择了收回原话也不会影响记录的真实性[^5]。 ```python import itchat from sqlalchemy import create_engine, Column, Integer, String, Text from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker Base = declarative_base() class Message(Base): __tablename__ = 'messages' id = Column(Integer, primary_key=True) sender = Column(String(50)) content = Column(Text) engine = create_engine('sqlite:///wechat.db') Session = sessionmaker(bind=engine) session = Session() Base.metadata.create_all(engine) @itchat.msg_register(['Text']) def text_reply(msg): new_message = Message(sender=msg['FromUserName'], content=msg['Content']) session.add(new_message) session.commit() if __name__ == "__main__": itchat.auto_login(hotReload=True) itchat.run() ``` 上述脚本实现了基本的消息监听与持久化保存功能,但实际应用场景下还需要考虑更多因素比如异常捕获、性能优化等。此外由于苹果公司严格的审核制度限制了iOS越狱行为的发生频率,故而在iPhone上实施类似的改造难度较大成本较高,相比之下Android系统的开放特性使其成为更好的实验对象[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值