傳統捆綁器
這種原理很簡單,也是目前用的最多的一種。就是將B.exe附加到A.exe的末尾。這樣當A.exe被執行的時候,B.exe也跟著執行了。這種捆綁器的代碼是滿網都是。我最早是從jingtao的一篇關於流的文章中得知的。就目前來說,已經沒什麼技術含量了。
檢測方法:稍微懂一點PE知識的人都應該知道。一個完整有效的PE/EXE檔案,他的裡面都包含了幾個絕對固定的特點[不管是否加殼]。一是檔案以MZ開頭,跟著DOS頭後面的PE頭以PE\0\0開頭。有了這兩個特點,檢測就變得很簡單了。只需利用UltraEdit一類工具打開目標檔案搜尋關鍵字MZ或者PE。如果找到兩個或者兩個以上。則說明這個檔案一定是被捆綁了。不過值得注意的是,一些生成器也是利用了這個原理,將木馬附加到生成器末尾,用戶選擇生成的時候讀出來。另外網上流行的多款“捆綁檔案檢測工具”都是檔案讀出來,然後檢索關鍵字MZ或者PE。說到這裡,相信大家有了一個大概的了解。那就是所謂的“捆綁檔案檢測工具”是完全靠不住的一樣東西。
包源捆綁器
就這原理也很簡單。大部分檢測器是檢測不出來的,但灰鴿子木馬輔助查找可以檢測出捆綁後未經加殼處理的EXE檔案。但一般人都會加殼,所以也十分不可靠。這個學過編程或者了解PE結構的人都應該知道。資源是EXE中的一個特殊的區段。可以用來包含EXE需要/不需要用到的任何一切東西。利用這個原理進行100%免殺捆綁已經讓人做成了動畫。
大家可以去下載看看。那捆綁器是如何利用這一點的呢?這只需要用到BeginUpdateResource、UpdateResource和EndUpdateResource這三個API函式就可以搞定。這三個API函式是用來做資源更新/替換用的。作者只需先寫一個包裹捆綁檔案的頭檔案Header.exe.頭檔案中只需一段釋放資源的代碼。而捆綁器用的時候先將頭檔案釋放出來,然後用上面說的三個API函式將待捆綁的檔案更新到這個頭檔案中即完成了捆綁。類似原理被廣泛運用到木馬生成器上。
檢測方法:一般這種很難檢測。如果你不怕麻煩,可以先將目標檔案進行脫殼。然後用“灰鴿子木馬輔助查找”或“ResTorator”一類工具將資源讀出來進行分析。但這種方法畢竟不通用。
所以還是推薦有條件的朋友使用虛擬機。
編譯器捆綁法
無名
暫時不知用什麼名字來形容,所以只能用這個來代替。這種方法相當的陰險。是將要捆綁的檔案轉換成16進制保存到一個數組中。像這樣muma:array[0..9128] of Byte=(D,A,....);然後用時再用API函式CreateFile和WriteFile便可將檔案還原到硬碟。這裡稍稍學過編程的都知道。代碼中的數組經過編譯器、連線器這么一搞。連影都沒了。哪還能有什麼檔案是吧?所以就這種方法而言,目前還沒有可以查殺的方法。這種方法可以利用編程輔助工具jingtao的DcuAnyWhere或Anskya的AnyWhereFileToPas來實現。
最最毒辣的一種。因為暫時用的人較少,且危害性及查殺難度太大。[一個被殺的病毒直接捆綁就能免殺]所以就不公布了。此法查殺方法通用性極差。如果流行,估計大家連動畫都不敢下著看了。
補充
可以利用一些第三方工具將硬碟和註冊表監視起來以後再運行那些你不確定是否被捆綁的程式。這樣,一旦硬碟出現變化,或有檔案新建,或有檔案改變都會被記錄在案。就算是查找起來也方便一點。