我是这样来做破解qq,做QQ外挂的 【-】

2023-11-15

/**
 * @file 2005beta2-IQQData_IQQCore_IDynamicData.txt
 *
 * @brief 2005beta2-IQQData_IQQCore_IDynamicData.txt,v1.0 2005/09/08 23:58:18 sunwang
 *
 * QQ的核心接口分析 IQQData IQQCore IDynamicData,主要集中在BasicCtrlDll.dll QQHelperDll.dll,找几个引出函数分析分析
 * 如 CreateQQData IsFriendOnline GetFriendQQVer etc... 这些接口除了00 04 08是IUnknown以外,其他只有分析代码了
 * void __cdecl CreateQQData(struct IQQData * *)
 * int __cdecl IsFriendOnline(struct IQQCore *,unsigned long) [*]
 * int __cdecl GetFriendQQData(struct IQQCore *,unsigned long,struct IQQData * *) [*]
 * int __cdecl GetCurrentUin(struct IQQCore *,unsigned long *)
 * void __cdecl GetCurrentUserData(struct IQQCore *,struct IQQData * *)
 * int __cdecl GetFriendStat(struct IQQCore *,unsigned long)
 * long __cdecl GetQQDataBuf(struct IQQData *,char const *,class CString &) [*]  //<-------刚开始不知道有这个函数,好累
 * long __cdecl GetQQDataStr(struct IQQData *,char const *,class CString &) [*]  //<-------刚开始不知道有这个函数,好累
 *
 * 两个问题:  其他的都可以通过上面的函数搞定!
 * 1.IQQCore* 哪里得到?
 *   1.1 找一个不接口上不需要IQQCore*的函数分析,起内部肯定有引用,看这个引用在哪里,就可以得到了。嘿嘿。
 *   int __cdecl IsFriend3GUser(unsigned long)  //<--------分析太苦难了,自己找苦头
 *   1.2 hook一个带IQQCore*为参数的函数,就可以得到了,如
 *   int __cdecl InitQQShow(struct IQQCore *) [*]
 *   1.3 得到IQQCore*指针后,根据需要,拼凑vtbl就可以了
 *
 * 2.FriendUID 哪里得到? unsigned long 都是uin。tnnd。难点! 和 hook CQQCtrlBarWndEx wndproc一样困难。
 *   2.1 总会有函数初始化这个东西,并放在哪里的,要找准函数分析了
 *       2.1.1 CQQBarCtrlWndEx,只能依赖这个对象的偏移了,它的某个偏移肯定有uid
 *       2.1.2 CQQAllInOneDlg,只能依赖这个对象的偏移了,它的某个偏移肯定有uid。前面分析过CQQAllInStatusBar,上面有拼凑nickname(uid):xxx
 *             的代码,可能有用。void __thiscall CAllInOneStatusBar::GenStrShow(void),便宜340h就是!!!。 [*]
 *             第一次WM_CREATE时候,得到偏移,此时肯定没有uid,以后得到消息就重新取,并增加自定义消息发给窗口来刷新显示了
 *   2.2 hook函数拦截参数? 呵呵,不合适。我们要在对话框窗口出来和在CQQBarCtrlWndEx出来的时候,就能得到friend uin,呵呵
 *
 * @author sunwang<sunwangme@hotmail.com>
 */
 
/* BasicCtrlDll.dll
.text:10001C05 ; Exported entry  42. ?CreateQQData@@YAXPAPAUIQQData@@@Z
.text:10001C05
.text:10001C05 ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
.text:10001C05
.text:10001C05
.text:10001C05 ; void __cdecl CreateQQData(struct IQQData * *)
.text:10001C05                 public ?CreateQQData@@YAXPAPAUIQQData@@@Z
.text:10001C05 ?CreateQQData@@YAXPAPAUIQQData@@@Z proc near
.text:10001C05
.text:10001C05 arg_0           = dword ptr  8
.text:10001C05
.text:10001C05                 push    edi
.text:10001C06                 mov     edi, [esp+arg_0]
.text:10001C0A                 test    edi, edi
.text:10001C0C                 jz      short loc_10001C33
.text:10001C0E                 push    esi
.text:10001C0F                 mov     ecx, offset off_100229E8
.text:10001C14                 call    ?CreateObject@CRuntimeClass@@QAEPAVCObject@@XZ ; CRuntimeClass::CreateObject(void)
.text:10001C19                 mov     esi, eax
.text:10001C1B                 test    esi, esi
.text:10001C1D                 jnz     short loc_10001C24
.text:10001C1F                 call    ?AfxThrowMemoryException@@YGXXZ ; AfxThrowMemoryException(void)
.text:10001C24
.text:10001C24 loc_10001C24:                           ; CODE XREF: CreateQQData(IQQData * *)+18j
.text:10001C24                 push    offset clsid_IQQData
.text:10001C29                 mov     ecx, esi
.text:10001C2B                 call    ?GetInterface@CCmdTarget@@QAEPAUIUnknown@@PBX@Z ; CCmdTarget::GetInterface(void const *)
.text:10001C30                 mov     [edi], eax      ; *(void**)=IQQData*
.text:10001C32                 pop     esi
.text:10001C33
.text:10001C33 loc_10001C33:                           ; CODE XREF: CreateQQData(IQQData * *)+7j
.text:10001C33                 pop     edi
.text:10001C34                 retn
.text:10001C34 ?CreateQQData@@YAXPAPAUIQQData@@@Z endp
*/

/* BasicCtrlDll.dll
.rdata:100229C8 clsid_IQQData   db  1Eh                 ; DATA XREF: CreateQQData(IQQData * *):loc_10001C24o
.rdata:100229C8                                         ; GetFriendNetwork(IQQCore *,ulong,int &,ulong &,ulong &,int &)+9Ao ...
.rdata:100229C9                 db  3Ah ; :
.rdata:100229CA                 db  86h ; ?
.rdata:100229CB                 db 0BAh ; ?

.rdata:100229CC                 db  79h ; y
.rdata:100229CD                 db 0C9h ; ?

.rdata:100229CE                 db  8Ah ; ?
.rdata:100229CF                 db  49h ; I

.rdata:100229D0                 db  97h ; ?
.rdata:100229D1                 db  5Ch ; /
.rdata:100229D2                 db 0C5h ; ?
.rdata:100229D3                 db    0
.rdata:100229D4                 db  1Ch
.rdata:100229D5                 db  4Fh ; O
.rdata:100229D6                 db  31h ; 1
.rdata:100

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我是这样来做破解qq,做QQ外挂的 【-】 的相关文章

  • 列出 C 常量/宏

    有没有办法使GNU C 预处理器 cpp 或其他一些工具 列出给定点上的所有可用宏及其值C file 我正在寻找特定于系统的宏 同时移植一个已经精通 UNIX 的程序并加载一堆稀疏的 UNIX 系统文件 只是想知道是否有比寻找定义更简单的方
  • 将列表元素分组到字典中

    我有一个包含 8 个元素的列表 ConfigFile ControllerList 该列表的类型为 List
  • nUnit Assert.That委托并发问题

    我的代码中遇到了一些暂时的死锁 无法解决它 简单的代码 我无法创建一个简单的调用链来重现代码InvokeChangeEvent Test public async void Test sut InvokeChangeEvent foo fi
  • ServiceStack 验证并不总是触发

    因此 我尝试使用 RavenDB 和 ServiceStack 构建端到端集成测试套件 但遇到了一个非常奇怪的问题 即验证无法对某些请求运行 这真的很奇怪 我不确定我做错了什么 我正在使用 NCrunch 有时测试通过 有时失败 希望这是一
  • C++11 类型推导与 const char *

    In GotW 94 http herbsutter com 2013 08 12 gotw 94 solution aaa style almost always auto Herb Sutter 对 经典 C 声明进行了区分 const
  • 读取进程的进程内存不会返回所有内容

    我正在尝试扫描第三方应用程序的内存 我已经查到地址了 现在是在0x0643FB78 问题是 从那以后我就再也爬不上去LPMODULEENTRY32 gt modBaseAddr is 0x00400000 and LPMODULEENTRY
  • flock():在没有竞争条件的情况下删除锁定的文件?

    我使用flock 来实现进程间命名互斥 即某个进程可以决定锁定 some name 这是通过锁定临时目录中名为 some name 的文件来实现的 lockfile tmp some name lock fd open lockfile O
  • 未初始化成员的警告在 C++11 上消失

    我编译这个简单的程序 include
  • 使用 SFML 绘制文本时出现段错误

    我做了一个Button应该绘制一些顶点和字符串的类RenderWindow 这是删除了不相关部分的代码 here http pastebin com 4a5RuS2y是完整的代码 namespace game class Button pu
  • 如何吞咽……有具体原因的异常

    在这个方法中 public static void Detach try using var master new DataContext Data Source LocalDB MSSQLLocalDB Initial Catalog m
  • 尝试从 C# 调用简单的 Python 脚本,但由于“无法获取 Python 编解码器”致命错误而失败。我怎样才能解决这个问题?

    相关的C 代码片段如下 static string CallPython string fileName Process p new Process p StartInfo new ProcessStartInfo C Python310
  • 只允许在 datagridview 单元格中键入一些字符

    有没有办法只将某些字符添加到 datagridview 单元格中 像 1234567890 据我所知 您可以使用两种方法来实现此目的 第一个 我认为最好的 是使用 CellValidating 事件DataGridView并检查输入的文本是
  • 如何取消 NetworkStream.ReadAsync 而不关闭流

    我正在尝试使用 NetworkStream ReadAsync 读取数据 但我找不到如何取消调用后的 ReadAsync 作为背景 NetworkStream 由连接的 BluetoothClient 对象 来自 32Feet NET 蓝牙
  • 使用 boost 几何检查两条线是否有交点

    是否可以使用 boost geometry 检查两条线段 每条线段由二维中的两个点给出 是否彼此相交 如果可能的话 boost geometry 是否还允许检查特殊情况 例如另一条线上只有一个点 数字上 或者两条线相等 如果你具体谈论Boo
  • List.Except 不起作用

    我尝试减去 2 个列表 如下代码所示 assignUsers已获得 3 条记录assignedUsers有 2 行 后Except方法我仍然得到 3 行 尽管我应该得到 1 条记录 因为 2 行assignedUsers类似于assignU
  • HTTP 错误 500.35 - ANCM 同一进程中的多个进程内应用程序 ASP.NET Core 3

    从今天早上开始 没有对项目代码进行任何更改 一个非常简单的 Web API 一个控制器和 3 个方法 使用 Swagger 它不再启动 我收到错误 HTTP 错误 500 35 ANCM 同一进程中有多个进程内应用程序 事件查看器报告最无用
  • C# StreamReader 使用分隔符保存到数组

    我有一个文本文件 其中包含制表符分隔的数据 我在 C 应用程序中需要的是从文本文件中读取一行并将它们保存到一个数组中 在每个位置将它们分开 t 然后我对下一行做同样的事情 My code StreamReader sr new Stream
  • 实现“计时器”的最佳方法是什么? [复制]

    这个问题在这里已经有答案了 实现计时器的最佳方法是什么 代码示例会很棒 对于这个问题 最佳 被定义为最可靠 失火次数最少 和最精确 如果我指定 15 秒的间隔 我希望每 15 秒调用一次目标方法 而不是每 10 20 秒调用一次 另一方面
  • 提高大型结构列表的二进制序列化性能

    我有一个以 3 个整数保存 3d 坐标的结构 在测试中 我将 100 万个随机点放在一起 List 然后对内存流使用二进制序列化 内存流大小约为 21 MB 这似乎非常低效 因为 1000000 点 3 坐标 4 字节应该至少为 11MB
  • 通过网络共享的 SQL CE

    我之前见过这个问题 但找不到关于什么是可能 不可能以及什么解决方法可能可用的明确解释 我有一个现有的 C 应用程序 它使用 SQL CE 来存储本地信息 该数据库只能由单个应用程序访问 并存储在用户的 appdata 文件夹中 某些环境将

随机推荐

  • 2-2. 然后是几点(15)

    有时候人们用四位数字表示一个时间 比如1106表示11点零6分 现在 你的程序要根据起始时间和流逝的时间计算出终止时间 读入两个数字 第一个数字以这样的四位数字表示当前时间 第二个数字表示分钟数 计算当前时间经过那么多分钟后是几点 结果也表
  • java中异常总结-值得一看

    本文要点 1 Throwable把错误进一步划分为 java lang Exception 和 java lang Error java lang Error 用来处理系统错误 2 所有继承自RuntimeException的异常都被称为非
  • vue3+pinia的使用,刷新后不丢数据

    前言 好用的状态管理器 vue3中出来的pinia 相比较vuex来说 更加轻便 使用也更方便 官方文档 点我 github地址 点我 pinia与vuex相比较优点 pinia 是轻量级状态管理工具 大小只有1KB pinia 模块化设计
  • 深入理解Spring的事务传播行为

    前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为 事务传播行为是Spring框架独有的事务增强特性 它不属于的事务实际提供方数据库行为 这是Spring为我们提供的强大的工具箱 使用事务传播行
  • JAVA练习(3)

    模拟双色球生成案例 需求 体彩中有一项是双色球 要求在1 33号共33个红色球里选出6个 1 16号共16个蓝色球中选出一个作为中奖号码 请实现这个需求 分析 1 定义两个方法来输出红色球和蓝色球 2 需要从33个红色球中选出6个 所以不能
  • element ui 弹出组件的遮罩层以及多层遮罩解决办法

    做项目中遇到几次弹出框遮罩层的问题 有嵌套的 弹出框 还有单页面中tabs标签页的弹出框 今天就说一下tabs中的弹出框遮罩层的问题 这个页面有五个tabs页签 每一个都有弹出框组件 也就是说每一个都有遮罩层 很有趣的问题 我在第五个tab
  • 神经网络学习小记录71——Tensorflow2 使用Google Colab进行深度学习

    神经网络学习小记录71 Tensorflow2 使用Google Colab进行深度学习 注意事项 学习前言 什么是Google Colab Colab官网 利用Colab进行训练 一 数据集与预训练权重的上传 1 数据集的上传 2 预训练
  • 相机的运动

    using UnityEngine using System Collections using System Collections Generic using DG Tweening using UnityEngine EventSys
  • 数字基带信号(单极性归零、单极性不归零、双极性归零和双极性不归零)波形仿真设计(matlab)

    一 实验目的 了解数字基带信号 单极性归零 单极性不归零 双极性归零和双极性不归零 波形的特点 掌握利用matlab产生数字基带信号的方法 二 实验任务 产生1000个随机信号序列 分别用单极性归零 单极性不归零 双极性归零和双极性不归零码
  • javascript中关键字in以及循环for...in的使用和注意事项

    写这篇文章 是因为在学习prototypejs库中方法Object extend 和Class create 看这篇指导 tutorial on classes and inheritance 的时候 对于什么能够继承 什么不能继承产生了一
  • 在ubuntu下搭建Qt Creator的arm交叉编译环境

    Qt Creator是跨平台的 Qt IDE Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境 IDE 此 IDE 能够跨平台运行 支持的系统包括 Linux 32 位及 64 位 Mac OS X 以
  • Python2.7 安装教程

    Python安装过程 1 下载安装程序 我们安装Python的一个重要目的是为了用IAR编译CC2640 OAD文件时执行合并文件的脚本 所以我们一起来看看Python2 7版本的安装方法 该版本安装程序的下载连接如下 https www
  • Conda/pip常用命令

    目录 1 管理与查看 1 1 查看conda版本 1 2 查看cuda driver的版本 2 虚拟环境 2 1 查看虚拟环境 2 2 创建虚拟环境 2 3 激活虚拟环境 2 4 删除虚拟环境 2 5 导出环境 导入环境 3 Package
  • docker上安装nacos

    文章目录 一 docker安装nacos简单版 1 拉取镜像 2 挂载目录 用于映射到容器 目录按自己的情况创建 3 mysql新建nacos config的数据库 并执行脚本 sql脚本地址如下 4 修改配置文件custom proper
  • 这5个很“哇塞”的不收费Python学习网站,说不定很适合现在的你

    作为一个现时代的程序员初学者 除了看书之外 互联网的学习手段也是断不能少的 给大家推荐几个比收费网站还要 香 的免费学习Python的网站 虽说不上全方位的满足你的需求 但是大部分也都能 1 菜鸟教程 http www runoob com
  • 怎么查看网页ajax发送的数据,如何查看我使用JQuery AJAX发送的SOAP请求数据

    userpass
  • C语言_输出字符串和获取字符串

    输出字符串和获取字符串 01 输出字符串 使用puts函数来输出字符串 使用printf函数来输出字符串 通过puts函数和printf函数都能够实现字符串输出 02 获取字符串 使用scanf函数来获取字符串 使用gets 函数来获取字符
  • Node.js Express框架

    node js express框架知识点详细解析 如下 express框架特性 可以设置中间件来响应 HTTP 请求 定义了路由表用于执行不同的 HTTP 请求动作 可以通过向模板传递参数来动态渲染 HTML 页面 安装 express 并
  • Data Matrix代码效率增强!条码组件TBarCode SDK最新版更新啦!

    TBarCode SDK一款多功能的条形码生成器和打印软件 适用于Microsoft Office用户和软件开发人员 您可以创建和打印所有用于工业和商业用途的条形码符号 使用TBarCode SDK 您可以使用条形码生成器软件 它已经在无数
  • 我是这样来做破解qq,做QQ外挂的 【-】

    file 2005beta2 IQQData IQQCore IDynamicData txt brief 2005beta2 IQQData IQQCore IDynamicData txt v1 0 2005 09 08 23 58 1