美文网首页后端砖头
PC微信消息接收hook

PC微信消息接收hook

作者: 一条咸鱼_9667 | 来源:发表于2022-02-05 23:04 被阅读0次

    微信版本3.1.0.41
    主要几个步骤:
    1、用CE找hook地址
    找小号向测试的微信号发送消息,然后用ce搜索,注意搜索字符串(多发送几次,删除明显不对的),


    image.png

    找到很多个结果,右键“浏览相关内存区域”查看内存中是否存在带<msg>的内存


    image.png
    一般这个就是了。
    image.png
    确定内存地址为0x11022973,CE结束了开始使用OD。
    2、OD查找call。
    查找内存区域,命令dd 0x11022973 (下断点用bp)
    image.png

    下内存写入断点


    image.png
    再次用小号发送消息到测试号
    image.png
    断下来了。有下面查找堆栈访问信息,一直往下找,大概在十几个这样子会找到,一个个点进去看
    image.png
    或者直接按alt+k查找堆栈。
    image.png

    如果找到这种数据库操作的一般来说就是找到了,这个函数内做数据库操作。


    image.png

    这里不适合做hook点,往上一级找hook点,在函数头下断点


    image.png
    把之前的断点去除,继续运行,在发送一次消息
    image.png

    好断下来了,返回上一级函数


    image.png
    看起来也不太适合
    我们继续上一步的操作 找到函数头 下断点
    image.png
    继续返回上一层
    image.png
    我们在call上 下一个断点 然后把刚刚前面几个断点先取消了
    image.png

    这里 一共是压入了3个参数

    我们在第一个 mov eax,xxxx 这里下一个断点

    单步来分析一下 这里面都有什么

    我们看下ecx 的值

    可以右键右上角的寄存器中的 ecx 寄存器,这里可以看到 ecx 的值是一个 0x0

    然后 选择数据窗口跟随

    image.png

    这里在压入 eax 之前 eax 的值 + 0x14

    我们已经知道 eax 在最开始 就是赋值了 [ebp-0x3c]

    我们来看下 他这里面到底放了什么东西

    这里指向了一个内存地址

    我们在追进去看下


    image.png

    可以看到 还是一个内存指针


    image.png

    继续追进去


    image.png
    image.png
    这里 已经有我们的wxid 发的内容 这些消息了 也就是说 压入的这个参数 就是 我们微信消息的结构体

    eax 这个地址怎么来呢

    78A0A55D 8B45 C4 mov eax,dword ptr ss:[ebp-0x3C] ; eax 赋值 [ebp-0x3c]

    78A0A564 83C0 14 add eax,0x14

    也就是

    消息结构体内存地址 = [[ebp + 0x3c] + 0x14]

    我们继续看 下一个参数是什么

    image.png

    由于我们是在写入库的上一层做的分析 第三个参数这里是一个数据库文件名字

    这个我们可以不用管它 毕竟我们用不到她

    我们现在记录下 微信模块WeChatWin.dll的基址 等会我们拿数据 得用这个来计算偏移量

    Executable modules, 条目 11

    基址=786A0000

    大小=01B0C000 (28360704.)

    入口=79514DAC WeChatWi.<ModuleEntryPoint>

    名称=WeChatWi

    文件版本=3.1.0.41

    路径=C:\Program Files (x86)\Tencent\WeChat\WeChatWin.dll

    我们吧这个call 也记录下来

    相关文章

      网友评论

        本文标题:PC微信消息接收hook

        本文链接:https://www.haomeiwen.com/subject/dprykrtx.html