itprofes
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Hướng dẫn lập trình Virus(Phần V)

Go down

Hướng dẫn lập trình Virus(Phần V) Empty Hướng dẫn lập trình Virus(Phần V)

Bài gửi  admin 15/4/2010, 8:36 am

Bài viết liên quan: ướng dẫn lập trình Virus(Phần IV)



BÀI 5: TỰ VIẾT CHƯƠNG TRÌNH DIỆT VIRUS

Tôn trọng mục đích của diễn đàn là "hướng thiện" tôi sẽ không đề cập đến nghệ thuật hắc ám nữa ở đây.

1. Để làm được một chương trình diệt VR chúng ta cần gì?
- Một ngôn ngữ lập trình: cái này không thể thiếu được rồi, bạn phải giỏi sử dụng một ngôn ngữ lập trình nào đó. Tuỳ theo sở thích, có thể là C, pascal, vb, ... Ngôn ngữ nào cũng có thể dùng để viết chương trình diệt được cả chỉ có điều chúng ta sẽ diệt cả VR for win nên tốt nhất chọn một ngôn ngữ for win có càng nhiều tính năng can thiệp cấp thấp một chút càng tốt như C, delphi hay vb cũng được
- Kiến thức assembler: tại sao lại phải học thứ khó nhá này vậy? Thứ nhất là vì rất nhiều VR được xây dựng trên ngôn ngữ này, thứ 2 là khi tung VR ra các VXer thường là không đưa source cho bạn coi. Nếu không đọc code của họ dưới dạng mã máy thì làm sao được
- Công cụ debug: sử dụng thành thạo công cụ và tích luỹ cho mình kinh nghiệm debug mã máy rất cần thiết trong quá trình đọc và giải mã VR
-

2. Phân loại virus
Thực ra VR bây giờ phát triển khá đa dạng nên cũng khó đặt ra một định nghĩa chung cho tất cả được. Căn cứ vào các đặc điểm như đối tượng lây nhiễm, cách thức lây nhiễm, kỹ thuật sử dụng và tác hại người ta có thể phân loại ra và định nghĩa ra một số VR chính. Tôi cũng mạn phép phân loại cho các bác thế này:

- Virus boot:
Là một đoạn code có khả năng lây nhiễm vào master boot hoặc boot sector ổ đĩa cứng/mềm. Thay thế đoạn code khởi động máy trên boot. Thường trú và tự sao chép sang boot ổ đĩa khác.
- Virus tệp khả thi:
Là đoạn code có khả năng tự sao chép bản thân nó vào các tệp khả thi của hệ điều hành. Tuỳ theo loại VR overwrite hay không overwrite mà tệp gốc sau lây nhiễm có thể chạy bình thường hoặc không chạy được nữa. Tệp khả thi ở đây là các tệp "chạy được" như .exe, .com trên dos, tệp PE, .dll... trên win, tệp elf trên unix... thậm chí cả các tệp kiểu như .msi
- Worm
Thường là các đoạn script viết cho các ứng dụng web hoặc email. Lây lan bằng cách tự sao chép hoặc dùng email của nạn nhân này email bản thân nó cho các nạn nhân khác. Vì là ở dạng script nên cũng có thể nằm attach trong các trang web.
- Trojan
Đây là một chương trình chạy ngầm ngoài mong muốn của nạn nhân, có thể đọc các thông tin trên máy nạn nhân gửi về ứng dụng chủ hoặc email nào đó. Lây nhiễm do nạn nhân trót chạy tệp chứa trojan (do ai đó gửi). Trojan có thể biến thể thành một số dạng script (program dropper) attach vào trang web để dễ lừa nạn nhân. Trojan cũng có thể thêm bào một số khả năng lấy pass, đọc phím, điều khiển máy tính nạn nhân từ xa, hoặc là một backdoor mở thông các rào cản bảo mật để hacker xâm nhập.
- Macro
Là một ứng dụng macro trên word, excel... có thể tự sao chép khi chạy.
-Các dạng đặc biệt khác
Chiếm số ít kiểu như các worm trên CSDL hay program droper...

Tính năng phá hoại của VR là không bắt buộc, tuy nhiên bản thân VR đã thực thi các thao tác không chính quy. Cho dù không phá hoại vẫn để lại các tác hại như làm chậm máy, làm nghẽn mạng, chiếm dung lượng đĩa... Bản thân VR có thể chọn cho mình một hoặc nhiều đối tượng lây nhiễm khác nhau. Chính vì thế một con VR có thể rơi vào một hay nhiều loại ở trên

3. Vài khái niệm cơ bản
- P-String:
Như ta đã biết, đa số virus đều thể hiện ở dạng đoạn mã nằm “tá túc” trong các chương trình, các tệp .html, .doc... hay trên boot sector/MBR tùy theo loại VR nằm trên máy tính của nạn nhân . Để phát hiện được VR, cách đơn giản nhất là lấy được một đoạn code đặc trưng trên VR, tìm và quét tất cả các tệp trên đĩa (MBR/boot sector) xem có tệp nào chứa đoạn mã này không để xác định xem những tệp nào đã bị nhiễm VR. Yêu cầu của đoạn code mẫu nàu là phải thật đặc trưng cho VR để tránh nhầm lẫn với một chương trình khác. Các đoạn code như vậy được gọi là P-String (pattern string)
- Kỹ thuật mã hóa:
Để nhằm gây khó khăn cho các AVers khi debug và lấy mẫu, các VR thường được mã hóa. Key để mã hóa có thể được lấy động theo thời gian lây nhiễm, kích thước tệp nhiễm... Chính vì vậy toàn bộ code chính của VR thường không duy nhất và đặc trưng được nữa. Tuy vây VR vẫn phải giữ nguyên đoạn code để có thể giải mã VR khi chạy. Các P-String có thể sử dụng các đoạn mã giải code này.
- Kỹ thuật đa hình:
Cố gắng bịt nốt điểm yếu cuối cùng trong kỹ thuật mã hóa, các VXers có thể sử dụng thêm kỹ thuật đa hình. Sử dụng một polymorphic engine, đây mà một hàm được viết nhằm biến đổi một đoạn mã gốc thành nhiều hình thức khác nhau. Các bạn có thể hiểu nôm na khi có một đoạn code, ta có thể đảo vị trí code, chèn thêm các junk code, sử dụng nhiều bộ lệnh cùng chức năng... kết quả tạo ra một tập hợp rất nhiều đoạn code làm cùng chức năng giống nhau nhưng viết khác hẳn nhau. Sử dụng một polymorphic engine như vậy, mỗi bản sao VR tuy có cùng tính năng nhưng code không giống nhau (đa hình). Đặc biệt đoạn code mã hóa VR thường sử dụng kỹ thuật đa hình gây khó khăn rất nhiều cho AVer khi lấy mẫu. Một polymorphic engine có thể tạo ra hàng nghìn đoạn mã khác nhau cho đoạn mã hóa.
- Kỹ thuật Anti-AV
VR có thể sử dụng các kỹ thuật cống debug, chống disassembler, anti-bait... để gây khó khăn khi chẩn đoán VR (xem thêm bài Kỹ thuật lập trình VR – spinx). AVer phải hết sức tỉnh táo khi debug
admin
admin
Thiếu Úy III
Thiếu Úy III

Tổng số bài gửi : 627
Diem : 6557
Thank : 4
Join date : 24/03/2010
Đến từ : Bỉm Sơn - Thanh hóa

https://itprofes.forumvi.com

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết