應用文檔
應用文檔
應用文檔 首頁 > 應用文檔

實測超級狗外殼加密.Net程序后對抗反編譯工具的效果

更新時間:2020-08-24 15:06:58   點擊量:
C#是由C和C++衍生出來的一種安全的、穩定的、簡單的、優雅的面向對象編程語言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性。同時也C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程的支持成為.NET開發的首選語言。而作為一款.net 語言,也有它讓開發者非常頭疼的問題——就是很容易被反編譯。
 
泰雷茲從.net產品面市以來就注意到這個問題,其在后續的產品更新中,就加入了對.NET程序的反編譯保護。
 
下面以用戶使用量最多的一款產品超級狗實測對C#外殼加密后在幾款反編譯工具中的表現。
 
1、程序樣本
超級狗開發包自帶的32位C# demo程序dot_NET2_bounce.exe,以其中的一個類/方法move()作為測試內容。
 
2、原始程序在.NET Reflector 8.5中顯示的內容
把dot_NET2_bounce.exe拖進反編譯工具.NET Reflector 8.5,可以清楚地看到move()方法的代碼。


3、用超級狗外殼工具對此demo程序進行外殼加密,加密時選擇對move()做代碼加密。


4、加密后的程序在.NET Reflector中的顯示結果
將加密后的程序,拖入.NET Reflector,找到對應的move(),可以看到軟件無法解析該方法,直接報錯。


5、加密后的程序在dnspy中的顯示結果
再將加密后的程序,拖入到另外一款反編譯工具dnspy 6.14中,看看會是什么結果呢?
可以看出代碼是顯示出來了,但已經完全看不出原始程序本來的面目了。

綜上所述,C#程序經過超級狗外殼加密后,會對對應的類/方法做代碼處理,以達到隱藏代碼的目的。需要注意的是,要加密哪個類或方法,需要在加密界面里手動選擇對應的方法,選項有代碼混淆和代碼加密兩種,其中混淆能起到更好的代碼保護作用,但也有可能會影響程序運行效率。
亚欧2区免费在线视频