Dump微信PC端的界面Duilib文件
零、有啥用
网上大多数的微信逆向思路,是CE搜索数据得到地址,OD下访问断点,然后在堆栈里面大海捞针的找Call,效率太低了。
其实微信的界面是用Duilib做的,Duilib的界面布局写在XML文件。然后界面的消息处理,是通过控件名处理的。比如发送按钮,XML文件里面是"send_btn",代码里面是 if(xxx== “send_btn”)。利用这个特性,可以直接用字符串定位,省事很多。
一、资料
原版Duiib源码地址:https://github.com/duilib/duilib
微信Duilib源码地址:https://github.com/tencentyun/TIMSDK/tree/master/cross-platform/Windows/IMApp/Basic/duilib
二、界面创建流程
创建界面流程
窗口过程:CWindowWnd::__WndProc
消息处理函数:WindowImplBase::HandleMessage
处理创建窗口消息:WM_CREATE: WindowImplBase::OnCreate
创建界面:CDialogBuilder::Create(加载界面) CDialogBuilder::Create(处理控件)
加载界面资源:CMarkup::Load CMarkup::LoadFromFile CMarkup::LoadFromMem
三、分析过程
1、切入点
WindowImplBase::OnCreate
MessageBox(NULL, _T(“加载资源文件失败”), _T(“Duilib”), MB_OK | MB_ICONERROR);
2、找偏移过程
IDA打开 WeChatWin.dll
搜索字符串 Duilib
参考源码备注
调用偏移 080D8C0
builder.Create 偏移 0x08199EA
F7进入,F8单步调试,发现乱码XML
再F7进入,F8单步调试,两次MultiByteToWideChar就得到xml
对应源码 这里是bool CMarkup::LoadFromMem
四、偏移记录
0FD7DC62 53 push ebx
0FD7DC63 6A 00 push 0x0
0FD7DC65 68 E9FD0000 push 0xFDE9
0FD7DC6A FF15 B4A47510 call dword ptr ds:[<&KERNEL32.MultiByteT>; kernel32.MultiByteToWideChar
0FD7DC70 8B5D FC mov ebx,dword ptr ss:[ebp-0x4]
0FD7DC73 33C9 xor ecx,ecx
Executable modules, item 6
Base=0F560000
Size=018A2000 (25829376.)
Entry=1023AA01 WeChatWi.
Name=WeChatWi
File version=2.8.0.121
Path=C:\Program Files (x86)\Tencent\WeChat\WeChatWin.dll
偏移 0FD7DC70 - 0F560000 = 81DC70
五、Hook代码
源码地址:https://github.com/KongKong20/WeChatPCHook
Dump微信PC端的界面Duilib文件相关推荐
- 微信PC端无法拖入文件
问题:桌面文件或图片,无法拖入微信PC端,显示黑色圆圈禁止符号! 解决: 1.windows系统,按"WIN + R"出现"运行"对话框,然后在对话框中输入&q ...
- 微信PC端聊天界面表情包无法显示
我试成功的一个办法,分享一下 具体步骤: 1.找到微信聊天界面的设置选项,如图 2.进入微信文件保存位置 3.进入WeChat Files/All Users/config目录 4.删除config. ...
- 调试微信 PC 端的内置浏览器界面
2021-08-03 最新更新 好久没看,微信也更新了好几版.下面的方法并没有失效,不过上了 3.3.x 后的微信版本已经禁用了右键和查看 chrome://version 的功能了.进过实测,最后一 ...
- 微信 PC 端h5页面打开的内置浏览器开发者工具界面
困境 项目开发的h5页面需要在微信端支持转发.分享功能,以及企业微信授权等相关权限功能,h5页面功能开发可以直接在Chrome浏览器的移动端模式开发,但是涉及微信权限时的一些功能,则需要在微信和企业微 ...
- 微信PC端各个数据库文件结构与功能简述 - Multi文件夹
异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...
- 微信PC端数据库文件解密
异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...
- 微信PC端技术研究(2)-拿下语音
微信PC端技术研究-保存聊天语音 by anhkgg(公众号:汉客儿) 2019年1月31日 2.6.6.28 0x0. 前言 虽然一直知道CE,也用过一段时间,但一直用不好,可能太笨. 最近又学习了 ...
- 微信PC端技术研究(2)-保存聊天语音
微信PC端技术研究-保存聊天语音 转载地址: [原创]微信PC端技术研究(2)-保存聊天语音-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pediy.com 0x0. 前言 最近又学习了某位大佬用 ...
- 使用微信PC端的截图dll库实现微信截图功能(C++ Builder实现)
使用微信PC端的截图dll库实现微信截图功能(C++ Builder实现) 网上有很多文章说"使用微信PC端的截图dll库实现微信截图功能",我用node实现截图也要用一下,于是找 ...
最新文章
- photoshop 常见问题与分析
- 20个Flutter实例视频教程-第03节: 不规则底部工具栏制作-1
- Nuxt中如何使用Vuex-Store异步获取数据
- LeetCode 42. 接雨水(双指针、单调栈)
- 表现SOTA!DetCo算法:目标检测无监督对比学习
- 3-37Pytorch与torchvision
- 角速度求积分能得到欧拉角吗_高中物理竞赛典型例题精讲——中垂平面内电荷圆周运动角速度...
- 个人总结的【LaTeX】超高频特殊符号表(仅33个符号)+复杂公式速写解决方案,请查收!
- linux camera 存储,OpenCV调用摄像头录像并保存下来
- Metronome节拍器
- pygame小游戏——英语单词挑战
- Mac OS读写NTFS
- Eclipse的Debug调试技巧大全
- 绘制鱼骨图,卡壳了,找到了别人的文章,先好好学习理论知识。
- matlab regress
- R语言学习20150414
- 3D重建的进阶了解---深度图,网格,体素,点云是什么
- SQL基础培训25-SQL开发思路畅谈与开发规范
- HDOJ1495 非常可乐(bfs)
- php汉字转拼音百家姓版,Excel 将中文名改成拼音,并将姓氏放后面