




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Dotnet 產(chǎn)品版權(quán)保護(hù)方案,Dotnet 源代碼保護(hù)加密技術(shù),講師:康世杰(Jason.NET),Copyright (C) Aiasted.SOFT. All rights reserved.,議程,1.簡(jiǎn)介DOTNET 編譯原理 2.中間語(yǔ)言的缺點(diǎn) 3.保護(hù)方案分類,一、簡(jiǎn)介DOTNET 編譯原理,C#、VB.NET、MORE,MSIL,Machine Code,編譯時(shí)由程序連接,運(yùn)行時(shí)由JIT映象,二、中間語(yǔ)言的缺點(diǎn),我們最關(guān)心的知識(shí)產(chǎn)權(quán) 源代碼泄漏,被競(jìng)爭(zhēng)對(duì)手拿去和你競(jìng)爭(zhēng) 自己產(chǎn)品的注冊(cè)機(jī)滿天飛 被別人植入惡意程序,后果得由作者或開發(fā)商承擔(dān),三、保護(hù)方案分類,我把Dotnet的保護(hù)
2、分為三大類:,1.由Microsoft提供的非第三方保護(hù)方案,2.編程技巧保護(hù)方案,3.第三方保護(hù)工具,3.1 Microsoft 提供的非第三方保護(hù)方案,強(qiáng)名稱 使用命令:Sn.exe 編譯為本機(jī)代碼 使用命令:Negn.exe,【3.1.1強(qiáng)名稱】,強(qiáng)名稱是 Microsoft 提供的保護(hù)機(jī)制。 它需要使用 Sn.exe 這個(gè)命令。 強(qiáng)名稱的作用就是防止程序集被非法修改,當(dāng)對(duì)程序集修改后,必須重新用您的私鑰再對(duì)程序集簽名,這也是如果含有強(qiáng)名稱的程序集在混淆或加密后必須要重新簽名的原因。 強(qiáng)名稱并不能保護(hù)您的程序,將程序集編譯為本機(jī)代碼,使用 Microsoft 提供的命令 Ngen.exe
3、 即可以將MSIL編譯為本機(jī)代碼運(yùn)行 運(yùn)行速度加快,跳過(guò)JIT的解釋映象 但它不能稱為一個(gè)保護(hù)方案,它是一個(gè)誤區(qū)?,【3.1.2編譯為本機(jī)代碼 】,3.2.編程技巧保護(hù)方案,人為手工混淆 隱藏程序集 將程序集中的相關(guān)Method(方法)編譯成Unmanaged(非托管代碼),【3.2.1 人為手工混淆 】,優(yōu)點(diǎn): 混淆顧名思意,就是混亂,不明確的意思。MetaData中都有一個(gè)RID,程序集運(yùn)行時(shí)就已經(jīng)和名稱沒(méi)什么關(guān)系了,都使用RID來(lái)調(diào)用的,所以可以將名稱省去。 什么叫人為混淆呢,就是人為的制造混淆。 手工的折分類,折分方法,打亂一個(gè)整體的序順,增加無(wú)用的代碼,增加無(wú)用的跳轉(zhuǎn)等等 缺點(diǎn): 耐
4、心的分析就是解決方案。建議使用反編譯工具:Reflector 它具有反向逆推及對(duì)象連接的功能。,優(yōu)點(diǎn) 使程序集不可見,但又可被調(diào)用 著名的 Reflector 就是使用的這種方案 不會(huì)在物理磁盤上留下痕跡,【3.2.2 隱藏程序集】,主程序集,主程序集資源,被隱藏的程序集,運(yùn)行中的 主程序集,解碼,缺點(diǎn): 耐心分析,因?yàn)榧用艿倪^(guò)程源代碼不能被保護(hù) 您可以通過(guò)分析入口代碼得到核心程序集 對(duì)于某些具備條件的人,無(wú)須費(fèi)時(shí)即可破解,【3.2.2 隱藏程序集】,【3.2.3將Method編譯成Unmanaged】,優(yōu)點(diǎn): 絕對(duì)無(wú)法利用Dotnet反編工具進(jìn)行反編譯 運(yùn)行效率高 不可被非法修改 也不可以用
5、Win32的反匯編工具進(jìn)行反匯編 缺點(diǎn): 只有使用 C+/CLI 結(jié)束 VC+.NET Managed 才能實(shí)現(xiàn) 實(shí)現(xiàn)難度高,失去Dotnet優(yōu)勢(shì),3.3 第三方保護(hù)工具,第三方保護(hù)工具較好的廠商有: Aiasted.SOFT 產(chǎn)品 :MaxtoCode,種類 :加密、混淆 PerEmptive Solutions 產(chǎn)品 :Dotfuscator Community,種類 :混淆 Remotesoft 產(chǎn)品 :Remotesoft Protect ,種類 :加密 產(chǎn)品 :Remotesoft Dotfuscator ,種類 :混淆 XenoCode 產(chǎn)品 :XenoCode ,種類:混淆,3.
6、3 第三方保護(hù)工具,混淆工具 Dotfuscator Community Remotesoft Dotfuscator XenoCode 2005 打包工具 Thinstall 加密工具 MaxtoCode Remotesoft Protect,【 3.3.1 混淆】,功能: 字符串加密 將程序集中所存在的字符串進(jìn)行加密,防止字符串信息泄漏 名稱混淆 將程序集中的某些 Class Name 或 Method Name 更改成一個(gè)無(wú)意義的字符串 流程混淆 給程序中增加某些形式的跳轉(zhuǎn)以破壞原有可讀的流程但不改變執(zhí)行流程,字符串加密是一個(gè)有效的功能,可以有效的防止程序中的字符串信息泄漏,可惜的是,解
7、密的代碼明文的呈現(xiàn)在攻擊者面前。 名稱混淆也是一個(gè)不錯(cuò)的功能,但它不能阻止信息泄漏,因?yàn)樗皇莻€(gè)礙眼法。 流程混淆曾被當(dāng)成救世主,它好象可以保護(hù)一切信息,但實(shí)際上它也只是一個(gè)雞助下面我們?cè)敿?xì)分析一下流程混淆的行為。,【 3.3.1 混淆】,源程序集,流程混淆的示意圖 (我們?yōu)榱朔奖懔私?,使用的是C#語(yǔ)言,實(shí)際上,流程混淆是基于MSIL上進(jìn)行的),【 3.3.1 混淆原理】,I = 1; J = 2; return I;,目標(biāo)程序集,goto G1; G2: J = 2; goto G3; G1: I = 1; goto G2; G3: return I;,示意圖,Code 1,Code 2,C
8、ode 3,Code 2,Code 1,Code 3,執(zhí)行入口,演示程序 XenoCodeTest.exe 使用 XenoCode 進(jìn)行流程混淆 使用 Deflow 進(jìn)行反流程混淆,【 3.3.1 流程反混淆演示】,我們把他的跳轉(zhuǎn)去掉,并把程序塊還原置原來(lái)的位置,那么您就得到了源來(lái)的程序,可以進(jìn)行反編譯的程序. 如果您也想開發(fā)反混淆工具,很簡(jiǎn)單,您必須具備 字符串操作知識(shí) 混淆原理,【 3.3.1 流程反混淆原理】,優(yōu)點(diǎn): 當(dāng)前流行的保護(hù)概念、兼容性好 混淆的產(chǎn)品依然是 MSIL 中間語(yǔ)言、可以跨平臺(tái)運(yùn)行 如沒(méi)有工具的支持,想完全改出源代碼、幾乎是不可能的事情 缺點(diǎn): 無(wú)法保證程序集的安全、依
9、然會(huì)被破壞、修改、取得核心代碼 達(dá)不到理想的保護(hù)效果,【 3.3.1 混淆優(yōu)缺點(diǎn)】,Thinstall 打包工具 優(yōu)點(diǎn): 可以將主程序和 DLL 程序打包成一個(gè)程序,并執(zhí)行 可以打包 Dotnet 程序集,并正確執(zhí)行 打包后的程序集不可被反編譯 缺點(diǎn): 打包程序運(yùn)行時(shí)解包,會(huì)在物理磁盤上釋放文件。利用查看進(jìn)程的工具,找到釋放的文件,保護(hù)即可被解除。,【 3.3.2 打包保護(hù)】,較創(chuàng)新的 Dotnet 保護(hù)概念,現(xiàn)存的產(chǎn)品有:MaxtoCode 、 Remotesoft Protect MaxtoCode 及 Protect 保護(hù)效果比較 程序集中無(wú)法看到源代碼 (同樣) MaxtoCode 加密后的程序無(wú)法使用 Reflector 查看 Remotesoft Protect 加密后可以使用 Reflector 查看 都帶著一個(gè) Native 的 DLL 作為解密庫(kù) 加密后的軟件必須運(yùn)行在 Windows 平臺(tái)上,【 3.3.3 加密保護(hù)】,作為目前保護(hù)強(qiáng)度最高的產(chǎn)品,它們的原理是什么呢?,【 3.3.3 加密保護(hù)原理】,MSIL,Machine Code,運(yùn)行時(shí)由JIT映象,Runtime Native DLL 解密,優(yōu)點(diǎn): 全新的保護(hù)概念 高強(qiáng)度的保護(hù),使您的軟件固若金湯 完全不可以被反編譯 完全杜絕了軟件被非法修改 缺點(diǎn): 只可以運(yùn)行在 Windows 平臺(tái)下 您必須要為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西西安市愛(ài)知中學(xué)2025屆化學(xué)九上期末檢測(cè)試題含解析
- 湖南省長(zhǎng)沙市望城區(qū)2024年數(shù)學(xué)八年級(jí)第一學(xué)期期末綜合測(cè)試模擬試題含解析
- 長(zhǎng)春汽車工業(yè)高等專科學(xué)?!秳?chuàng)意寫作概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 長(zhǎng)春健康職業(yè)學(xué)院《基礎(chǔ)醫(yī)學(xué)綜合實(shí)驗(yàn)訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建省泉州市晉江市泉州五中學(xué)橋南校區(qū)2024-2025學(xué)年數(shù)學(xué)八上期末綜合測(cè)試模擬試題含解析
- 校園傳染病防控心理疏導(dǎo)計(jì)劃
- 橋梁工程節(jié)能措施實(shí)踐報(bào)告
- 初二上學(xué)期科技創(chuàng)新計(jì)劃
- 專題研究部編版四年級(jí)上冊(cè)語(yǔ)文教學(xué)計(jì)劃
- 高危孕產(chǎn)婦產(chǎn)時(shí)監(jiān)護(hù)流程
- 2025年陜西省行政執(zhí)法資格考試模擬卷及答案(題型)
- 部編版九年級(jí)語(yǔ)文上冊(cè)教案
- 2023-2024學(xué)年黑龍江省寧安市初中語(yǔ)文七年級(jí)下冊(cè)期末高分通關(guān)試卷
- GB/T 6075.3-2011機(jī)械振動(dòng)在非旋轉(zhuǎn)部件上測(cè)量評(píng)價(jià)機(jī)器的振動(dòng)第3部分:額定功率大于15 kW額定轉(zhuǎn)速在120 r/min至15 000 r/min之間的在現(xiàn)場(chǎng)測(cè)量的工業(yè)機(jī)器
- GB/T 5594.4-2015電子元器件結(jié)構(gòu)陶瓷材料性能測(cè)試方法第4部分:介電常數(shù)和介質(zhì)損耗角正切值測(cè)試方法
- 預(yù)防保健科護(hù)理質(zhì)量控制考核標(biāo)準(zhǔn)
- 起重作業(yè)吊裝令
- 林州重機(jī)710采煤機(jī)電控箱裝配流程
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全管理委員會(huì)及工作職責(zé)
- 個(gè)人求職簡(jiǎn)歷兩頁(yè) (46)應(yīng)聘履歷參考模板可編輯修改
- 統(tǒng)編版小學(xué)語(yǔ)二升三銜接閱讀專項(xiàng)訓(xùn)練—課外閱讀(二)【含答案】
評(píng)論
0/150
提交評(píng)論