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

首頁 > 學院 > 開發設計 > 正文

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

2019-11-17 02:53:49
字體:
來源:轉載
供稿:網友

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

在"C#程序集系列08,設置程序集版本"中體驗了為程序集設置版本,但對于程序集的安全性來說,還遠遠不夠。本篇體驗程序集的簽名。

□ 程序集的簽名

→F盤as文件夾下有多個文件51→在程序集所在文件夾創建密匙52→打印密匙53密匙是一堆亂碼,這是經過加密了。→在密匙的基礎上創建公匙Public Key54→打印公匙Public Key55注意:這里的public token是public key經過哈希算法而獲得的。當程序集被引用,該程序集對外是以public token形式存在的。

→現在重新編譯"C#程序集系列08,設置程序集版本"中的Cow.cs,但這次使用密匙56→重新編譯"C#程序集系列08,設置程序集版本"中的MainClass.cs,引用剛創建的Farm.dll57→運行MainClass.exe58→現在模擬一個病毒程序集,首先在F盤的as文件夾中創建CowVirus.cs→用記事本打開CowVirus.cs,編寫如下,保存

using System;
using System.Reflection;
[assembly: AssemblyVersion("3.3.3.3")]
public class Cow
{
    public static void Moo()
    {
        Console.WriteLine("我是病毒");
    }
}

→編譯CowVirus.cs,生成新的Farm.dll,重寫原先的Farm.dll,并且在沒有私匙的情況下59→再次運行MainClass.exe60

可見,病毒程序雖然模擬了一個相同名稱的程序集,但由于沒有簽名,該程序集不會得到主程序的認可。

□ Public Token

如果一個A程序集有public key,且被B程序引用,如果我們反編譯B程序,在B程序的IL代碼中就可以看到A程序集有一個public token,這個public token是根據A程序集的public key經哈希算法而得到的。

→再次重寫Farm.dll,編譯Cow.cs文件,并且使用密匙61→反編譯Farm.dll62來看Farm程序集的清單部分:

.assembly Farm
{
<PRe style="font-size: 11px; font-family: consolas,'Courier New',co
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天峻县| 朝阳县| 新乐市| 辰溪县| 木里| 吉林市| 本溪市| 三河市| 青田县| 宿松县| 蓝田县| 大余县| 毕节市| 曲周县| 含山县| 福鼎市| 阆中市| 贵定县| 凭祥市| 云南省| 云霄县| 西城区| 赞皇县| 桓仁| 玉树县| 永靖县| 民县| 汤原县| 金沙县| 乌兰察布市| 茌平县| 化隆| 浏阳市| 乌苏市| 静安区| 南平市| 沿河| 木兰县| 齐齐哈尔市| 淮滨县| 滕州市|