為了讓uranus能注入到x86和x64程序中,uranus必須知道x86和x64平台中loadlibrary函式的位址。
我們將uranus設定為32位,則x86平台的loadlibrary位址可以簡單的獲得。
下一步,檢測作業系統平台是x86還是x64(方法下面提到),若為x64,則啟動乙個新的x64程序,在新的程序中取得loadlibrary的位置,並將其傳送到uranus中。
然後,就分別為x86和x64的程序進行注入即可。注意注入的dll也需要相同平台。
如何得知乙個程序是x86還是x64呢,我們可以利用api iswow64process()。當32位程序在x64的windows上執行時,它會在wow64這個相容平台上執行,此時iswow64process返回true。其他情況返回false。所以,若之前已經判定作業系統為x64,用此api可以判定程序是否是64位。而若作業系統是32位,則所有程序必然是32位的。
利用iswow64process也可以判定作業系統是否為64位。因為uranus是已知32位的。細節不贅述了。
linux下C C 開發小記2
dlopen函式介紹 void dlopen const char pathname,int mode 在這裡針對該函式的返回值,引數記錄下自己的理解。在載入庫失敗時會返回空指標,此時可以使用dlerror輸出錯誤原因,至於為什麼失敗會與傳入的引數有關。要動態載入的庫的名字,可以是相對路徑也可以是絕...
NDIS HOOK開發小記
ndis hook乙個忽略的問題 網上有不少介紹ndis hook的文章,但是有乙個細節問題都沒有介紹,對於我等菜鳥來說照著他的例子寫一遍但是為什麼我得就hook不成功呢?經過本人乙個五一假期的嘗試,終於找到了我所犯的弱智的錯誤。1 如果你向呼叫其他簡單驅動那樣載入驅動程式,那我告訴你,你能載入成功...
介面開發小記
首先,使用者接收資料的時候走的是json格式資料,也就使用php input來接收post流資料。隨後將接收的到的json資料轉換成array格式,進行資料校驗後進行具體的業務 執行。最終返回乙個json或xml格式資料,供使用者讀取接收。先讓我們來看看他們傳送的http請求體資料 傳送格式 con...