剖析DotNet的名稱混淆保護技術,兼談某殼3.15的新保護技術

來源:互聯網
上載者:User

混淆在目前的DotNet保護中佔主流地位。名稱混淆是最基礎的混淆保護技術。
DotNet加密保護工具MaxToCode也在最近的更新中加入了混淆保護--名稱混淆。

我們先談談名稱混淆技術,
名稱混淆的意義何在?
在我看來它就只有一個意義,將表意的名稱替換為無意義的名稱。
如果說再在名稱混淆上搞其它的花樣都是徒勞的。

名稱混淆從本質上可以分為兩類。

第一類,最簡單的名稱混淆——名稱替換。
.Net的中繼資料中有一個NameTable,這個表裡面儲存了所有類型,方法,屬性,欄位等的名稱。
這一類混淆的本質就是從NameTable裡面進行一對一的名稱替換。
當然實現的方式可能是多樣的。可以IL級替換,也可以直接中繼資料級替換,或者其它達到相同效果的方式。
抗反混淆的強度很低。

第二類,名稱擦除、索引破壞
這類混淆只能在中繼資料級進行操作,要求對中繼資料的全部結構十分清楚,有一定難度。
它的本質,讓名稱索引數組越界。
中繼資料中類型,方法,屬性,欄位等的定義處是通過一個整形的index值指向 NameTable 的,index所對應的字串就是它的名稱。
這類混淆就是直接修改這個index值,如將它改為-1。

如果還要進一步做,可以再刪除NameTable中無用的字串,以及刪除NameTable有用但重複的字串。
再修改索引,讓名稱相同的指向同一個字串。

這類混淆有一定的抗反混淆的強度,能讓一部分反混淆工具失效,還能讓一部分反混淆工具發生數組越界的異常。

名稱混淆的反混淆技術(實質也是一個“名稱混淆”過程,只是這次我們是有意義的“混淆”):
Jason早前就分析過了,我這裡就直接搬來用。
Jason說過,名稱都存在中繼資料中的NameTable中的,反混淆只要直接修改這個NameTable,將特許字元的名稱改為字母的名稱即可。
這實際上就是使用的第一類名稱混淆技術來反混淆。
這種方法能對付目前絕大部分保護工具的名稱混淆。對付不了第二類名稱混淆。

這種只是最初級的反名稱混淆技術。我們可以使用第二類混淆技術來實現更好的反名稱混淆工具。
能達到什麼效果呢?不僅能把特許字元替換為字母的字元,還能讓替換後的名稱表達一定的意義。
即在進行名稱替換時採用匈牙利命名法,只要看到名稱就能知道它是“類型、方法、屬性、欄位等”。
甚至看得出欄位的類型,存取權限。類型的基類等。
這類工具能反上面兩類名稱混淆。

目前DST(Dotnet Security Team)[http://bbs.dotnetreverse.com]組員已經開發出了這樣的工具。

下面談談某加密保護工具的新版3.15.
今天朋友給了我一個3.15加密的程式,讓我看看。
首先直接拿3.14的離線試了一下,脫殼正常。
然後再看,有名稱混淆。
去看了一下該工具的更新說明,增加了名稱混淆,還提到有增加新保護技術。

我問那朋友新版都有什麼新功能,他告訴我,新版有名稱混淆介面,提供了三種名稱混淆方式。
"encrypt objects name","none objects name", "md5 objects name"。
看到這三種方式,很明顯,第一個和第三個都是第一類名稱混淆。
我想新保護技術不會就是"none objects name"吧。如果是,那怎麼說也應該是第二類名稱混淆才能勉強稱得上新技術。
實際分析了一下被加密程式的NameTable,發現不是,它還是第一類名稱混淆。用第一類名稱混淆技術就能反它。它只不過是把所有名稱都替換成了不可見字元("\r\n")。

這就讓我有一點困惑了,它提供的三種方式本質是一樣的,而且用Jason自己介紹的方法就能實現反混淆。
從技術上講,他自己應該清楚提供一種方式就足夠了。也許這隻是商業化運作的產物,這樣能滿足一批不懂技術的使用者。

名稱混淆,簡簡單單就行了,沒有必要深入,畢竟它只有一個淺顯的意義。
目前反名稱混淆工具很完善,再怎麼深入也是徒勞的。

說了這麼多還沒有提到它的新保護技術是什麼,
我朋友是遇到了問題才把程式拋給我的,他說用PEdumper dump後程式沒法用Reflector和ildasm看結構 了。
它的新保護技術大概就是anti一般的pedumper吧,說新保護技術有些誇張了,其實在win32保護中就有用過。通過破壞PE檔案結構來anti pedumper。
難怪用3.14的離線沒有問題,而用pedumper就有問題了。

再就沒有發現什麼新東西了。
該工具從3.11起在加密核心就基本沒有變了,強度也一直停留在那個水平。
現在看來,他似乎是在轉型了,開始向混淆保護髮展了。
加密保護是他的特色,加密殼在jit層還是有一定發展空間的,至少能讓強度再上一個台階。

DNGuard 2.0已經實現了jit層的核心,可行性是沒有問題的了。
開發中的 DNG H-VM接近尾聲了,相容性比預期的要好。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.