2.3.Kỹ thuật rẽ nhánh:

Một phần của tài liệu Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm (Trang 34 - 39)

III. Các kỹ thuật vượt qua Phần mềm phòng chống mã độc Trong cấu trúc File Header, một số thành phần cần lưu ý đó là:

2.3.Kỹ thuật rẽ nhánh:

• Chương trình được tạo ra với nhiều điểm kiểm tra ngẫu nhiên bằng các lệnh nhảy có điều kiện (JNE, JNZ…).

Hình 21: Hoạt động chương trình khi có và không rẽ nhánh

4/25/16 MSEC

III. Các kỹ thuật vượt qua Phần mềm phòng chống mã độc độc

2.4. Sử dụng Stub để giải mã và thực thi trên bộ nhớ.

4/25/16 MSEC 35

Tệp tin nhị phân mới được tạo ra có hai phần, phần thứ nhất gọi là Stub, phần này sẽ chịu trách nhiệm cho việc giải mã và thực thi mã độc trên bộ nhớ. Phần thứ hai là phần Payload, phần này chính là mã độc đã được mã hóa, có rất nhiều giải thuật có thể lựa chọn.

III. Các kỹ thuật vượt qua Phần mềm phòng chống mã độc độc

4/25/16 MSEC 36

2.4. Sử dụng Stub để giải mã và thực thi trên bộ nhớ.

- Thêm Junk code để chỉnh sửa luồng chạy. - Thay đổi hoặc mã hóa chuỗi.

- Thay đổi tên biến.

- Thay đổi thứ tự vẻ bề ngoài của mã. - Thêm hoặc đổi icon.

- Mã hóa toàn bộ chuỗi biến và kể cả payload cũng với thuật toán mã hóa dữ liệu theo tiêu chuẩn.

- Làm rối toàn bộ hàm gọi API khả nghi.

- Khiến cho độ dài của tất cả các phần tử ở phía đuôi thay đổi, không thể dự đoán được.

- Xóa toàn bộ những chuỗi không cần thiết và ẩn các nguồn có thể là dấu hiệu nhận diện bởi Antivirus.

III. Các kỹ thuật vượt qua Phần mềm phòng chống mã độc độc

2.5. Kỹ thuật PRIDE (Pseudo-Random Index Decryption).

Mục đích của kỹ thuật này bảo vệ virus trước phương pháp heuristic. Ngay cả với việc thay đổi hướng thực hiện của thủ tục giải mã.

4/25/16 MSEC 37

- Data: là địa chỉ bộ đệm bên trong chứa dữ liệu của virus.

- Tuần tự đọc dữ liệu và tạo ra một bộ đệm mới chứa các dữ liệu được giải mã. - Kiểm soát mã lệnh mới được giải mã.

PRIDE bao gồm việc giải mã một cách ngẫu nhiênkhông theo thứ tự, byte 10 được giải mã, byte 25 được giải mã, byte 7 được giải mã cứ như vậy. Kiểu truy cập vào bộ nhớ như thế sẽ giống với với truy cập bộ nhớ của một ứng dụng bình thường. Đồng thời kỹ thuật này sẽ củng cố hơn tính đa hình

III. Các kỹ thuật vượt qua Phần mềm phòng chống mã độc độc

4/25/16 MSEC 38

pride_start = (size_of_data - 4) & random (); pride_step = (size_of_data - 8) & random (); pride_key = get_random_key ();

MOV CR, pride_start

MOV IR, val ; val = (size_of_data - 4) & random() MOV BR, val’ ; val’ = random()

PUSH IRXOR IR, CR XOR IR, CR

MOV BR, [IR + source]

XOR BR, key ; or ADD BR, +/- key ; or nothing (no decryption) ADD IR, dest

MOV [IR], BR ; write the decrypted dword POP IR

ADD CR, val ; CR += [4;7]

AND CR, val’ ; val’ = ((random() &

; ˜size_of_data) | (size_of_data-4)) & -4 ; (-> CR := (CR % size_of_code) & FFFFFFFCh) ADD IR, pride_step

AND IR, val’’ ; val’’ = ((random() &

; ˜size_of_data) | (size_of_data-1)) & -1 ; (-> IR := IR % size_of_code)

CMP CR, pride_start

JNZ <?>; jump at a random branch

2.5. Kỹ thuật PRIDE (Pseudo-Random Index Decryption)

size_of_data là kích thước của dữ liệu được mã hóa. Đầu tiên thuật toán khởi tạo biến số

Sau đó nó sẽ khởi tạo thanh ghi sử dụng trong quá trình giải mã:

III. Các kỹ thuật vượt qua Phần mềm phòng chống mã độc

Một phần của tài liệu Nghiên cứu một số kỹ thuật sinh mã độc tự động và vượt qua phần mềm (Trang 34 - 39)

Tải bản đầy đủ (PPTX)

(52 trang)