当前位置: 首页 > article >正文

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

/**
 * @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

http://www.lryc.cn/news/2415360.html

相关文章:

  • IBM服务器安装与HBA卡的驱动问题
  • vmware6.5.2序列号_打击恶意使用社交账号2(环境异常的检测)
  • html span标签详解
  • 基于QJM的HDFS HA总结
  • Django(9)|基于reseful-api风格的Django-framework
  • 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...
  • 升级sp3后出现:一个问题阻止windows正确检测此机器许可证--解决方案
  • android开发之GPS定位详解
  • “黑产“识别算法(社区检测,相似度,关联关系)
  • 如何看待首家搜索引擎导航类网站搜霸天下的出现
  • IP地址、端口号等网络中的一些基本概念
  • 通信系统概论---同步原理
  • 推荐三款格式转换软件轻松转换3gp格式
  • Apache ManifoldCF 与 Elasticsearch 5.5 集成项目教程
  • Web应用项目开发初学者知识指南
  • 163邮箱如何群发邮件
  • GOOGLE版的金山
  • 中级软件设计师——高频真题及解析(一)
  • 2013NET笔试题及答案
  • 网页开发基础 :JavaScript
  • 新世纪福音战士剧场版(EVA破)蓝光BD高清下载
  • 推荐一个网页聊天工具
  • 11.17 域名解析DNS---------高速缓存DNS,权威DNS的正反向解析,轮询:域名转换,,邮箱解析,内部解析和外部解析
  • 图解Linux下如何搭建C#开发环境
  • There is a problem starting qcCoInstaller.dll The specified module could not be found
  • web前端程序员必上的11个优秀的中文前端设计网站
  • 《谍影重重4》虎头蛇尾
  • 盘点全国报纸购物平台
  • HTML颜色代码表
  • Ubuntu Skills