減少文件特徵碼的一些方法與技巧

我們最開始拿到一個木馬和遠程控制的生成服務端來說吧,沒有經過處理的特徵碼可定是很多的,但經過我們處理的話特徵碼就變少了,處理分爲簡單處理,和非簡單處理,簡單處理的有,替換下版權和圖標,修改下資源名,加殼脫殼中建輸入表,這個貌似對360有點用處,,加殼加花,或在PE 128字節出把00修改爲90,這個方法對金山有點用處,,江民加殼加花也是起一定的用處的 或添加數字簽名等。。。。這些都是一些簡單的處理。。,,其他殺軟也是基本這樣子處理的,
非簡單的就是屬於加密了,第一就是加密區段,第二加密資源段,第三就是隱藏輸入表然後在加密,在加反調試
大家可以參考教程:http://pan.baidu.com/share/link?shareid=453348138&uk=1879657625


【1】、區段合併呢,我見過前輩說過不建議區段合併。。。我
也是這麼想的。有時候定位出來不知道在那一段。不過有時
候區段合併以後可以過掉390的某個引擎.所以這裏我們來用一下。
//區段合併
#pragma comment(linker, "/defaultlib:msvcrt.lib /opt:nowin98 /IGNORE:4078 /MERGE:.
rdata=.text /MERGE:.data=.text /section:.text,ERW")
很簡單。看操作
放在INCLUDE下面就好了    這樣做完了第一步。我們可以來測試一下。
大家記得在做360免殺的時候要把360給斷網了。
我暫停了。節約時間
我們來掃一下。。會很慢的。。殺了。
報的是Zpack        大家看好。要禁止360的兩個程序訪問網絡。
我們來區段合併以後在掃一下。。不好意思。
之前沒有實驗。殺毒太慢了。中間會暫停。請大家見諒。
不過教程絕對是真實的。
好了。我設置了一下。咱麼只來用小紅傘掃描吧。這樣能快一些
我們再來看一下。小紅傘剛纔報的就是Zpack..
擦擦。。各位。不好意思了。掃描的還是很慢。。我就不演示掃描了。
這個預處理步驟是我一直在用的。
效果不錯。、不廢話。我們接着做。
【2】、
//切入  彙編 加nop
__asm
{
nop
nop
nop
nop
nop
nop
nop
}              
加NOP的方法聽流行的。相當於加花指令了。。。我們來坐下
__asm nop;
__asm nop;            這個也是花指令。跟上面那效果是一樣的。,源碼的作者已經加過了、
我就不演示了。加花指令之後大家要編譯一下。有些地方是不能加的。報
錯誤以後。就把那一出刪了就行了。
看到沒。報錯了。我們看看。是我剛纔加的花指令。我們把它刪了。。。。
好了。繼續
【3】、加版權
這個就不多說了。我建議大家先不要加版權。等所有的預處理做
完之後在嘗試加版權。家版權也很簡單。看我操作。這個是帶有版權的。我們給他修改下
看上面的描述。現在是這個。我們看修改後的。看到沒。不一樣了吧。
【4】、【延遲加載】
#pragma comment(lib, "DELAYIMP.LIB")
#pragma comment(linker, "/DELAYLOAD:WININET.dll")
#pragma comment(linker, "/DELAYLOAD:WS2_32.dll")
#pragma comment(linker, "/DELAYLOADSAPI.DLL")
#pragma comment(linker, "/DELAYLOAD:GDI32.dll")
#pragma comment(linker, "/DELAYLOAD:ADVAPI32.dll")
#pragma comment(linker, "/DELAYLOAD:SHELL32.dll")
#pragma comment(linker, "/DELAYLOAD:WINMM.dll")
#pragma comment(linker, "/DELAYLOAD:USER32.dll")
#pragma comment(linker, "/DELAYLOAD:WTSAPI32.dll")
#pragma comment(linker, "/DELAYLOAD:AVICAP32.dll")
#pragma comment(linker, "/DELAYLOAD:urlmon.dll")
#pragma comment(linker, "/DELAYLOAD:OLEAUT32.dll")
#pragma comment(linker, "/DELAYLOADle32.dll")
#pragma comment(linker, "/DELAYLOAD:NETAPI32.dll")
/*#pragma comment(linker, "/DELAYLOAD:SHLWAPI.dll")
#pragma comment(linker, "/DELAYLOAD:IMM32.dll")*/
#pragma comment(linker, "/DELAY:nobind")
#pragma comment(linker, "/DELAY:unload")
這個我覺得是很有用的。有些定位到輸入表函數上的時候。我們很難辦。
延遲加載這些輸入表函數了就不會定位到這裏了。
我們來修改。
好。沒有錯。我們載入lordpe看看
就剩下這兩個了。
看看註釋後有幾個函數。額。還是兩個。
好吧。我表示我找的這個源碼不給力。這延遲加載是很有效果的。
大家找源碼去試試把。我們繼續
【5】、動態調用函數
這個我是不推薦大家上來就動態調用函數。
除非你定位到了那個函數上再去動態調用他。
怎麼動態調用我來掩飾一下。我們先來找個函數
好吧,我再次表示這個遠嗎很不給力。我們換個源碼把。
這個源碼的延遲加載是有的。我們看看延遲加載有什麼變化。
我處理的這個是DLL。現在就四個輸入表。編譯完了。節約時間。
我暫停了。大家見諒
看到沒。我把延遲加載註釋掉以後。輸入表出現了好多。。
再來看看。延遲後的就這四個。
接下來我來掩飾掩飾動態調用
啊啊。都唄動態掉了。
就這個吧。
轉到**定義
然後複製到WINBASEAPI下面一行
在用到一款工具【源碼免殺輔助】好多工具包裏都有。
上面這一段放到INCLUDE下
typedef int
(WINAPI
*WideCharToMultiByteT)(
    __in UINT     CodePage,
    __in DWORD    dwFlags,
    __in_opt LPCWSTR  lpWideCharStr,
    __in int      cchWideChar,
    __out_bcount_opt(cbMultiByte) LPSTR   lpMultiByteStr,
    __in int      cbMultiByte,
    __in_opt LPCSTR   lpDefaultChar,
    __out_opt LPBOOL  lpUsedDefaultChar);
下面這一段放到函數上面
WideCharToMultiByteT pWideCharToMultiByte=
(WideCharToMultiByteT)GetProcAddress(LoadLibrary("KERNEL32.dll"),"WideCharToMultiByte");
看到了吧。複製粘貼。
繼續下一個、、這個函數的位置是在同一個CPP裏。
所以TYPE那一段我們就複製一次就可以了。
這樣就動態調用完了。保存。編譯下
擦擦。。又死了啊??重新打開把
我們剛纔動態了的。
好了
沒有錯誤。
這些就差不多了。殺到某個函數就這樣動態掉就行了。
你要是問我爲什麼。其實我也不知道原理。
嘎嘎。。有時間多去看看一些大論壇的源碼免殺教程。
他們講的很詳細。畢竟比我們這些旁門左道知道的多一些。
教程到這吧。中間耽誤了不少時間。不好意思了啊。

對了。那些動態調用的函數去網上搜吧。



http://www.cnhonkerarmy.com/thread-180958-1-2.html

發佈了5 篇原創文章 · 獲贊 23 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章