国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C#程序集系列10,強(qiáng)名稱(chēng)程序集

2019-11-17 02:53:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C#程序集系列10,強(qiáng)名稱(chēng)程序集

當(dāng)一個(gè)程序集的名稱(chēng),版本,文化,Public Key都做了設(shè)置,就可以把這個(gè)程序集叫做"強(qiáng)名稱(chēng)程序集"。強(qiáng)名稱(chēng)程序集可以防止被仿冒或篡改。本篇首先創(chuàng)建一個(gè)強(qiáng)名稱(chēng)程序集,接著模擬篡改程序集,看看最終結(jié)果如何?

□ 創(chuàng)建一個(gè)強(qiáng)名稱(chēng)程序集

→在"C#程序集系列08,設(shè)置程序集版本"和"C#程序集系列09,程序集簽名"中,在F盤(pán)的as文件夾中創(chuàng)建了一些文件→刪除所有除了.cs類(lèi)型的所有文件→創(chuàng)建一個(gè)密匙66→編譯Cow.cs,并用密匙簽名67→編譯MainClass.cs,引用剛創(chuàng)建的Farm.dll68→運(yùn)行MainClass.exe69

□ 模擬篡改程序集

→在F盤(pán)as文件夾中創(chuàng)建Bad.cs文件→用記事本打開(kāi),編寫(xiě)如下,保存

using System.IO;
class Bad
{
    static void Main()
    {
        //把Farm.dll程序集放到流中
        Stream victim = File.Open("F://as//Farm.dll", FileMode.Open);
        byte[] buffer = new byte[victim.Length];
        //把流中的內(nèi)容讀到數(shù)組中
        victim.Read(buffer, 0, buffer.Length);
        //篡改數(shù)組中的一個(gè)元素,使用取反位操作符
        buffer[1000] = (byte)(~buffer[1000]);
        victim.Seek(0, SeekOrigin.Begin);
        //把字節(jié)數(shù)組重新寫(xiě)回到流中
        victim.Write(buffer, 0, buffer.Length);
        victim.Flush();
        victim.Close();
    }
}

→把Bad.cs編譯成可執(zhí)行文件71→運(yùn)行Bad.exe,篡改了Farm.dll中的某些字節(jié)→再次運(yùn)行MainClass.exe73

總結(jié):強(qiáng)名稱(chēng)程序集即使被篡改,也得不到主程序的認(rèn)可。

“C#程序集系列”包括:

C#程序集系列01,用記事本編寫(xiě)C#,IL代碼,用DOS命令編譯程序集,運(yùn)行程序

C#程序集系列02,使用記事本查看可執(zhí)行程序集的IL代碼

C#程序集系列03,引用多個(gè)module

C#程序集系列04,在程序集包含多個(gè)module的場(chǎng)景下理解關(guān)鍵字internal

C#程序集系列05,讓程序集包含多個(gè)module

C#程序集系列06,程序集清單,EXE和DLL的區(qū)別

C#程序集系列07,篡改程序集

C#程序集系列08,設(shè)置程序集版本

C#程序集系列09,程序集簽名

C#程序集系列10,強(qiáng)名稱(chēng)程序集

C#程序集系列11,全局程序集緩存

C#程序集系列12,C#編譯器和CLR如何找尋程序集

C#程序集系列13,如何讓CLR選擇不同版本的程序集

參考資料:

http://www.computersciencevideos.org/ created by Jamie King


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 呼玛县| 蒙山县| 木兰县| 沁阳市| 汝阳县| 嘉鱼县| 济南市| 平定县| 巴塘县| 青冈县| 麻栗坡县| 竹山县| 永胜县| 游戏| 唐海县| 元江| 武功县| 福泉市| 天等县| 邵阳市| 高雄市| 兴安县| 高淳县| 兴仁县| 鄂托克旗| 区。| 九江市| 和静县| 久治县| 永安市| 军事| 交口县| 镇江市| 会昌县| 林西县| 汾西县| 青海省| 梨树县| 祁东县| 汉阴县| 濉溪县|