小鱼塘--自说自话的地方

  • 小玩意
  • 小想法
记录自己技术和想法地方
  1. 首页
  2. 微信
  3. 正文

PC微信多开方案二

25 3 月, 2020 3311点热度 0人点赞 2条评论
内容目录

背景:

以前写了一篇文章有关PC微信多开的文章,那篇文章用的窗口hook 和释放句柄的方案,这种方案会导致全局多开,你只要打开我的程序,那么你点击微信的图标就可以无限多开。但我们开发产品的时候,一般会希望通过我们产品开一个。正好自己有这样子的需求,于是自己就有这篇文章。

思路:

采用新的方案: 远程DLL注入, HOOK CreateMutexW�0�2 替换 创建互斥体的名字(原来微信互斥体名字:_WeChat_App_Instance_Identity_Mutex_Name) 加上随机数字,你可以时间戳+随机数字。基本不会重复。

开发遇到问题:

1:�0�2 IAT HOOK 和 EAT HOOK的选择 (通过IDA和OD 分析发现直接调用,那么就是IAT HOOK)

2:没有现存IAT HOOK代码 ,GOOGLE�0�2 复制代码

3:CreateProcess 直接启动微信,IAT HOOK 发现没有任何效果(加日志,发现微信没有调用我的hook的CreateMutexW , 郁闷好久,思考HOOK时机不对,因为微信启动就会就调用CreateMutexW, 我启动再hook 没有保证在微信调用之前hook,于是CreateProcess 传入参数 直接挂起进程)

4:采用CreateProcess ,发现IAT HOOK挂起失败,快要奔溃了。 最后分析出2个问题,一个IAT HOOK的代码有问题,他hook的模块是GetModuleHandle(0); 他修改是主模块,不是自己想要的模块。于是改成GetModuleHandle(L”WeChatWin”); 感觉就要胜利,点击启动注入,妈蛋还是失败,感觉彻底绝望了。

5:想了好久不明白为什么?然后静下心来,仔细分析我挂起进程应该是WeChatWin都没有加载,所以我只能自己手动LoadLibrary(L”WeChatWin”); 然后hook就可以了。

结论:

虽然遇到很多问题,但只要思路是对的,总能找到合适解决方案。(这个方案我排除了窗口钩子,因为钩子导致每个窗口进程都加载DLL,虽然谈不上多么消耗性能,但感觉很怪,可能导致被别的程序提交上传到云端进行分析。。。)。

标签: 暂无
最后更新:25 3 月, 2020

小鱼儿

爱研究技术,爱玩LOL

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 小鱼塘. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备18005349号