用Visual C++實現遠程線程嵌入技術
至此,遠程嵌入順利完成,為了試驗我們的DLL是不是已經正常的在遠程線程運行,我編寫了以下的測試DLL:
BOOL APIENTRY DllMain(HANDLE hModule, DWORD reason, LPVOID lpReserved)
{
char szProcessId[64] ;
switch ( reason )
{
case DLL_PROCESS_ATTACH:
{
file://獲取當前進程ID
_itoa ( GetCurrentProcessId(), szProcessId, 10 );
MessageBox ( NULL, szProcessId, RemoteDLL, MB_OK );
}
default:
return TRUE;
}
}
當我使用RmtDll.exe程序將這個TestDLL.dll嵌入Explorer.exe進程后(PID=1208),該測試DLL彈出了1208字樣的確認框,同時使用PS工具也能看到
Process ID: 1208
C:WINNTExplorer.exe (0x00400000)
……
C:TestDLL.dll (0x100000000)
……
這證明TestDLL.dll已經在Explorer.exe進程內正確地運行了。
無論是使用特洛伊DLL還是使用遠程線程,都是讓木馬的核心代碼運行于別的進程的內存空間,這樣不僅能很好地隱藏自己,也能更好的保護自己。
評論