天天看點

c語言編寫網絡安全工具,Linux系統下C語言程式設計工具詳細介紹

今天難得被我在學校機房蹭到了機器,裝了諾頓和麥咖啡。反正還沒針對這兩個防毒軟體做過免殺,是以幹脆就改一下好了。

定位過程就免了,給出特征碼位置:

諾頓的:起始偏移 000B9A4D   偏移大小 00000007

麥咖啡:隻要修改000B28B8處就可完成免殺

先生成一個服務端,接下來用C32ASM打開(用16進制),按Ctrl+G跳到000B9A4D,我們看到了一大段的字元串,這些應該是程式控件名及屬性的定義,修改大小寫後并不會影響程式的正常執行。選中包含000B9A4D_000B9A54在内的一段,點右鍵,選擇“修改資料”,選擇“大小寫反轉”,最後儲存檔案,再用諾頓8.0企業版清除,通過,測試上線成功。

PS:從網上的資料來看,諾頓的特征碼基本上是定位在字元串上,一般修改大小寫就可完成免殺。

接下來在剛才修改免殺的基礎上,我們再來修改麥咖啡的特征碼。

用OC計算檔案偏移000B28B8處的記憶體位址為004B9CB8,用OD加載鴿子服務端,按Ctrl+G跳轉到004B9CB8處,看看該處的内容

004B9CB8   4E       dec esi

這裡是減法運算,我們來看看它附近的彙編代碼。

004B9CB0   4E       dec esi

004B9CB1   0049 00     add byte ptr ds:[ecx],cl

004B9CB4   43       inc ebx

004B9CB5   004F 00     add byte ptr ds:[edi],cl

004B9CB8   4E       dec esi

004B9CB9   0000       add byte ptr ds:[eax],al

各個寄存器互相并不影響,也不存在堆棧和出棧操作,我們要做的是改變004B9CB8處的彙編代碼,這樣也就改變了特征碼,最簡單的方法就是将004B9CB8處的代碼寫到程式後面的0區域,然後用JMP指令來完成跳轉。不過這裡不需要這麼做,如果将004B9CB5和004B9CB8處的代碼交換一下,改成如下的形式

004B9CB5   4E       dec esi

004B9CB8   004F 00     add byte ptr ds:[edi],cl

很明顯原來004B9CB8處的代碼換成了004B9CB5處的,而004B9CB5處的則換成了004B9CB8處的代碼,交換順序後,儲存檔案。用麥咖啡清除已經通過,測試上線成功。

最後就是用Resource Hacker等資源編輯工具删除hacker資源,将修改後的服務端檔案命名為CServer.dat覆寫到鴿子的Cache目錄下。