解除安裝掉指定程序中的指定模組

2021-04-13 22:14:13 字數 1317 閱讀 9809

//解除安裝掉指定程序中的指定模組,一般用來清除dll木馬

////注:

//1,對於多次呼叫了loadlibrary的程序,需要多次呼叫該函式才能夠保證從該程序完全解除安裝

//2,只有程序建立後動態載入的dll呼叫該函式才能夠達到效果(如果指定程序的引入表中包含了欲解除安裝的模組,呼叫雖然能夠成功,但是該模組的函式資源等仍然有效。)。

////引數:

//pid: 程序id

//module: 模組名

////返回值;成功 true,失敗 false

bool freeremotemodule(dword pid, lpcstr module)

if((!writeproces**emory(hprocess,lpbuf,(lpvoid)module,len,&wlen)) || (wlen!=len))

dword dwhandle,ret;

handle hthread;

lpvoid pfunc;

//////dwhandle=getmodulehandle(module)

///pfunc= getmodulehandlea;

hthread = createremotethread(hprocess, null, 0, (lpthread_start_routine)pfunc, lpbuf, 0, null);

// 等待getmodulehandle執行完畢

ret=waitforsingleobject(hthread, infinite);

// 獲得getmodulehandle的返回值

ret=getexitcodethread(hthread, &dwhandle);

// 釋放目標程序中申請的空間

ret=virtualfreeex(hprocess, lpbuf, len, mem_decommit);

ret=closehandle(hthread);

/////freelibrary(dwhandle);

///pfunc = freelibrary;

hthread = createremotethread(hprocess, null, 0, (lpthread_start_routine)pfunc, (lpvoid)dwhandle, 0, null);

// 等待freelibrary解除安裝完畢

ret=waitforsingleobject(hthread, infinite);

ret=closehandle(hthread);

ret=closehandle(hprocess);

return true;

如何解除安裝其它程序中載入的指定DLL

如何解除安裝其它程序中載入的指定dll 2008 02 17 12 46 include void fastcall unloaddll string str proce,string str dllname flag process32next snapshot,pinfo closehandle...

Bash kill指定的程序名

通過bash來kill指定的程序名,bash檔名為 home zcm bin d.sh,內容如下 bin sh if 1 then echo usage sh 0 exit 0 fi s1 ps ef grep 1 grep v grep awk s1 ps ef grep 1 grep v sh ...

Linux中給程序指定CPU核

為什麼要大費周章的給我們的程式指定cpu呢?要想弄明白這個問題首先需要明白幾個概念。cpu的親和性,就是程序要在指定的 cpu 上盡量長時間地執行而不被遷移到其他處理器,也稱為cpu關聯性 再簡單的點的描述就是將制定的程序或執行緒繫結到相應的cpu上 在多核執行的機器上,每個cpu本身自己會有快取,...