実行中のアプリケーションをタスクマネージャから消す方法

2295 ワード

質問]通常、CTRL+ATL+DELキーを押すと、実行中のプログラムやプロセスが表示されますが、CTRL+ATL+DELからプログラムを消す方法はありませんか?つまり、実行中のプログラムをCTRL+ATL+DELに非表示にします.[解答]答えは肯定的で、方法は以下の通りです:Win 32 API関数RegisterServiceProcessを使用しますが、このAPI関数のドキュメントは見つけにくいです.ここではアセンブリを使います.また、RegisterServiceProcess関数は2000以降ではサポートされていません.
#include 
#include 
HINSTANCE hLibrary;
void *regproc;

void CADInit(void);
void HideApp(void);
void ShowApp(void);
void CADClean(void);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
//int main()
{
	CADInit(); //   DLL          
	HideApp(); //    
	//ShowApp(); //    

	//       

	CADClean(); //   DLL
	return 0; //retrun 0           
}

void CADInit(void)
{
	//   kernel32.dll
	hLibrary = LoadLibrary(_T("kernel32.dll"));
	//    RegisterServiceProcess   
	regproc = GetProcAddress(hLibrary, "RegisterServiceProcess");
}

void HideApp(void)
{
	//       
	__asm
	{
		push 1
		push 0
		call regproc
	}
	return;
}

void ShowApp(void)
{
	//    
	__asm
	{
		push 0
			push 0
			call regproc
	}
	return;
}

void CADClean(void)
{
	//   DLL
	FreeLibrary(hLibrary);
	return;
}
、プロセスを隠す:タスクバーに自分を隠すのが最も基本的な方法です.FormのVisibleプロパティをFalse、ShowInTaskBarをFalseに設定すれば、プログラム実行時にタスクバーに表示されなくなります.タスクマネージャで非表示:プログラムを「システム・サービス」に設定すると、プロセスをサービス・プログラムとして登録し、タスク・リストに表示されない非公開のAPI呼び出しRegisterServiceProcess()関数が使用されます.ブラックホール・木馬の実装を参照します.http://it.rising.com.cn/antivirus/viruslore/virus165.htmhttp://www.it8g.com/YeJie/200809/1155.htm3、小知識:http://soft.yesky.com/security/118/3023618.shtml従来のリモート制御ソフトウェアでは、ファイアウォールとローカルエリアネットワークの内部を制御するリモートコンピュータにアクセスできないという難題を解決するリバウンドテクノロジー.リバウンドポート型ソフトウェアの原理は、クライアントがまずFTPサーバーにログインし、木馬ソフトウェアに予め設定されたホームページ空間の上にあるファイルを編集し、ポートを開いて傍受し、サービス側の接続を待つことである.サービス側は定期的にHTTPプロトコルでこのファイルの内容を読み取り、クライアントが自分に接続を開始させることを発見した場合、自発的に接続する.これにより、接続作業が完了します.そのため、インターネット上では、NAT(透明エージェント)エージェントでインターネットを利用するパソコンにアクセスでき、ファイアウォールを通ることができます.従来のリモート制御ソフトウェアとは対照的に、バウンスポート型ソフトウェアのサービス側はクライアントにアクティブに接続し、クライアントのリスニングポートは一般的に80(すなわち、Webブラウズ用のポート)に開かれている.これにより、ユーザがコマンドプロンプトの下で「netstat-a」コマンドを使用して自分のポートをチェックしても、発見したのも「TCP UserIP:3115 ControllerIP:http ESTABLISHED」のような状況で、少し油断すると自分がページを閲覧していると思ってしまい、ファイアウォールも同じように思ってしまいます.そこで,一般的なソフトウェアとは逆に,リバウンドポート型ソフトウェアのサービス側がクライアントにアクティブに接続することで,ファイアウォールの制限を容易に突破できる.