我是这样来做破解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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Computers and computer networks are one of the most incredible inventions of the 20th century, having an ever-expanding role in our daily lives by enabling complex human activities in areas such as entertainment, education, and commerce. One of the most challenging problems in computer science for the 21st century is to improve the design of distributed systems where computing devices have to work together as a team to achieve common goals. In this book, I have tried to gently introduce the general reader to some of the most fundamental issues and classical results of computer science underlying the design of algorithms for distributed systems, so that the reader can get a feel of the nature of this exciting and fascinating field called distributed computing. The book will appeal to the educated layperson and requires no computer-related background. I strongly suspect that also most computer-knowledgeable readers will be able to learn something new. Gadi Taubenfeld is a professor and past dean of the School of Computer Science at the Interdisciplinary Center in Herzliya, Israel. He is an established authority in the area of concurrent and distributed computing and has published widely in leading journals and conferences. He authored the book Synchronization Algorithms and Concurrent Programming, published by Pearson Education. His primary research interests are in concurrent and distributed computing. Gadi was the head of the computer science division at Israel's Open University; member of technical staff at AT&T Bell Laboratories; consultant to AT&T Labs–Research; and a research scientist and lecturer at Yale University. Gadi served as the program committee chair of PODC 2013 and DISC 2008 and holds a Ph.D. in Computer Science from the Technion–Israel Institute of Technology.
ChatGLM2-6B是一个基于GLM的模型,经过了1.4T中英标识符的预训练与人类偏好对齐训练。根据评测结果显示,相比于初代模型,ChatGLM2-6B在MMLU(+23%)、CEval(+33%)、GSM8K(+571%)、BBH(+60%)等数据集上的性能有了显著提升,具有较强的竞争力。\[1\] 然而,ChatGLM2-6B在多轮对话能力方面还有一些不足。它的上下文理解能力相对不够充分,在面对长答案生成和多轮对话的场景时可能会出现上下文丢失和理解错误的情况。为了解决这个问题,可以考虑使用外挂知识库的形式,例如将ChatGLM2-6B与langchain结合,实现本地知识库的链接,以提升多轮对话的效果。\[3\] 总体而言,ChatGLM2-6B在性能方面有了显著提升,但在多轮对话能力上还有改进的空间。 #### 引用[.reference_title] - *1* *3* [ChatGLM2-6B、ChatGLM-6B 模型介绍及训练自己数据集实战](https://blog.csdn.net/dream_home8407/article/details/130099656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [macbook安装chatglm2-6b](https://blog.csdn.net/qq_26819733/article/details/131563492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值