SDProtector 1.12 外殼分析

【目     標】:N/A
【工     具】:Ollydbg 1.1 IDA 4.7

【任     務】: 外殼分析
【操作平臺】:Winxp sp2

【作     者】: LOVEBOOM[DFCG][FCG][CUG]
【相關鏈接】
: N/A
【簡要說明】: 傳說這個外殼比較強悍,我以前沒時間分析的時間時候,用OD試了幾次掛了,後面一直沒有時間分析這個外殼,今天終於可以完成自己的心願,撥開它的神祕面紗,看看這個殼是是不是真的這麼神祕,這麼強勁。不過說真的,等自己分析完了,第一個感覺就是上當,作者的寫殼能力是我見過的最有待改進的。不過不管怎麼說,什麼事都是說容易做的時候難,也許有一天我自己寫的時候也會出不少問題J.題外話:用Word寫分析文章還是真不方便,抓下來的代碼給自己的感覺就是亂亂的。但不用WORD也不好辦,文件太長了,做成txt的打開不方便,做成html 的修改格式就麻煩,沒辦法,只能選個擇中的方法。

加上這個外殼的分析,算起來就快到十個外殼完全分析了,恭喜下自己J,向20進軍。關於文章的其它說明,文章已經不再是以前的教你按幾次F9,按什麼鍵等操作性文章,如果你只是想知道怎麼脫殼,那麼很抱歉文章不適用於你。

【詳細過程】:

        殼的保護:

              這個外殼用的Anti-Debug還是比較多,可以大概的分爲兩部分,一部分是ODsice共用的反調試部分,另一部分是分別針對sice OD的,還好,這個殼對OD的檢測還只是一般的水平。共用的反調試部分也是這個殼的靈魂部分:用時間差來檢測調試器,不斷的檢測時間差(從另一角度來看,這也是這個殼的失敗之處,對於稍微有經驗的朋友來說,時間差他們沒有起到多大的作用,只可能讓殼的性能降低,浪費CPU資源。),這個殼的檢測時間的方法爲RDTSCGetProcessTimesGetTickcount.。另一部分中的針對Od的檢測: 主要用ZwQueryInformationProcessIsDebuggerPresent,還有一個是多線程(多線程對SICE來講沒有很大的阻礙);針對sice的檢測就比較多有常用的INT3擦除硬件斷點(注:雖然這個對OD也有效,但作用並不大),防止單步調試檢測,CreateFileA 檢測(這個檢測 同時會檢測常用的調試器和調試器相關的東西,如Trw,icedump等等)ZwQuerySystemInformation檢測驅動名(還會檢測IceExt,感覺多餘,因爲iceext安裝時可以自定義名字的)

         我自己是用OD分析,檢測sice之類的對我來說就不重要了,重要的是公用檢測和OD檢測部分,好了,接下來開始慢慢分析,並從中找出跳過檢測的方法。同前面的文章差不多,我喜歡用IDA來靜態註釋,那樣看起來很方便。

       準備工作:

              開始文章之前你要對殼有個大概的瞭解,對彙編有一定的瞭解,對調試工具也要有一定的瞭解。我分析過幾次之後發現這個外殼和其它外殼一樣有,花指令基本上是用宏來寫的,根據它的特性我隨手寫了個簡單的清除花指令的腳本,因爲我自己擔心會影響到程序的,所以只是簡單的處理了下花指令沒有完全去除,不過這樣已經很方便我們看代碼,附件中的csdp.txt便爲清楚花指令腳本。準備好了相關工作後,開始進入分析過程。

由於文章比較長,這裏貼不下,要看完整文章的朋友請到看雪論壇上下載"SDProtector v1.12外殼完整分析(年終篇) "http://bbs.pediy.com/showthread.php?s=70f87c6c6003488ca89a56c00830baf8&threadid=19630.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章