PC微信多开源代码-消息钩子+ZwQuerySystemInformation

目录

  1. 效果图
  2. 分析借鉴别人的文章--->https://www.52pojie.cn/thread-608108-1-1.html
  3. 知识点分享
  4. 其他实现多开的方式
  5. 源代码下载
  6. 后续


    点击开启,正常打开微信就可以无限多开,通过消息钩子,自动注入微信。 

2:分析思路

虽然我看的别人思路,但看时候其实自己也想了一些。

  • windows单例实现方法,CreateEvent CreateMutex FindWindow(不是很好,有可能出现多个,鼠标点的快的话) , 主流就这几个吧。作为单例标准:我认为是跟进程有关资源,当进程结束掉,就会释放资源。这是非常关键的,一旦不具备这样条件,程序异常退出,用户是打不开程序,因为资源还占用。所以写文件或者注册表这种方式是不合适的。根据这个条件那么命名管道,Socket Bind 理论上也可以作为单例方法,只是大家用的不多而已. 我们顺推就可以分析这些作为句柄。试着用工具ProcessXp关闭是否能多开
  • 上面方式算是黑盒,所以不一定能百分百分析,可以通过OD 给ExitProcess 通过堆栈分析到他们的单例代码?这样子无能用什么方法,都能分析出来。(前期需要有这个分析能力和经验)(IDA静态分析也可以)

 

3: 知识点

  • 前提选择关闭句柄的方式(引用为0情况下就会释放),开始我 注入 微信 CreateMutex 打开然后CloseHandle 能关闭句柄 ,发现都不可以,因为用CreateMutex引用计算就加1了,所以CloseHandle 也没有意义。
  • 我们要找到一个能拿到句柄,又不会引用计算增加,于是就用找到ZwQuerySystemInformation 函数,这个微软一个没有公开的函数,我把网上封装了一下,修改部分代码能够在我的win10 64系统上跑起来。貌似这个这个函数返回的句柄值,不知道这个跟原始句柄值是不是一样的,那么直接CloseHandle() 一下是不是可以(和微信同一个进程情况下,我没有测试)
  • 关闭句柄,用的DuplicateHandle  DUPLICATE_CLOSE_SOURCE 来关闭句柄。

4: 其他方式多开

  • IDA 找到合适代码,直接修改那端代码(可能会增加封号风险,因为改了文件,如果有检验就GG)
  • HOOK CreateMutex ,返回NULL 或者修改名字(每次随机生成),这种时机要对,必须在微信CreateMutex之前处理。
  • 其他待定

5: 自己源代码地址:https://github.com/xvsdf100/PCWeChatMore

执行程序:执行程序下载

 

6: 后续

有时间把多开合并到一个窗口里面再加上快速发言,然后加一个按钮升级来推广PC HOOK 微信机器人是不是很爽(虽然只开发了一半就没有写了(实现发送和接收和群的功能))

 

 

 

你可能感兴趣的:(微信)