亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? snreplace.cs

?? 可以替換掉Csharp工程中的強名稱
?? CS
字號:
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms;

public class SNReplace
{
    private byte[] assembly;
    public string assemblyFile;
    private byte[] currentKey;
    public string keyFile;
    public string keyPassWord;
    public string certKey;
    public string rsaKey;
    public string newKeyToken;
    private byte[] newKey;

    /// <summary>
    /// 替換文件字節(jié)
    /// </summary>
    /// <param name="oldBytes">待換字節(jié)</param>
    /// <param name="newBytes">應換字節(jié)</param>
    public string[] replaceBytes(byte[] oldBytes, byte[] newBytes)
    {
        byte num = oldBytes[0];
        bool assemblyChanged = false;
        System.Collections.ArrayList arrReplacePlace = new System.Collections.ArrayList();
        for (int i = 0; i < this.assembly.Length - oldBytes.Length + 1; i++)
        {
            if (this.assembly[i] == num)
            {
                int j = 0;
                for (j = 0; j < oldBytes.Length; j++)
                {
                    if (oldBytes[j] != assembly[i + j]) break;
                }
                if (j == oldBytes.Length)
                {
                    assemblyChanged = true;
                    for (j = 0; j < newBytes.Length; j++)
                    {
                        assembly[i + j] = newBytes[j];
                    }
                    arrReplacePlace.Add("0x" + string.Format("{0:x}", i));
                }
            }
        }
        if (assemblyChanged == true) save();
        string[] replacePlace = new string[arrReplacePlace.Count];
        arrReplacePlace.CopyTo(replacePlace);
        return replacePlace;
    }

    /// <summary>
    /// 從文件中讀取字節(jié)
    /// </summary>
    public void readAssembly()
    {
        using (FileStream stream = File.OpenRead(this.assemblyFile))
        {
            this.assembly = new byte[stream.Length];
            stream.Read(this.assembly, 0, (int)stream.Length);
            stream.Close();
        }
    }

    /// <summary>
    /// 讀取程序集公鑰
    /// </summary>
    /// <returns>是否有公鑰</returns>
    public int readAssemblyKey()
    {
        if ((this.currentKey = AssemblyName.GetAssemblyName(this.assemblyFile).GetPublicKey()) == null)
        {
            return 0;
        }
        return this.currentKey.Length;
    }

    /// <summary>
    /// 從簽名文件中讀取公鑰
    /// </summary>
    public bool readKeys()
    {
        bool success = false;
        FileStream keyPairFile = File.OpenRead(this.keyFile);
        this.certKey = "";
        if (keyFile.ToLower().EndsWith(".snk"))
        {
            try
            {
                this.newKey = new StrongNameKeyPair(keyPairFile).PublicKey;
                this.rsaKey = "";
                foreach (byte bytekey in this.newKey)
                {
                    this.rsaKey += String.Format("{0:x2}", bytekey);
                }
                success = true;
            }
            catch
            {
                success = false;
            }
        }
        else
        {
            try
            {
                System.Security.Cryptography.X509Certificates.X509Certificate2 certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(this.keyFile, this.keyPassWord);
                this.certKey = certificate.GetPublicKeyString();
                System.Security.Cryptography.RSACryptoServiceProvider rsaKey = new System.Security.Cryptography.RSACryptoServiceProvider(1024);
                rsaKey.FromXmlString(certificate.PublicKey.Key.ToXmlString(false));
                this.newKey = new byte[160];
                this.newKey[1] = 0x24;
                this.newKey[4] = 0x4;
                this.newKey[5] = 0x80;
                this.newKey[8] = 0x94;
                rsaKey.ExportCspBlob(false).CopyTo(this.newKey, 12);
                this.newKey[17] = 0x24;
                this.rsaKey = "";
                foreach (byte bytekey in this.newKey)
                {
                    this.rsaKey += String.Format("{0:x2}", bytekey);
                }
                success = true;
            }
            catch
            {
                success = false;
            }
        }
        keyPairFile.Close();
        return success;
    }

    /// <summary>
    /// 調(diào)用sn.exe重簽名
    /// </summary>
    public int resign()
    {
        ProcessStartInfo startInfo = new ProcessStartInfo("sn.exe");
        startInfo.UseShellExecute = false;
        if (this.keyPassWord == "")
            startInfo.CreateNoWindow = true;
        else
            startInfo.CreateNoWindow = false;

        startInfo.Arguments = string.Format("-q -R {0} {1}", this.assemblyFile, this.keyFile);
        try
        {
            Process process = Process.Start(startInfo);
            process.WaitForExit();
            return process.ExitCode;
        }
        catch
        {
            MessageBox.Show("公鑰已被替換,但未能自動重簽名,請手動執(zhí)行sn -R AssemblyFile KeyFile。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return 1;
        }

    }

    /// <summary>
    /// 保存文件
    /// </summary>
    private void save()
    {
        try
        {
            FileStream stream = File.Create(this.assemblyFile);
            stream.Write(this.assembly, 0, this.assembly.Length);
            stream.Close();
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message, "文件保存錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

    /// <summary>
    /// 獲取程序集信息
    /// </summary>
    /// <param name="fname">程序集名稱</param>
    /// <param name="refInfo">信息</param>
    /// <returns>是否有效程序集</returns>
    public bool getAssembInfo(string fname, ref ReferenceInfos refInfo)
    {
        FileStream fs = null;
        byte[] bfile = null;
        bool success = false;
        try
        {
            fs = new FileStream(fname, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            bfile = new byte[fs.Length];
            fs.Read(bfile, 0, (int)fs.Length);
            refInfo.tokenByte = Assembly.Load(bfile).GetName().GetPublicKeyToken();
            refInfo.assemblyName = Assembly.Load(bfile).GetName().Name;
            AssemblyName[] referencenames = Assembly.Load(bfile).GetReferencedAssemblies();
            refInfo.assemblyReference = new string[referencenames.Length];
            for (int i = 0; i < referencenames.Length; i++)
            {
                refInfo.assemblyReference[i] = referencenames[i].Name;
            }
            refInfo.tokenText = "";
            foreach (byte b in refInfo.tokenByte)
            {
                refInfo.tokenText += string.Format("{0:x2}", b);
            }
            char[] tokenChars = refInfo.tokenText.ToCharArray();
            refInfo.tokenString = new byte[tokenChars.Length];
            for (int i = 0; i < tokenChars.Length; i++)
            {
                refInfo.tokenString[i] = (byte)tokenChars[i];
            }
            success = true;
        }
        catch (Exception ex)
        {
            MessageBox.Show("在讀取程序集:" + fname + "時發(fā)生錯誤\r\n" + ex.InnerException.Message, "文件讀取錯誤",MessageBoxButtons.OK,MessageBoxIcon.Error);
        }
        fs.Close();
        return success;
    }
    /// <summary>
    /// 執(zhí)行替換
    /// </summary>
    public string[] Replace()
    {
        if (this.readAssemblyKey() == 0) return null;
        this.readKeys(); ;
        this.readAssembly();
        string[] publicKeyPlace = this.replaceBytes(this.currentKey, this.newKey);
        this.save();
        return publicKeyPlace;
    }
}
public struct ReferenceInfos
{
    public string filePath;
    public string assemblyName;
    public string[] assemblyReference;
    public byte[] tokenByte;
    public byte[] tokenString;
    public string tokenText;
}
public struct LogInfos
{
    public string filePath;
    public string assemblyName;
    public string[] keyReplacePosition;
    public string oldToken;
    public string[] tokenByteReplacePosition;
    public string[] tokenStringReplacePositon;
    public int resignSuccess;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色欧美综合狠狠 | 国产一区中文字幕| 亚洲精品视频在线| 性做久久久久久免费观看| 免费在线成人网| 日韩制服丝袜先锋影音| 日韩和欧美一区二区| 国产盗摄女厕一区二区三区| 99九九99九九九视频精品| 欧美丝袜第三区| 国产性做久久久久久| 亚洲一区二区三区四区五区中文| 亚洲第一在线综合网站| 久久精工是国产品牌吗| 色噜噜狠狠色综合欧洲selulu| 欧美精品乱码久久久久久| 欧美国产国产综合| 蜜臀av在线播放一区二区三区| 激情亚洲综合在线| 色综合久久久久综合体桃花网| 欧美日韩亚洲综合一区| 亚洲日本丝袜连裤袜办公室| 国产精品美女久久久久久久久久久| 亚洲一区二区四区蜜桃| 国产成人三级在线观看| 91精品国产综合久久福利| 国产日韩精品一区二区三区| 蜜桃一区二区三区在线| 欧美丝袜自拍制服另类| 中文一区在线播放| 国产麻豆91精品| 9191久久久久久久久久久| 国产精品高潮呻吟| 国产自产视频一区二区三区| 91精品在线麻豆| 亚洲va在线va天堂| 久久国产精品99精品国产| 欧美三级乱人伦电影| 亚洲人成人一区二区在线观看 | 精品电影一区二区三区| 国产精品婷婷午夜在线观看| 一区二区在线免费观看| 欧美男男青年gay1069videost | 亚洲1区2区3区视频| 色综合久久久久网| 中文字幕欧美日本乱码一线二线| 激情综合色综合久久| 一本久久a久久免费精品不卡| 国产午夜亚洲精品不卡| 婷婷综合五月天| 欧美男女性生活在线直播观看| 亚洲一区二区三区四区在线免费观看| 国产精品自在在线| 欧美一区二区福利视频| 日本美女一区二区| 精品国产乱码久久久久久夜甘婷婷 | 制服.丝袜.亚洲.中文.综合| 亚洲成人免费av| 成人免费高清在线观看| 久久久777精品电影网影网| 久久se精品一区二区| 日韩精品在线一区| 青青草原综合久久大伊人精品| 91.com视频| 激情欧美一区二区| 国产精品五月天| 在线免费观看成人短视频| 国产精品卡一卡二| 欧美性感一类影片在线播放| 亚洲免费av高清| 99视频超级精品| 亚洲一区二区三区四区五区黄| 91精品国产色综合久久久蜜香臀| 加勒比av一区二区| 欧美一级理论片| 国产精品资源在线看| 亚洲色图19p| 色天天综合久久久久综合片| 免费日韩伦理电影| 国产精品区一区二区三区| 日本电影欧美片| 久久国产免费看| 亚洲男人天堂av| 日韩午夜小视频| 懂色av中文一区二区三区| 免费成人在线播放| 亚洲一区在线电影| 国产精品第四页| 久久亚洲春色中文字幕久久久| 欧美日韩一区不卡| caoporn国产精品| 国产原创一区二区| 麻豆国产精品官网| 琪琪久久久久日韩精品| 一区二区三区国产精华| 成人欧美一区二区三区视频网页 | 视频一区二区三区在线| 亚洲欧美在线高清| 国产精品天天摸av网| 26uuu精品一区二区三区四区在线| 91福利国产精品| 色视频欧美一区二区三区| www.欧美日韩国产在线| 国产a精品视频| 国产成人精品一区二| 国产一区二区三区av电影| 久久99最新地址| 美女一区二区在线观看| 日本三级亚洲精品| 视频一区二区三区入口| 婷婷开心激情综合| 青青草原综合久久大伊人精品| 日韩电影免费一区| 日韩黄色在线观看| 日本中文字幕一区二区视频| 午夜精品久久久久久久99水蜜桃| 亚洲一二三级电影| 视频一区欧美日韩| 久久疯狂做爰流白浆xx| 精品一区二区三区在线播放 | www.欧美日韩国产在线| av男人天堂一区| 91久久人澡人人添人人爽欧美| 欧美优质美女网站| 欧美日韩激情一区二区三区| 欧美一级午夜免费电影| 日韩欧美国产综合| 国产视频一区二区在线观看| 日本一区二区动态图| 亚洲欧美日韩国产成人精品影院 | 国产欧美综合在线观看第十页| 久久久国产午夜精品| 中文字幕乱码一区二区免费| 亚洲精品菠萝久久久久久久| 五月婷婷激情综合| 国产乱对白刺激视频不卡| 成人黄色777网| 欧美日韩一级视频| 国产亚洲精品久| 亚洲激情五月婷婷| 美女高潮久久久| 99精品久久久久久| 538prom精品视频线放| 国产三区在线成人av| 亚洲女女做受ⅹxx高潮| 蜜桃视频一区二区三区在线观看| 国产91精品欧美| 欧美视频在线观看一区| 久久午夜老司机| 亚洲午夜成aⅴ人片| 精品一区二区精品| 在线一区二区三区四区五区| 日韩你懂的电影在线观看| 欧美激情一区不卡| 青青草伊人久久| 91最新地址在线播放| 欧美成va人片在线观看| 亚洲精品视频在线观看免费| 国产一区二区三区视频在线播放| 色综合久久久久久久| 精品播放一区二区| 婷婷六月综合网| 91在线高清观看| 久久久久久97三级| 91毛片在线观看| 久久精品在这里| 午夜一区二区三区视频| 北岛玲一区二区三区四区| 日韩一级二级三级精品视频| 亚洲视频在线观看一区| 国产在线看一区| 欧美精品乱码久久久久久| 亚洲情趣在线观看| 成人一道本在线| 久久婷婷一区二区三区| 日本亚洲视频在线| 欧美日韩国产一级片| 亚洲免费在线播放| 成人av影视在线观看| 久久久噜噜噜久噜久久综合| 蜜桃av一区二区三区| 欧美日韩高清影院| 亚洲美女免费在线| 99久久99久久精品国产片果冻 | 国产欧美日韩在线视频| 青青草视频一区| 欧美日韩国产三级| 亚洲国产成人91porn| 日本精品一区二区三区四区的功能| 久久久久久久久久久99999| 青青青爽久久午夜综合久久午夜| 在线免费观看一区| 一区二区在线免费| 欧美在线不卡一区| 亚洲一二三四区不卡| 91免费版在线看| 亚洲天堂成人在线观看| 99久久综合精品| 亚洲视频在线一区| 欧美性大战久久久久久久|