傀儡程序原理及除錯

2021-07-26 16:11:13 字數 628 閱讀 5761

傀儡程序建立過程:

(1) createprocess乙個程序,並掛起,即向dwcreationflags

引數傳入create_suspended;

(2) getthreadcontext獲取掛起程序context,其中,eax為程序入口點位址,ebx指向程序peb;

(3) zwunmapviewofsection解除安裝掛起程序記憶體空間資料;

(4) virtualalloc分配記憶體空間;

(5) writeprocessmemory將惡意**寫入分配的記憶體;

(6) setthreadcontext設定掛起程序狀態;

(6) resumethread喚醒程序執行。

傀儡程序是惡意軟體隱藏自身**的常用方式,在調式過程中,若遇到傀儡程序,需要將建立的子程序資料從記憶體中dump出來,作為pe檔案單獨除錯,dump的時機為resumethead呼叫之前,此時傀儡程序記憶體資料已經完全寫入,程序還未正式開始執行。

若dump後檔案無法執行,od載入失敗,則需要做如下修復:

(1) filealignment值修改為sectionalignment值;

(2) 所有section的raw address值修改為virtual address.

參考:

dll注入系列 傀儡程序

0x0 介紹 之前說過,要動態注入dll檔案,則需要執行程式中本身沒有的載入操作,必須改變控制流,除了建立執行緒外,還可以劫持控制流。這與二進位制漏洞利用比較類似,我們向程式寫入一段shellcode,然後改變執行緒上下文,讓其去執行shellcode,這段shellcode完成loadlibrar...

程式除錯原理及步驟

在微控制器或者程式開發過程中,有乙個很重要的步驟就是 除錯 又叫 debug 通過除錯能夠迅速找到程式出現的問題,用好除錯能讓我們事半功倍。除錯 的過程就是在程式段某個可能出現問題的地方打乙個 斷點 程式執行到斷點之後就會停止執行,之所以叫 斷電 乙個可以從它的工作原理上理解,因為打斷點實現程式停止...

守護程序構造原理及實現

守護程序的 實現 守護程序 daemon 在後台執行的一種特殊程序,沒有控制終端,週期性的執行某項任務。在linux上很多服務都是以守護程序的形式執行在系統上,如inetd程序偵聽系統網路介面,定時任務程序cron。在centos系統上輸入ps命令,檢視所有的程序情況 圖中列出部分 注意事項 系統建...