• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
DarkBright
博客园    首页    新随笔    联系   管理    订阅  订阅

单字节修改实现PC版微信多开

0x00 实现原理:

通过互斥体进行判断是实现防多开最传统的方式之一

定位到关键判断的位置,并且修改程序跳转逻辑就可以实现多开

下面先介绍具体操作,然后介绍分析过程

0x01 具体操作:

找到微信的安装路径,在目录下找到 WeChatWin.dll :

9

使用二进制工具打开该文件,并且定位到下图中的位置,然后修改成图中的数据(只需要修改图中箭头所指的一个字节):

7

修改完成之后记得保存,然后验证:

8

0x02 分析过程:

先正常启动一个微信,然后通过调试器启动一个微信,调试器首次断下之后在命令栏使用下面的命令设置断点:

bp  Kernel32.CreateMutexA

bp  Kernel32.CreateMutexW

1

查看断点是否设置成功:

2

确认断点设置成功之后全速执行程序,调试器再次断下:

3

可以发现命中了 CreateMutexW 的断点,同时可以在堆栈窗口看到该函数的参数

单步调试跟踪到调用的位置:

4

到这里代码的逻辑结构就比较清晰了,修改上图2个箭头所指向的跳转指令的任意一处即可:

5

这里将第一处位置的 je 指令修改为 jmp 指令,硬编码从 74 变成了 EB

同时记住这里的地址,在调试器中查看进程的模块列表:

6

通过地址范围,可以确定该代码位于 WeChatWin.dll 这个文件中

可以在这段代码的附近选择一段可靠的硬编码作为 特征码

使用二进制工具打开 WeChatWin.dll 文件并通过特征码定位目标位置进行修改

文件具体修改过程参考前面 0x01 中的内容

posted @ 2019-05-16 22:39  DarkBright  阅读(1418)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3