我遇到了一些问题,其他问题对我没有多大帮助。在分隔符处分割一个字节数组
我是一名安全专业的学生,我正在努力为一个项目写一篇作文。对于那些不知道这是什么的人,你可以在这里阅读。 http://www.gamekiller.net/tutorials-guides/17187-tut-making-crypter-vb6-using-rc4.html
不管怎么说,一个快速的解释,crypters是指通过加密程序,然后贴上一个“存根”,它是解密,在前面的程序以绕过反病毒程序。我在分割文件时遇到了一个令人讨厌的问题。
令人烦恼的是,我必须将加密的可执行文件放入字节数组中,因为字符串会杀死我的加密可执行文件中的某些字符,使其无法执行。更糟糕的是,我仍然需要“分割”exe文件,这是麻烦开始的地方。
存根的基本思路是:
- 获取当前exe文件路径
- 通过File.ReadAllytes
- 分割在分隔符的文件,“EVILDELIMITER” 阅读所有字节
- 获取最后一个字段(因为那是加密的EXE)
- 使用RC4解密它
- 使用RunPE运行。
我有一切工作,除了拆分部分,这是最烦人的。如何在分隔符处分割一个字节数组?有没有更简单的方法来做到这一点?
这是我迄今为止存根的代码。
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);
}
感谢您的任何帮助。
编码为UTF8并不理想。你可以得到无效的Unicode码点。你应该尝试遍历字节数组。 – Polynomial 2012-03-18 00:53:52
如何将字符串更改为字节数组?我需要改变我的分隔符,才能搜索它,除非你知道一个函数可以让我通过字符串值来搜索字节数组。我还修复了代码,我不小心使用了我的旧版本。 – redcodefinal 2012-03-18 00:56:19
@Roger它引发了一堆错误:(它说字符串没有ToArray()方法。 –
redcodefinal
2012-03-18 01:04:16