今天難得被我在學校機房蹭到了機器,裝了諾頓和麥咖啡。反正還沒針對這兩個防毒軟體做過免殺,是以幹脆就改一下好了。
定位過程就免了,給出特征碼位置:
諾頓的:起始偏移 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目錄下。