<![CDATA[Latest posts for the topic "Kĩ thuật lập trình Virus - Copyright Spinx"]]> /hvaonline/posts/list/28.html JForum - http://www.jforum.net Kĩ thuật lập trình Virus - Copyright Spinx prefetch: int 20h (sao bạn không cười? tôi có trình khó hiểu quá không nhỉ? ) - Tương tự ngắt int 0. Bạn có thể bẫy int 1, int 6 Thôi kết thúc DOS. Trở lại win ta có thể dùng: - Structured Exception Handling (SEH). Kỹ thuật này phổ biến quá rồi ha - Threads and fibers - Pentium+, copro, MMX, 3DNow! opcodes (undocumented opcodes) - Kỹ thuật đa hình metamorphism - Nhảy bằng Callbacks - ....... Chắc mọi người biết cả rồi vì tôi mới trở lại với "Nghệ thuật hắc ám" gần nên kiến thức trên win không mới lắm. Anti-Analysis Ở phần này tôi muốn nói về chống disassemblers. Ai cũng biết mấy thằng disassemblers thông dụng như IDA, Sourcer hay win32dasm. Nếu bạn là người xây dựng chương trình disassemblers bạn sẽ làm thể nào. Tất nhiên dễ nhất là bắt đầu từ đầu chương trình, dasm tuần tự. Nếu code tuần tự như tiến ta có kết quả đẹp nhất. Nếu không sau lần chạy thứ nhất ta sẽ hiệu chỉnh lại code theo các lệnh nhảy và call... Thử chạy sourcer, bạn sẽ thấy điểm yếu nhất của disassemblers là rất, rất khó xử lý lệnh call và jump. Vậy phương pháp của V-er là: - Mã hoá càng nhiều càng tốt - Sử dụng call với relative offset kiểu call label gdelta: db 0b8h ;MOV opcode label: pop ebp ... mov eax, [ebp + variable - gdelta] (Cách này có ở đa số VR rồi) - Nhảy vào ... giữa mã lệnh: jmp opcd+1 ;jump into instruction opcd: mov eax, 0fcebfa90h Bạn có thể thấy ngay thực ra đây không phải lệnh mov mà lệnh ta là 0fcebfa90h cơ - Chèn các mã kiểu (db 0b8h) vào nhiều nơi sau các lệnh ret, jmp, ... - Patch code runtime (tương tự kiểu queue fetch ở trên - ... Anti-Debug Các AVer đã tóm được một mẫu VR của bạn. Hix.. bây giờ thì quá khó. Tuy vậy ta cũng có thể chống đỡ trong ... tuyệt vọng. Với Anti-Debug, nếu AVer không cao thủ họ mới nghi ngờ thôi thì cũng có thể bỏ cuộc. Vả lại có chết cũng cho oanh liệt, gây khó khăn chứ. Nếu không disassemble được người diệt sẽ debug. Cách thông thường là tìm xem có phần mềm debugger thông dụng kiểu softice thì chuồn lẹ. Các cách nhận biết debugger có thể là: - Gọi luôn API của debugger - Kiểm tra debugger context - Sử dụng SEH (xem trên) - Gọi VxD service (Ring-0 only) - Kiểm tra softice trên bộ nhớ bằng CreateFileA - Chọc vào các thanh ghi debug (Ring-0 only) Anti-Monitor Cũng vậy thôi, ta tìm xem có thằng AV nào thông dụng đang chạy trên bộ nhớ thì chuồn. Có thể dùng hàm API FindWindowA mà tìm. Nếu thấy thịt nó luôn bằng cách sử PostMessageA đến window handle của nó Anti-Antivirus Chủ động tìm database của AV trên đĩa mà thịt (có thể AV sẽ không chạy được nữa). Hay nhất là patch được database (AV chạy bình thường nhưng không tìm được VR nữa. Một số db thông dụng: *.AVC - AVP viral database AVP.CRC - AVP crc file *.VDB - DrWeb viral database NOD32.000 - NODICE viral database ANTI-VIR.DAT - TBAV crc file CHKLIST.MS - MSAV crc file Anti-Bait Chọn file mà lây. Tránh các AV, tránh mấy chương trình thông dụng kiểu winword.exe. Như ngày xưa trên DOS ta hay tránh command.com í Tóm lại, tôi tổng kết các kỹ thuật ở đây, đây là theo những gì tôi hiểu nên sai các bác bỏ qua cho. Nếu tôi trình bày khó hiểu quá thì hix... trình độ sư phạm tôi thế thôi. Đây toàn là í tưởng các Ver chuyên nghiệp đã dùng nếu bạn là Ver đã từng viết VR chắc sẽ hiểu ra và tự xây dựng đoạn code cho riêng mình được. ]]> /hvaonline/posts/list/390.html#937 /hvaonline/posts/list/390.html#937 GMT Re: Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#938 /hvaonline/posts/list/390.html#938 GMT Re: Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#69936 /hvaonline/posts/list/390.html#69936 GMT Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#70500 /hvaonline/posts/list/390.html#70500 GMT Kĩ thuật lập trình Virus - Copyright Spinx Hey ! bạn muốn ám chỉ là việc viết virus bằng ASM32 sao. Nghe có vẻ hơi rối rắm và khó hiểu cho các "NHÂN" nhỉ. Bạn có thể diển đạt nó bằng các ngôn ngử khác dược không. Uhm ! y minh la các ngôn ngử bậc cao (<<Viết Virus dể hơn mà). Chứ viết bằng ASM32 thì phần lớn là lấy source từ các nguồn trên NET rùi sửa đổi theo ý mình. Nhưn ASM thì dễ viết khó sửa mà. Có lẽ một bài mang tính phổ thông sẽ tốt hơm.   Học những thứ phổ thông, làm những thứ phổ thông và bạn sẽ có trình độ rất phổ thông :). Bài viết hay lắm ^^! các bạn nên tập trung thảo luận, hơn là hỏi xem nên dùng ngôn ngử nào. ASM dùng trong việc viết virus có rất nhiều điểm mạnh. Còn một điều nữa, đừng trông chờ vào những ngôn ngử cấp cao, chúng sẽ làm chúng ta lú lẫn. Ngôn ngử lập trình càng đơn giản, càng dễ sữ dụng và phổ thông thì sản phẩm làm ra sẽ có hạn chế của nó.>]]> /hvaonline/posts/list/390.html#219062 /hvaonline/posts/list/390.html#219062 GMT Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#223443 /hvaonline/posts/list/390.html#223443 GMT Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#223449 /hvaonline/posts/list/390.html#223449 GMT Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#280402 /hvaonline/posts/list/390.html#280402 GMT Kĩ thuật lập trình Virus - Copyright Spinx /hvaonline/posts/list/390.html#280486 /hvaonline/posts/list/390.html#280486 GMT