我试图在c#中构建一个应用程序,我将exe转换为十六进制,然后分配给字符串hexo,我需要应用程序在系统重启时自动运行,而我遇到的另一个问题是应用程序断开并给出我的错误,它已停止工作或无效的胜利32申请。
我的完整程序代码在pastebin上,请看看伙伴,请告诉我启动代码以及我应该在哪里添加启动代码并可能帮助我解决应用程序崩溃错误。
我在visual studio 2015中使用Windows窗体和.NET Framework 4.5.2。
这是我的代码:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string hexo = ""; //Removed binary
byte[] byt = StringToByteArrayFastest(hexo);
Assembly a = Assembly.Load(byt);
MethodInfo m = a.EntryPoint;
var parameters = m.GetParameters().Length == 0 ? null : new[] { new string[0] };
m.Invoke(null, parameters);
}
public static byte[] StringToByteArrayFastest(string hex)
{
if (hex.Length % 2 == 1)
throw new Exception("The binary key cannot have an odd number of digits");
byte[] arr = new byte[hex.Length >> 1];
for (int i = 0; i < hex.Length >> 1; ++i)
{
arr[i] = (byte)((GetHexVal(hex[i << 1]) << 4) + (GetHexVal(hex[(i << 1) + 1])));
}
return arr;
}
public static int GetHexVal(char hex)
{
int val = (int)hex;
//For uppercase A-F letters:
return val - (val < 58 ? 48 : 55);
//For lowercase a-f letters:
//return val - (val < 58 ? 48 : 87);
//Or the two combined, but a bit slower:
//return val - (val < 58 ? 48 : (val < 97 ? 55 : 87));
}
}