禁止运行某个程序,以QQ游戏为例------QQ游戏杀手(VC6.0)

原创 2007年10月15日 23:30:00

昨天晚上花了3个小时,写了一个程序 --- QQ游戏杀手~~ 呵呵 有点像病毒~ 

起因是因为近一段时间女朋友太能玩游戏了~~ 天天晚上占用我的电脑2~3个小时玩QQ游戏,我倒是不反对她玩游戏但是天天玩就不好了吗?所以约法3张,只需周末玩,同样为了防止偷食,呵呵,就开发了这个程序~。事先声明,我对QQ没有恶意哦~

这个小程序因该应该具有的几个功能

1。查找进程

2。杀掉进程

3。隐藏自身

以上需要的资料我都是网上找的,有些地方还没有详细地分析~所以今天坐在这里整理分析~ 提高一下;

1。查找进程,我用的是下面 

// FindProcess
// 这个函数唯一的参数是你指定的进程名,如:你的目标进程
// 是 "Notepad.exe",返回值是该进程的ID,失败返回0
//
DWORD CQGkillerDlg::FindProcess(char *strProcessName)
...{
    DWORD aProcesses[
1024], cbNeeded, cbMNeeded;
    HMODULE hMods[
1024];
    HANDLE hProcess;
    
char szProcessName[MAX_PATH];
    
    
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )  return 0;
    
for(int i=0; i< (int) (cbNeeded / sizeof(DWORD)); i++)
    
...{
        
//_tprintf(_T("%d "), aProcesses[i]);
        hProcess = OpenProcess(  PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]);
        EnumProcessModules(hProcess, hMods, 
sizeof(hMods), &cbMNeeded);
        GetModuleFileNameEx( hProcess, hMods[
0], szProcessName,sizeof(szProcessName));
        
        
if(strstr(szProcessName, strProcessName))
        
...{
            
//_tprintf(_T("%s;"), szProcessName);
            return(aProcesses[i]);
        }

        
//_tprintf(_T(" "));
    }

    
return 0;
}

2。杀掉进程用下面的函数

VOID CQGkillerDlg::KillProcess()
...{
    
/**//*
    // When the all operation fail this function terminate the "winlogon" Process for force exit the system.
    HANDLE hYourTargetProcess = OpenProcess(PROCESS_QUERY_INFORMATION |   // Required by Alpha
        PROCESS_CREATE_THREAD |   // For CreateRemoteThread
        PROCESS_VM_OPERATION |   // For VirtualAllocEx/VirtualFreeEx
        PROCESS_VM_WRITE,             // For WriteProcessMemory
        FALSE, FindProcess("QQGame.exe"));
        
*/

    HANDLE hYourTargetProcess 
= OpenProcess(PROCESS_ALL_ACCESS,   FALSE,   FindProcess("QQGame.exe"));   
    
    
if(hYourTargetProcess == NULL)
    
...{
        
return;
    }

    GetDebugPriv();//提高权限(xp/nt)
    TerminateProcess(hYourTargetProcess,
0);
    
//ShowWindow(SW_SHOW);
    MessageBox("本电脑没有苯苯允许禁止运行QQ游戏-.-","小猪监控---明俊制作",MB_ICONEXCLAMATION|MB_OK); // 发现QQ游戏时提示
    
//ShowWindow(SW_HIDE);
    
//SetWindowPos(&CWnd::wndNoTopMost,0,0,100,100,SWP_SHOWWINDOW);
    
    
return;
}

杀掉进程,怕权限不够,   用了 GetDebugPriv();//提高权限(xp/nt)

BOOL CQGkillerDlg::GetDebugPriv()
...{
    HANDLE hToken;
    LUID sedebugnameValue;
    TOKEN_PRIVILEGES tkp;
    
    
if ( ! OpenProcessToken( GetCurrentProcess(),
        TOKEN_ADJUST_PRIVILEGES 
| TOKEN_QUERY, &hToken ) )
    
...{
        
return FALSE;
    }

    
    
    
if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )
    
...{
        CloseHandle( hToken );
        
return FALSE;
    }

    
    tkp.PrivilegeCount 
= 1;
    tkp.Privileges[
0].Luid = sedebugnameValue;
    tkp.Privileges[
0].Attributes = SE_PRIVILEGE_ENABLED;
    
    
if (!AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
    
...{
        CloseHandle( hToken );
        
return FALSE;
    }

    
    
return TRUE;
    
    
}

在我的电脑上好像又没有都一样,可能自己是以administrator运行的原因~ 其他电脑没有测试过。到这里基本上就可以杀掉QQ游戏进程了(上边的程序编译需要PSAPI.HPSAPI.lib文件在网上搜吧~~)

设定一个定时器,10秒一次监视进程发现QQ游戏进程就关闭它~~呵呵,基本上功能部分就结束了~

但是,我们的程序也要保护自己啊~

所以我就对话框程序进行了小小的改动,app框架初始化的时候dlg.DoModal();改成Create(IDD_QGKILLER_DIALOG);方式,以便用 ShowWindow(SW_HIDE);ShowWindow(SW_SHOW)隐藏和现实程序

当然我是不会让我的程序显示出来的,只是隐藏而已~

/**//*注释掉的部]分
    CQGkillerDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with Cancel
    }

    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;
    
*/

//添加的部分
 CQGkillerDlg *dlg = new CQGkillerDlg;
 m_pMainWnd 
= dlg;
 
return dlg->Create(IDD_QGKILLER_DIALOG);

基本到这里就需要的主要代理都在这里了~ 其他的都是基本的东西~慢慢琢磨好了~

我也是一个新的vc++MFC的学习者,之前是VB/DELPHI/VC.net/C#等,呵呵什么都学了一点,但是老是没有进步,这次为了能开发外挂研究了VC++以后才对电脑的知识开始整合起来~这个简单的程序我也找了好多代码,比较后抄袭完成的,但是基本上能使用代码了,但是为什么这么用,呵呵,以后慢慢研究吧~ 有点看不明白~

进程那里顺序是得到进程进程ID ,然后根据进程ID得到进程,然后,关掉进程。涉及查找指定进程,进程关闭,隐藏对话框,时钟控制,弹出对话框等知识点~呵呵

程序的不足点~ 这种方法只能QQ游戏的原型,不能杀掉变形~~如果我把“QQ游戏“改成“QQ 游戏2“ 就没有把法杀掉了~

还有程序的自我保护,没有做到进程的隐藏,防杀

启动也是依靠,启动文件夹,呵呵(对于女朋友9流的电脑使用者呵呵,还是很好用的)

下一个版本,

做到注册表启动,呵呵不知道说得对不对,,隐藏进程,通过Hook监视进程,KIllQQ~~

还有就是防止被一般高手杀掉~~呵呵(1.0版本总结结束)

腾讯QQ是用什么语言开发的

腾讯QQ的部分COM组件用的VC6,用exescope看其中几个dll的依赖,依赖于MFC42.dll,MSVCRT.dll,MSVCP60.dll都说明是VC6写的。还有一部分用的VS2005,包括...
  • chen_fly2011
  • chen_fly2011
  • 2017-02-06 18:08:47
  • 1106

QQ群发/QQ群发器/程序源代码/VS2010/VS2012/VC/MFC

上篇写了QQ登录器。 这次学习豪迪,研究QQ群发器怎么写。 豪迪的群发器是完全模拟鼠标,键盘动作,只是利用了程序提高了效利。 所以他这种方式也是最不容易被鹅厂屏蔽QQ的。 并且这本身也合理,只是利用...
  • laiyangsheng
  • laiyangsheng
  • 2016-09-12 09:25:22
  • 1740

禁止运行某个程序,以QQ游戏为例------QQ游戏杀手(VC6.0)

昨天晚上花了3个小时,写了一个程序 --- QQ游戏杀手~~ 呵呵 有点像病毒~ 起因是因为近一段时间女朋友太能玩游戏了~~ 天天晚上占用我的电脑2~3个小时玩QQ游戏,我倒是不反对她玩游戏但是天天玩...
  • hannsoft
  • hannsoft
  • 2007-10-15 23:30:00
  • 3801

C# 开发Windows服务 附简单实例实现禁止QQ运行

  本实例主要实现下面三个基本功能 1、C#开发windows服务 2、禁止QQ等程序运行 3、为windows服务创建自动安装程序 下面针对这三个基本功能进行实现 一、C...
  • andyliulin
  • andyliulin
  • 2016-07-25 21:59:16
  • 616

用组策略禁止QQ等软件运行

利用组策略禁止QQ等软件运行  1、开始/运行/gpedit.msc,打开“组策略”编辑器  2、在左边“本地计算机策略”找到“用户配置/管理模板/系统”  3、在右边“策略”中选择“不要运行指定的w...
  • zwk_9
  • zwk_9
  • 2010-07-16 14:38:00
  • 2866

ros 如何禁止qq

qq的服务器很多,我自己收集了300多个
  • zhangxiangzhong
  • zhangxiangzhong
  • 2014-07-13 21:03:50
  • 1551

公司局域网如何<em>禁止</em>玩<em>游戏</em>、屏蔽网页<em>游戏</em>?

公司局域网中,白领上班族经常上班玩游戏,例如<em>qq游戏</em>和各种网页游戏,如何<em>禁止</em>电脑玩游戏呢?本文提供了一种非常有效和直接的方法,适合国内各行业企业使用。
  • 2018年04月08日 00:00

局域网限速——天易成网管软件完美破解版奉上 <em>禁止</em>网络<em>游戏</em>

其新版本增加了屏幕监控(桌面监控),<em>禁止</em>软件<em>运行</em>,聊天内容监控(MSN聊天内容、...封堵QQ,MSN,阿里旺旺等聊天软件监控网络游戏:封堵,<em>QQ游戏</em>,魔兽世界等网络游戏...
  • 2018年04月10日 00:00

QQ游戏,打开XX客户端失败,如果由于此问题而不能进行游戏,请尝试重新安装该游戏

 突然QQ游戏所有游戏都不打开,进入房间坐下时提示"打开中国象棋客户端失败,如果由于此问题而不能进行游戏,请尝试重新安装该游戏"之类的.百度了一下,发现很多人也出现过这样的问题.原来是一次清理电脑时,...
  • zaghost
  • zaghost
  • 2007-01-04 00:35:00
  • 10218

在Linux下玩QQ游戏

    最近对四国军旗很有兴趣,一天突然想到能不能在Linux下用wine运行QQ游戏大厅,然后进入游戏。所以把windows版的QQGame目录整个放到Linux普通用户的目录中(root是不能运行...
  • dingx
  • dingx
  • 2005-04-18 20:36:00
  • 6679
收藏助手
不良信息举报
您举报文章:禁止运行某个程序,以QQ游戏为例------QQ游戏杀手(VC6.0)
举报原因:
原因补充:

(最多只允许输入30个字)