SmartAssembly是一款非常好用的.net代碼混淆軟件,它也是一種適合程序員保護(hù)源代碼并防止程序被修改的工具,它為用戶提供三種保護(hù)方法,以適應(yīng)不同的情況并隱藏重要信息,是用戶加密并保護(hù)代碼的最佳選擇。
功能特點(diǎn):
1、控制流量混亂:將方法內(nèi)的代碼轉(zhuǎn)換為'spaghetti code',以便很難看到應(yīng)用程序的工作原理。
2、引用動(dòng)態(tài)代理:為調(diào)用程序集外部的方法創(chuàng)建代理,以便很難找到外部調(diào)用。
3、資源壓縮和加密:壓縮和加密托管資源,使其難以理解并減小程序集的大小
4、字符串編碼:對(duì)軟件中使用的字符串進(jìn)行編碼,以隱藏密碼和SQL查詢等信息。
5、依靠壓縮和嵌入:壓縮和嵌入主程序集中的依賴項(xiàng)簡化了軟件部署并減小了程序的大小。
6、父母混淆的方法:通過更改代碼中的類來移動(dòng)代碼中的方法會(huì)使得更難理解方法和類如何相互關(guān)聯(lián)。
7、陳述性混淆:直接在代碼中使用自定義屬性可以排除成員的混淆。
三種方式:
1、【困惑】
如果.NET應(yīng)用程序沒有被混淆,則可以很容易地進(jìn)行反匯編,如果您在代碼中投入了時(shí)間,精力和金錢,這可能會(huì)成為一個(gè)問題。對(duì)代碼進(jìn)行模糊處理很容易,并且增加了防止逆向工程和修改的屏障。
多種形式的混淆和優(yōu)化
代碼混淆使您的應(yīng)用程序難以進(jìn)行逆向工程,刪除無用的代碼,壓縮依賴關(guān)系,保護(hù)和壓縮應(yīng)用程序,而不用擔(dān)心。
2、【自動(dòng)錯(cuò)誤報(bào)告】
只有一件事比找到你的軟件更糟糕的是:從來沒有發(fā)現(xiàn)過。
大多數(shù)用戶都不愿意報(bào)告錯(cuò)誤:記住和關(guān)聯(lián)細(xì)節(jié)是棘手的,技術(shù)上具有挑戰(zhàn)性。如果你讓用戶只需一次快速點(diǎn)擊即可告訴你整個(gè)故事,對(duì)每個(gè)人來說會(huì)更容易,不是嗎?
自動(dòng)錯(cuò)誤報(bào)告是一種異常處理機(jī)制,可在發(fā)生錯(cuò)誤時(shí)自動(dòng)且無提示地收集詳細(xì)信息。盡管可高度自定義,但典型的錯(cuò)誤報(bào)告包含完整堆棧跟蹤和有關(guān)異常上下文的詳細(xì)信息(例如,所有局部變量的值)。
自動(dòng)錯(cuò)誤報(bào)告在兩種主要情況下特別有用:
在預(yù)發(fā)布階段(例如beta測試),當(dāng)您需要大量早期用戶反饋來幫助您發(fā)布穩(wěn)定的應(yīng)用程序時(shí)。
在發(fā)布后維護(hù)中,您希望簡化并加快調(diào)試和修復(fù)軟件的過程。
3、【合并DLL】
編譯.NET代碼通常會(huì)導(dǎo)致創(chuàng)建多個(gè)程序集文件,包括附屬程序DLL,所有這些都是程序運(yùn)行所必需的。雖然這在開發(fā)過程中不是問題,但在部署時(shí),通常意味著用戶不必要解壓縮文件或安裝程序中的其他步驟,因?yàn)镈LL會(huì)移動(dòng)到特定位置。
通過使用SmartAssembly將引用的DLL中的代碼合并并嵌入到主程序集中,可以大大簡化部署過程
依賴關(guān)系壓縮和嵌入允許引用的DLL作為資源嵌入到主程序集中,而不是合并到主程序集的內(nèi)容中。此功能還會(huì)壓縮這些資源,并在運(yùn)行時(shí)動(dòng)態(tài)解壓縮它們。
您可以通過命令行控制SmartAssembly的依賴項(xiàng)合并和依賴項(xiàng)壓縮和嵌入,因此可以輕松地將其集成到構(gòu)建過程中,從而為每個(gè)構(gòu)建提供簡單,可靠的依賴項(xiàng)合并。