Trao đổi với tôi

http://www.buidao.com

7/29/09

[Virus] Kỳ 1 Lập trình virus với VC++

Kỳ 1 Lập trình virus với VC++
Link: http://forums.congdongcviet.com/showthread.php?t=12632

hjhj,ngồi Cviet dạo này chán qué,mấy bác hình như đi ôn thi hết lượt, Spam chút ít,bài mình post trên virusvn roài giờ post lại đây có gì kém cỏi anh em thông cảm nhé:D

Lời tựa:
Trích dẫn:

Đầu tiên mình xin khẳng định quan điểm viết virus không phải là xấu,nó chỉ xấu khi được phát tán ra bên ngoài,để viết được virus có chất lượng nó cần ở người viết rất nhiều kiến thức khác nhau,đặc biệt là am hiểu về lập trình hệ thống,các cơ chế của hệ thống,vì vậy với bài viết này đơn giản mình chỉ muốn học hỏi ,chia sẻ kiến thức hệ thống thôi,bài viết không mang ý nghĩa hướng dẫn phá hoại
Công cụ
Trích dẫn:

IDE vc++6.0 -> công cụ lập trình chính
máy ảo VMWARE -> soát lỗi và đưa vào ứng dụng
Các mẫu virus đã tham khảo:
Ckvo.exe,image.exe,hinhem.exe ….

Ý tưởng

Mục tiêu tấn công:

Trích dẫn:

Mục tiêu tấn công của virus là các file tự chạy ( .EXE ) trên toàn bộ máy tính,mong muốn của tôi là biến toàn bộ các file exe trên máy trở thành virus với tên của nó được giữ nguyên
Phương thức tấn công :

Trích dẫn:

- Virus sau khi được kích hoạt sẽ tự động liệt kê các ổ đĩa có trong máy tính,sau đó sẽ sử xây dựng 1 hàm kiểm tra các ổ nào là ổ có chứa dung lượng thật ( là những ổ cứng và USB … không có CD)
- Xây dựng hàm kiểm tra có phải là file exe hay không,sau đó duyệt đệ quy các ổ có chứa dung lượng thật
- Xây dựng hàm tạo file autorun.inf,tạo file autorun.inf tại tất cả các ổ đĩa có dung lượng thật
Thiết kế
Trích dẫn:

Ý tưởng của chương trình khá lớn vì vậy đơn giản nhất để phát triển nó là xây dựng trên các class với những nhiệm vụ khác nhau,chủ yếu với virus thì nên chia thành 3 nhiệm vụ: tấn công,phòng thù và lây lan
- Class lây lan sẽ chịu trách nhiệm lây lan của virus,trong con virus này ta chỉ kể đến việc lây lan qua USB ,cụ thể khi ta cắm usb vào máy tính,lập tức virus được copy vào usb,và toàn bộ dữ liệu của usb

• int nhanrausb(void); hàm nhận ra usb ,khi usb được cắm vào máy tính chương trình sẽ tự động nhận ra usb,copy file autorun.inf và chính file virus

• int copyvirus(char *tendia); hàm copy file file virus vào tất cả các ổ đĩa có dung lượng thật
• int lietkeodia(void); hàm liệt kê tất cả các ổ đĩa,bao gồm cả ổ đĩa có dung lượng thật và ổ đĩa có dung lượng ảo
• friend char* tenvirus(void); hàm lấy đường dẫn của virus
tancong với khả năng khảo sát toàn bộ các ổ cứng có dung lượng thật ,nếu phát hiện ra file exe nào lập tức xóa nó đi,thay vào đó file virus,với tên vẫn là tên của file exe ban đầu
* int duyetdequy(char *odia); như đã nói hàm để có thể tấn công toàn bộ các file exe trong ổ cứng

* bool kiemtraprocess(char *tenfile); hàm này có bug,mục đích của mình là kiểm tra xem file exe có được dùng không
* hàm kiểm tra có phải là file exe hay không để tấn công


• Hàm bạn lấy kiểm tra có phải là thư mục hay không


- Class phong thủ chịu trách nhiệm duy trì sự hiện diện của virus trên máy tính,vì thế nó sẽ phải làm những nhiệm vụ như khởi động cùng máy tính( mỗi khi máy được khởi động ) ,chặn Taskmanager để tránh việc endTask virus,trong các phiên bản sau mình sẽ phát triển thêm khả năng tự bảo vệ trước việc bị endTask từ các công cụ chuyên dụng như processXP…

• void khoidong(void); với vai trò khởi động cùng windows( mình chỉ cần thay đổi registry thôi chính là khóa này HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\ CurrentVersion\\Run",0,KEY_ALL_ACCESS

void taskmanager(void); với vai trò khóa taskmanager chính là khóa này HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\C urrentVersion\\Policies\\System
void vohieuhoarun(); như tên hàm,đây là nơi chịu trách nhiệm vô hiệu hóa run ở khóa này HKEY_LOCAL_MACHINE,"Software\\microsoft\\windowns\ \CurrentVersion\\policies\\Exploer


hàm kiểm tra ổ có dung lượng thật hay không và hàm kiểm tra xem virus trong máy tính đã có chưa,nếu chưa có thì chạy,nếu có rồi thì ngừng
còn đây là mẫu sau khi được biên dịch và nén lại bằng UPX -> giảm 1 nửa dung lượng
http://www.4shared.com/file/70389175...f6/_2__dt.html

note: thử trên máy ảo nhé

nếu chưa có máy ảo thì down ở đây,mình thì mình thích dùng VMware hơn,nó có thể phục hồi rất nhanh ( giống như ghost )
http://www.microsoft.com/windows/dow...c/default.mspx