Danh mục

Lập trình Virus bằng ngôn ngữ assemble

Số trang: 11      Loại file: doc      Dung lượng: 67.00 KB      Lượt xem: 9      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bạn có muốn trở thành VXer? Mục đích bài này tôi muốn giới thiệu cho newbievề cách viết VR. Yêu cầu trước hết là biết lập trình ASM. Đoạn ấy tôikhông hướng dẫn được các bác tự mua sách học lấy. Tôi không đưa dạngtừng lệnh một đâu. Làm như vậy mất hết tính sáng tạo của mọi người đi.Chúng ta sẽ bắt đầu từ các định nghĩa cơ bản. Xin lỗi chua thêm 1 câu: suynghĩ kỹ khi thực hành, tôi không chịu trách nhiệm về những gì các bác làm Bạn có muốn trở thành VXer? Mục đích...
Nội dung trích xuất từ tài liệu:
Lập trình Virus bằng ngôn ngữ assemble Lập trình Virus bằng ngôn ngữ assembleFRIDAY, 23. NOVEMBER 2007, 13:58:53Bạn có muốn trở thành VXer? Mục đích bài này tôi muốn giới thiệu cho newbievề cách viết VR. Yêu cầu trước hết là biết lập trình ASM. Đoạn ấy tôikhông hướng dẫn được các bác tự mua sách học lấy. Tôi không đưa dạngtừng lệnh một đâu. Làm như vậy mất hết tính sáng tạo của mọi người đi.Chúng ta sẽ bắt đầu từ các định nghĩa cơ bản. Xin lỗi chua thêm 1 câu: suynghĩ kỹ khi thực hành, tôi không chịu trách nhiệm về những gì các bác làmBạn có muốn trở thành VXer? Mục đích bài này tôi muốn giới thiệu cho newbievề cách viết VR. Yêu cầu trước hết là biết lập trình ASM. Đoạn ấy tôikhông hướng dẫn được các bác tự mua sách học lấy. Tôi không đưa dạngtừng lệnh một đâu. Làm như vậy mất hết tính sáng tạo của mọi người đi.Chúng ta sẽ bắt đầu từ các định nghĩa cơ bản. Xin lỗi chua thêm 1 câu: suynghĩ kỹ khi thực hành, tôi không chịu trách nhiệm về những gì các bác làmBÀI 1:VR là gì?E hèm... cũng khó đấy vì trong thực tế VR HẾT SỨC ĐA DẠNG. Tuy nhiên ta cóthể định nghiã nôm na VR là một đoạn code có khả năng tự sao chép, nhân bản(không đúng với trojan lắm nhỉ ). VR có thể nằm trong các tệp khả thi(executable files) như COM hoặc EXE, boot sector, MBR...Chọn ngôn ngữ lập trìnhThông thường VR được xây dựng bằng Assembler nhưng không nhất thiết như vậy.VR trên thực tế có thể xây dựng bằng Pascal, C, VB... thậm chí có VR còn đượcviết bằng tệp BAT. Tuy vậy tôi khuyên nên chọn ASM với các lý do sau:Kích thước nhỏ: ngôn ngữ ASM sẽ cho ta khả năng lập trình với kích thướcnhỏ nhất có thể. Đây là một đặc tính quan trong của VR. Bằng ASM ta sẽ bớtđi rất nhiều code không cần thiết và trùng lặp do các trình biên dịch ngônngữ bậc cao sinh ra. Trong quá trình tối ưu mã code ta có thể tối ưu đến từngbyte mã lệnh. Lựa chọn các lệnh có cùng kết quả với kích thước nhỏnhất....Khả năng kiểm soát: Ta có thể kiểm soát từng lệnh, move code từ vị trí nàysang vị trí khác, vừa chạy vừa patch code ( patch on-the-fly ). Mã hoá code từngphần ....Tính linh hoạt: đây là ưu điểm mạnh nhất của ASM khi lập trình. Là một ngônngữ phi cấu trúc, khả năng sáng tạo trên ASM là không bị giới hạn.Cuối cùng nhiều khi VR không hoàn toàn là một chương trình (boot VR chẳng hạn)nên chẳng có lý do gì để chọn một ngôn ngữ bâc cao cả trừ phi bạn quálười.Một Vxer cần có gìNhư vậy, hãy trang bị cho mình chút kiến thức về ASM rồi ta bắt tay với vàicông cụ tối thiểu sau:Chương trình dịch ASM. Bạn có thể chọn TASM, MASM hoặc một chương trình dịchbất kỳ tuỳ thích. Nói chung với tasm 3.1 là đủ với một dos VRChương trình link. Có thể là Tlink hoặc link.exeMột tool debuger. Có nhiều lắm, debug, symdeb... (dos) softice, win32dasm... (win)Một chương trình soạn text (quickedit, notepad, utraedit....)Kiếm vài mẫu VR cơ bản, đừng bắt đầu từ VR phức tạp quá nếu không bạnsẽ mệt mỏi vì debug thuật toán mã hoá và vượt qua một đống mã anti-debug.Kiếm vài con cô cổ như LittleGirl, onehalf...Tool dump bộ nhớ. Nếu không có thì sài tạm chức năng của debuger vậyBảng tra cứu ngắt trong vài quyển lập trình hệ thống hoặc dùng tech-helpChương trình diệt VR (các AV xịn chứ không phải BKAV đâu) để kiểm tra xem VRcủa bạn đã thực sự tàng hình trước các kiểm tra heuristic chưaEmail của tôi nếu cần giúp đỡCòn gì không nhỉ? Thôi tạm thế đãCó một điều Vxer nên ghi nhớ KHÔNG MÁY MÓC. Bạn đã biết làm VR nhưng đừngmáy móc theo dập khuôn. Sáng tạo càng kỳ quặc VR của bạn càng nguy hiểm. Đảocode đi thoải mái miễn đạt kết quả. Nghĩ ra càng nhiều tips & trịck càng tốt.Tôi hy vọng sẽ lần lượt giới thiệu đủ các VR file trên dos, boot VR, VR filetrên win, VR file trên Linux, trojan và cuối cùng là VR trên nhiều hệ điều hànhDOS-WIN-UNIX.Ta bắt đầu với một VR file đơn giản. Một VR file thường làm gì:1. Mở file cần lây nhiễm2. Kiểm tra xem đã từng nhiễm chưa3. Nếu rồi thì bỏ qua4. Lưu ngày giờ của file5. Lưu đoạn code đầu chương trình (COM) hoặc header (EXE)6. Nhét lệnh nhảy tới VR của ta đè lên code đã lưu (COM) hoặc sửa header (EXE)để VR có thể bắt đầu trước chương trình gốc7. Nối thêm VR của ta vào file8. Cập nhật ngày tháng cũOK, ta đã có một VR đơn giản. Tôi sẽ phân tích từng mục ở các phần sau.Thực ra có một loại VR tồi tệ nhất là overwriting VR. VR này thường ghi đè lêntệp gốc dẫn đến què quặt dữ liệu. Bạn định tranh luận với tôi là còncó rất nhiều hình thức lây lan khác ư? Tôi biết nhưng đây chỉ là bài chonewbie đừng quên điều đó.Tiếp tục nhá, các thao tác khác một VR có thể làm là gì:Thường trú: Nhiều người nghĩ rằng VR là phải thường trú nhưng không hẳnvậy. Chính vì thế tôi không liệt thao tác này vào trong nhóm các thao tác thườnglàm.Lây nhiễm: Một VR có thể lây nhiễm nhiều cách (ở trên là lây nhiễm tệp khảthi) qua files, email... hoặc boot sector (đĩa mềm), macro... Nạn nhân sẽ chạy filelây nhiễm mà không biết. Alê hấp, VR nắm quyền điều khiểnNắm quyền đ ...

Tài liệu được xem nhiều: