欧美性猛交黑人xxxx,成人毛片一区二区三区,久久综合九色综合精品,男的把j放进女人下面视频免费

逆向工程 打造免殺后門

  • 發布于:2023-11-09
  • 189 人圍觀
以前在x上發表過一篇《逆向工程 打造隱蔽后門》的文章,講述了如何在一個可執行文件中嵌入后門代碼的方法。但是這種方法很有可能被殺毒軟件給查到,因此這次我們要打造免殺的后門。

  先看看我們需要什么“家伙”:

Olly debug 1.10b 漢化版 —— 逆向的主要工具
UltraEdit —— 經典的16進制編輯器
PEDITOR v1.7 —— PE文件編輯工具
dcmd —— 一個簡單的邦定81端口的后門,會被瑞星查殺
                         
一、原理簡介


其實方法有點和上一篇打造隱蔽后門中的方法類似:首先需要在可執行文件中找到一些“空”地,這里添加我們的加/解密代碼,然后修改入口地址處的指令,使用一個jmp指令調轉到我們添加的代碼處執行,這樣就可以對前面的后門代碼進行加/解密。執行完我們的代碼后,再跳回到程序入口處的未被修改的第一條指令。如圖一:

大家可以參考《逆向工程 打造隱蔽后門》。


                            二、打造實戰

原理簡單介紹完了,俗話說光說不練假把式,那咱們就操練起來。首先用olly debug打開我們的后門程序dcmd,如圖二。

好了,我們先把入口處的一小段數據備份出來(以防萬一嘛,至于復制多少你自己看著辦吧^_^),如圖三。

接著我們需要看看我們是否具有對該代碼段的寫權限,如何檢測呢?向后托動olly的窗口滾動條,找到如圖四的地方(前篇文章中提到的“dead space”),

在004011f0地址處按空格鍵打開匯編窗口,輸入下面的指令:
mov dword ptr ds:[4011f0],90909090
這條指令運行后會往004011f0地址出寫入4字節的90,如果寫入成功說明是可以寫入的,否則就是不可寫入的。那么不可寫入怎么辦呢?稍后我們再說。OK,右鍵單擊我們輸入的指令->“此處新建IP”,如圖五。

然后按下F7鍵來運行這條指令,結果如圖六。

呵呵,是可以寫入的。那么我們接下來就就可以繼續打造了,下面我們要確定需要加密的代碼部分了。回到程序入口處,因為我們后面還要修改入口處的指令為一個跳轉指令,因此需要加/解密的開始部分應該往后選,找到0040101F   $ 55         PUSH EBP,我們就從這里開始加密吧。接著確定加/解密的結束部分,往后翻看代碼到如圖七的部分。

看到下面的一行了:
結構 'IMAGE_IMPORT_DESCRIPTOR'
這個結構就是IAT了(Import Address Table)就是PE文件格式中的導入表了。我們加/解密是不能包括IAT的(詳細情況讀者朋友可以去翻越PE方面的資料),因此結束部分我們就選擇004010fe吧。到此為止,我們已經確定了需要加/解密的部分,接下來要確定我們的加密算法了。這里我們可以使用非常簡單的異或作為我們的算法,因為異或有以下特性是不錯的:

XOR SOURCE,KEY=DEST
XOR DEST,KEY=SOURCE

也就是說我們對SOURCE異或兩次得到的結果還是SOURCE。算法確定后,我們在olly窗口中的004011f0處開始我們的加/解密程序吧,如下:

004011F0   B8 1F104000   MOV EAX,dcmd.0040101F     ;需要加/解密部分的起始地址          
004011F5   8030 0F     XOR BYTE PTR DS:[EAX],0F   ;與0f進行異或,這個0f讀者朋友可以自由替換
004011F8   40         INC EAX               ;遞增eax
004011F9   3D FE104000   CMP EAX,dcmd.004010FE     ;看看是不是到了加/解密部分的結束地址
004011FE   ^7E F5       JLE SHORT dcmd.004011F5   ;如果沒到繼續循環了


程序就這么簡單,看上去很容易哦。。。這還沒完呢繼續回到olly上來,來到程序的入口地址處按空格鍵進行匯編,輸入:jmp 004011f0,如圖八。

這個時候拿出我們先前備份的那段代碼進行比較,看看有哪些指令被覆蓋了,如圖九。

只有 SUB ESP,190一條指令被覆蓋了,那么我們就要在加/解密代碼的最后處把覆蓋的指令添上,而且還要添加一條跳轉指令,跳轉回入口地址的下一條地址,完整代碼如圖十。


到這里,我們先保存一下吧。右鍵單擊任意代碼處選擇復制到可執行文件->“全部修正”,結果如圖十一。

好像出錯了!這個錯誤的意思是我們的文件不夠大無法保存我們修改的代碼,那么我們得手工為這個文件增加點體積了。關掉olly,用ultraedit打開該文件,在文件的最后單擊鼠標右鍵選擇HEX插入與刪除,彈出如圖十二的對話框,

在字節數量的文本框中輸入256,確定后如圖十三,然后保存退出。接著用PEDITOR打開這個文件,單擊Section按鈕,彈出節表窗口里面只有一個.h4x節,右鍵單擊這個節選擇edit section,如圖十四。

在彈出的對話框中在New Values欄中的Raw size改成00002e4(即加上256的16進制數0x100),如圖十五。點擊apply changes按鈕后退出。


到此,我們已經給這個程序增加了100h個字節的長度了,下面我們再重復前面的步驟來修改這個文件,修改完后我們在dump一次看看,這次就沒有錯誤提示了。OK!最后一項工作,我們需要先把這個文件進行加密,然后再dump到一個可執行文件里,這樣下次它在運行的時候就會自動異或而還原回到原來的代碼從而順利執行。于是我們在olly中,找到我們添加的代碼的第一條指令,在此新建EIP,然后往后在“SUB ESP,190”指令處設置斷點,如圖十六。

然后單擊ollydebug的運行按鈕,運行結束后如圖十七。

看到了嗎?我們制定的代碼全部被異或了,OK!我們右鍵單擊任意代碼處選擇復制到可執行文件->“全部修正”,這個時候出現了一個新的調試窗口,關閉它,會提示你是否保存,選擇是,保存為“修改后的dcmd.exe”。下面我們分別用瑞星對dcmd.exe 和修改后的dcmd.exe殺毒,結果如圖十八。

哈哈,是不是成功躲過了殺毒軟件的追殺?我們運行一下修改后的dcmd.exe看看還能運行不?如圖十九。

到此,整個過程都介紹完了。向心讀者朋友應該可以打造自己的免殺后門了,如果碰到無法寫入怎么辦呢?這個也很好說,有一下兩個辦法可供讀者參考:

1.使用VirtualProtect API函數。使用這種方法,需要讀者在添加的加解密代碼的前面使用此函數修改保護屬性,使之可寫,剩下的和上面介紹的一樣了。這個函數的具體用法可以參閱MSDN,很簡單的。我就不多說了。

2.使用PE編輯工具進行修改。這個方法應該比較適合一些新手朋友,還是用PEDITOR,我拿咱們這個修改后的dcmd.exe為例簡單介紹一下吧。首先打開PEDITOR,打開我們的文件“修改后的dcmd.exe”,單擊section按鈕打開節表對話框,右鍵你想修改的節表,選擇edit section彈出一個新的對話框,單擊“char. wizard”按鈕打開特性對話框,如圖二十。

看到我紅框框起的屬性了嗎?其中“writable”就是是否可寫的,在這里已經是可寫了,那么我們去掉它會怎么樣呢?試試看,把“writable”前面的勾去掉,然后單擊“take it”按鈕,然后選擇“apply changes”,退出PEDITOR,運行程序,如圖二十一。

啊哦,引發了寫保護錯誤。讀者朋友看到這里,你應該會修改了吧?


三、結束語


又到了該說再見的時候了,青山不改,綠水常流,咱們后會有期了!歡迎大家來邪惡八進制交流!
萬企互聯
標簽: