startupinfo結構中的cb欄位表示該結構的長度,表示子程序繼承父程序的startupinfo結構。
如果要修改子程序的啟動資訊,就要先獲取到父程序的資訊,然後再設定startupinfo結構中的相應字段。
如下隱藏啟動乙個程式:
char lppath = "notepad.exe" ;
startupinfo si = ;
// 設定startf_useshowwindow標記,使得startupinfo結構的wshowwindow欄位有效
si.dwflags |= startf_useshowwindow ;
// 設定視窗的顯示方式,sw_hide表示隱藏方式
si.wshowwindow = sw_hide ;
process_information pi ;
bool bstatus = createprocess ( null, lppath, null, null, false, 0,null, null, &si, &pi ) ;
if ( bstatus == false )
在建立子程序的時候使用create_suspended標記使子程序掛起,此時子程序還沒有初始化,然後就可以呼叫程序中處理子程序的資料和**,比如:對子程序進行資料處理和模組注入(hook)等操作,最後再恢復執行。
wchar lppath = l"notepad.exe" ;
startupinfo si = ;
process_information pi ;
// 步驟1:使用create_suspended建立掛起程序
bool bstatus = createprocess ( null, lppath, null, null, false, create_suspended,null, null, &si, &pi ) ;
if ( bstatus == false )
// 步驟2:在這裡對子程序進行資料處理和模組注入等操作
// ……
// 步驟3:恢復執行
resumethread ( pi.hthread ) ;
C 啟動乙個外部程式 CreateProcess
自 今天還是繼續說說c 呼叫系統api啟動外部程式的方法,今天要說的是createprocess這個api函式,相比前兩篇文章 一 二 中所說的api,createprocess引數要更複雜一些,但使用起來,要更靈活。1.匯入命名空間 using system.runtime.interopserv...
程序建立,程序等待,程序終止
1 程序建立,2 程序等待,3 程序終止 程序建立被定義為通過父程序建立子程序的過程。fork函式 函式原型 pid t fork void 特點 1.fork函式呼叫一次,返回兩次兩次返回值得區別分別是子程序當中的返回值為0,父程序當中的返回值為新建子程序的id 將id返回給父程序的原因是沒有函式...
程序排程之建立程序
do fork struct pid pid alloc pid struct pid pid kmem cache alloc pid cachep,gfp kernel 分配pid結構體空間 nr alloc pidmap current nsproxy pid ns 分配pid程序號 pid ...