Tôi đang gặp vấn đề và các câu hỏi khác ở đây không giúp ích nhiều cho tôi.Tách một mảng byte tại dấu phân cách
Tôi là một sinh viên bảo mật và tôi đang cố gắng viết một crypter cho một dự án. Đối với những người không biết những gì nó là bạn có thể đọc lên ở đây. http://www.gamekiller.net/tutorials-guides/17187-tut-making-crypter-vb6-using-rc4.html
Dù sao, giải thích nhanh, crypters là chương trình có nghĩa là bỏ qua các chương trình diệt virus bằng cách mã hóa chương trình và sau đó gắn "sơ khai" là chương trình giải mã nó ở mặt trước. Tôi đang gặp vấn đề rất khó chịu khi chia nhỏ tệp của mình.
Sự khó chịu lớn nhất là tôi phải đặt tệp thực thi được mã hóa vào một mảng byte, vì các chuỗi ký tự giết các ký tự nhất định trong tệp thực thi được mã hóa của tôi, làm cho nó không thể thực hiện được. Để làm cho vấn đề tồi tệ hơn tôi vẫn phải "tách" exe và, đây là nơi rắc rối bắt đầu.
Ý tưởng cơ bản của sơ khai là:
- Lấy con đường exe hiện
- Đọc tất cả các byte thông qua File.ReadAllytes
- Chia file tại delimiter, "EVILDELIMITER"
- Lấy trường cuối cùng (Vì đó là EXE được mã hóa)
- Giải mã nó bằng cách sử dụng RC4
- Chạy bằng RunPE.
Tôi có mọi thứ hoạt động ngoại trừ phần tách, là phần gây phiền nhiễu nhất. Làm thế nào để phân chia một mảng byte tại dấu phân cách? Có cách nào dễ hơn để thực hiện việc này không?
Đây là mã cho bài tôi có cho đến nay.
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);
}
Cảm ơn bạn đã được trợ giúp.
Mã hóa thành UTF8 không lý tưởng. Bạn có thể nhận được codepoints unicode không hợp lệ. Bạn nên thử lặp qua mảng byte. – Polynomial
Làm cách nào để thay đổi chuỗi của tôi thành mảng byte? Tôi cần phải thay đổi dấu phân cách của mình trước khi tôi có thể tìm kiếm nó trừ khi bạn biết một hàm sẽ cho phép tôi tìm kiếm thông qua một mảng byte với một giá trị chuỗi. Tôi cũng đã sửa mã, tôi vô tình sử dụng một phiên bản cũ mà tôi có. – redcodefinal
@Roger Nó ném một loạt các lỗi vào tôi: (Nó nói chuỗi không có một ToArray() phương pháp –
redcodefinal