首页 > 解决方案 > 创建 .EXE 的副本,但替换名称和 GUID

问题描述

我有一个名为“Niop”的程序,我需要以编程方式将“Niop”一词的所有痕迹更改为“Juop”。所以我一直在解决这个问题的方法是在 Visual Studio 中打开它,执行 Ctrl-F 并将所有字符串从“Niop”替换为“Juop”,然后转到属性并手动更改 GUID 以及任何其他“尼奥普”。

我尝试将 exe 转换为 base64 并将所有“TmlvcA”(Niop)替换为“SnVvcA”(Juop),但是当我打开程序时,它仍然被称为“Niop.exe”并且所有属性仍然显示“Niop”。

我试图以某种方式进入 exe 并以编程方式更改这些。

    private void RetoneForm_Load(object sender, EventArgs e)
    {
        num1 = File.ReadAllText("retone.txt"); //EXE in Base64

        name = Regex.Match(num1, @"HRvbmkA(.*?)AYWRkX").Groups[1].Value + "="; //Find "Niop"
        guid = Regex.Match(num1, @"ApAQAk(.*?)AAAMAQ").Groups[1].Value; //Find GUID

        txtName.Text = Encoding.UTF8.GetString(Convert.FromBase64String(name));
        txtGUID.Text = Encoding.UTF8.GetString(Convert.FromBase64String(guid));
    }

    private void bRetone_Click(object sender, EventArgs e)
    {
        string name2 = Convert.ToBase64String(Encoding.UTF8.GetBytes(txtName.Text)).Trim('=');
        string guid2 = Convert.ToBase64String(Encoding.UTF8.GetBytes(txtGUID.Text));

        string num2 = Regex.Replace(num1, name.Trim('='), name2); //replace "Niop" with "Juop"
               num2 = Regex.Replace(num2, guid, guid2); //replace GUID

        Clipboard.SetText(num2); //new Base64
    }

我还将 EXE 拖入十六进制编辑器并尝试以这种方式替换值,这确实改变了“Niop”的所有痕迹,但一些字符变成了小方块。

我知道我不能使用 base64 来做到这一点,关于如何实现这一点的任何想法?

标签: c#programmatically

解决方案


推荐阅读