TypechoJoeTheme

霍雅的博客

登录
用户名
密码
/
注册
用户名
邮箱

霍雅

追求源于热爱,极致源于梦想!
网站页面

WMPFDebugger 新版本找偏移 通过x64dbg

2026-05-20
/
0 评论
/
76 阅读
/
正在检测是否收录...
05/20

由于ida加载整个dll太慢了 所以使用x64dbg作为调试
https://github.com/evi0s/WMPFDebugger/blob/main/ADAPTATION.md

附加任意一个wechatappex

到符号找到flue.dll
复制右键基址00007FF8A7E30000

然后双击进来
右键当前模块字符串

LoadStartHookOffset

等待加载完毕,搜索OnLoadStart

双击进去
寻找有applet_index_container.cc的

然后继续往上看,push r14就是函数的首地址

右键复制偏移

填写

{
    "Version": xxx,
    "LoadStartHookOffset": "0x25B5DD0",
}

SceneOffsets一般不用修改,
如果要修改的话需要用到ida,
但是比你用ida加载整个dll快很多,通常加载整个dll需要一晚上
但是加载到这个地方只需要十分钟

拿到上面的LoadStartHookOffset偏移0x25B5DD0
ida打开dll默认的偏移是0x180000000
所以只需要在LoadStartHookOffset前面加上18
0x1825B5DD0
ida按g输入0x1825B5DD0

然后按f5
往下找看到这种结构

你将找到魔法数字 1376LL ,这是 SceneOffsets 的第一个参数

"SceneOffsets": [1376, ?, ?]

双击并导航到包含该数字的函数(如上例中的sub_182B021D0)
您会发现类似

result = *(_QWORD *)(a1 + 8);
  if ( *(_DWORD *)(*(_QWORD *)(*(_QWORD *)(result + 1312) + 16LL) + 456LL) != 1101 && *(_BYTE *)(a1 + 41) != 1 )
    goto LABEL_32;
  v34 = 0xAAAAAAAAAAAAAAAAuLL;
  ws:__localhost:9421_1 = 0;
  v30 = 0;
  v31 = 0;
  memset(v33, 0, sizeof(v33));
  v32 = v33;
  ws:__localhost:9421 = (char *)&ws:__localhost:9421_1;

如果我jmp什么爆红的就是还没有加载到哪里

"SceneOffsets": [1376, 1312, 456]

CDPFilterHookOffset

搜索SendToClientFilter

双击过来看看结构是不是有devtools_message_filter_applet_webview

是的话往上找
找到
push r15
pushr14

然后从push开始找的第一个call

然后双击这个call
会跳到push rsi

右键复制RVA
301B3C0

"CDPFilterHookOffset": "0x301B3C0",

Save the config  保存配置

将您在上面找到的参数保存到 frida/config 中的 addresses.xxxxx.json 处,其中 xxxxx 是新版本

{
    "Version": xxxxx,
    "LoadStartHookOffset": "0x25B5DD0",
    "CDPFilterHookOffset": "0x301B3C0",
    "SceneOffsets": [1376, 1312, 456]
}
朗读
赞(0)
版权属于:

霍雅的博客

本文链接:

https://www.huoya.work/bk/index.php/archives/567/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月