最近因为需要要挂机发送消息,所以要在监控的基础上做模拟发送,发送的基本效果就是给定一个wxid,给定消息内容,进行发送。
之前论坛有人已经就duilib和发送消息进行了研究,我也只是在看了他们以后完成的。
因为历史原因,微信版本是1.0.25。本教程仅作为学习研究。
1.Hook CDialogBUilder::Create
这里主要是为了拿到解密的xml以及获取控件的指针地址。
如何找到这个函数的地址,通过搜索字符串“加载资源失败“,“Duilib”。找到以后,上面的两个函数就是了。然后进行hook。
获取文件名和文件,我hook了两个地方。
void __declspec(naked) MyDumpDuilibXml()
{
__asm{
pushfd
pushad
push [esp+0x30]
push [esp+0x30]
push [esp+0x30]
push ecx //拿到文件名