当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 一个黑客程序开发实例 -- IE终结者

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

VC++ 中的 一个黑客程序开发实例 -- IE终结者


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 63 ::
收藏到网摘: n/a

一个黑客程序开发实例 -- IE终结者
作者:f286

下载本文示例源代码

注:这个程序有一定的破坏性,请不要用于非法的目的!
代码运行效果图如下:


小弟最近看了VC知识库在线杂志第十二期中,有一篇《黑客攻击手段之偷梁换柱》突发灵感也想写一个黑客程序。经过了几天的搜集资料和试验终于写出了一个可以自动关闭IE和windows中自带游戏的小程序和大家分享,希望大家多提意见!

我在程序中采用了两种方法:

一种是采用了FindWindow(LPCTSTRlpszClassName,LPCTSTR lpszWindowName )这个函数来捕捉窗口的名称,但这种方法对于一些窗口标题变化的程序的效果就不好了。
另一种是CreateToolhelp32Snapshot( DWORD dwFlags, DWORD th32ProcessID)这个函数是对现有工作进程进行一次快照,这样根据进程的名称就可以很方便的找到它,但是它使用比第一种方法复杂,而且还要在头文件中加入#include <tlhelp32.h>这个库!下面我们来看一下程序的主要的函数。

程序一共有这么几个部分:
热键处理函数:OnHotKey(WPARAM wParam,LPARAM lParam)
隐藏程序自己的进程(在windows的任务管理器中):HidePorcess(void)
创建一个线程用于完成核心内容:CreateMyThread(void)
在程序结束时用于关闭线程:CloseMyThread(void)
列出当前系统中所有进程(如果找到要找的进程关闭它):FindMyProcess(CString m_strprocessname)
更改注册表使程序和系统一起启动运行:RegMySys(void)

具体函数内容如下:
头文件:IECloesDlg.h

// IECloesDlg.h : 头文件//#pragma once#include "statlink.h"// CIECloesDlg 对话框class CIECloesDlg : public CDialog{// 构造public:CIECloesDlg(CWnd* pParent = NULL); // 标准构造函数// 对话框数据enum { IDD = IDD_IECLOES_DIALOG };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedClose();afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);afx_msg void OnDestroy();afx_msg void OnBnClickedHide();// 开始运行时候隐藏对话框的变量bool m_bHide;// 是否关闭IEbool m_bIEClose;// 是否关闭window自带游戏bool m_bPlayclose;afx_msg void OnBnClickedCloseie();afx_msg void OnBnClickedCloseplay();//超链接的控件变量CStaticLink m_myemail;// 启动一个线程bool CreateMyThread(void);// 线程句柄HANDLE m_handle;//要找到窗口的句柄// IE的句柄HWND m_hie;// 扫雷游戏的句柄HWND m_hsaolei;//空当接龙游戏的句柄HWND m_hkongdangjielong;//蜘蛛纸牌游戏的句柄HWND m_hzhizhu;// 关闭线程void CloseMyThread(void);// 列出进程void FindMyProcess(CString m_strprocessname);// 更改注册表使程序和系统一起启动运行void RegMySys(void);// 在任务管理器中隐藏程序进程(这样才像个黑客)void HidePorcess(void);// 程序在硬盘中的路径CString m_strfilepath;};
实现文件:IECloesDlg.cpp
// IECloesDlg.cpp : 实现文件//#include "stdafx.h"#include "IECloes.h"#include "IECloesDlg.h"#include <tlhelp32.h>//CreateToolhelp32Snapshot这个函数需要加载的头文件#ifdef _DEBUG#define new DEBUG_NEW#endif//线程函数UINT ThreadFunc(LPVOID lParam){	CIECloesDlg *pdlg=(CIECloesDlg*)lParam;	while (1)	{	if (pdlg->m_bPlayclose)	{	pdlg->m_hkongdangjielong=FindWindow(NULL,"空当接龙");	pdlg->m_hsaolei=FindWindow(NULL,"扫雷");	pdlg->m_hzhizhu=FindWindow(NULL,"蜘蛛");	if (pdlg->m_hkongdangjielong)	{	Sleep(1000);	SendMessage(pdlg->m_hkongdangjielong,WM_DESTROY,0,0);	}	if (pdlg->m_hsaolei)	{	Sleep(1000);	SendMessage(pdlg->m_hsaolei,WM_DESTROY,0,0);	}	if (pdlg->m_hzhizhu)	{	Sleep(3000);	SendMessage(pdlg->m_hzhizhu,WM_DESTROY,0,0);	}	}	if (pdlg->m_bIEClose)	{	pdlg->FindMyProcess("IEXPLORE.EXE");	}	}	return 0;}// CIECloesDl