Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Delphi - Пишу трояна (WinAPI only)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Delphi - Пишу трояна (WinAPI only)
Имя
Сообщение << Старые топики   Новые топики >>
Delphi - Пишу трояна (WinAPI only) - 2006-11-10 08:16:10.646666   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
Всем доброго времени суток!

При написании своего трояна ( Delphi ) столкнулся с проблемой - хочу реализовать
палилку удаленного экрана но _БЕЗ_ использования TBitmap, TMemoryStream и прочей
шняги .. тоесть используя API функциии … ни как не могу сообразить как получить буффер с данными
битмапа ( HBITMAP )
кстати, HBITMAP это что? хендл или адресс памяти с буффером?

Киньте ссылку или поделитесь примером плиз!

Заранее спасибо!
Post #: 1
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 10:36:16.380000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Не мне судить, но IMHO TMemoryStream реализован весьма неплохо. Им не грех и воспользоваться.

http://www.rsdn.ru/?forum/?mid=147737
Интересный топик про природу HBITMAP.
Ну и рядом поищи.



Post #: 2
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 10:49:23.990000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
неспорю, TMemoryStream хорош но … грусно смотреть на трояна весом 300 - 400 кило .. в противовес к 20 - 40 К без использования VCL при той - же функциональности …
Post #: 3
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:03:06.240000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Стоп!
Тут не все однозначно.
Вот открыл Turbo Delphi.

program Project2; {$APPTYPE CONSOLE} uses &nbsp; SysUtils, Classes; &nbsp; var &nbsp; MS:TMemoryStream; begin &nbsp; { TODO -oUser -cConsole Main : Insert code here } end. Вот такая программа. Весит 77 K. АсПака нет под рукой. Но скажу навскидку, сжатие будет процентов 60.
Т.е. около 30 К получим.
Вот и вся цена использования TMemoryStream.
Подключишь ShellAPI - тоже самое получишь.
А 300 К у тебя за счет использования модуля Forms. Он действительно тяжелый.

ЗЫ
На D7 должно быть легче.
ЗЗЫ
Попробуй еще Free Pascal (Lazarus)
Post #: 4
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:16:36.210000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
&gt;&gt; А 300 К у тебя за счет использования модуля Forms. Он действительно тяжелый.

Я воопше не использую VCL и прочее - все написано используя только API
А TMemoryStream все - таки использовать неохота - мне кажеться "полный" вариан троя будет несильно
весом отличаться от прошлой версии (с использованием VCL)
снимок получить легко а передать его (точнее получить этот заветный буффер с картинкой) трудно
Все у мелкософта через задницу!
Post #: 5
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:31:13.223333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
По поводу последнего возразить трудно :)
Ну погляди на сырцы фрипаскаля, может и поможет. Там проекты реально легче получаются, да и заголовки API описаны полнее и лучше.
Кстати, можешь прямо гуглем искать в инете.
Post #: 6
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:33:58.270000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
попробую …
эх, ну разве это так трудно? получить скрин и передать его клиенту ..
страшивал тоже самое на securitylab.ru тоже толком никто не ответил .. :(
а гугл выдает по сабжу кучу ссылок и все с использованием тех же TBitmap и T*Stream .. [:(]
Post #: 7
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:37:49.490000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Ну, вероятно, Stream придется использовать (механизм-то удобный).
Вопрос как организован.
Я думаю, что при желании можно использовать TMemoryStream, но приложить немного усилий и сбросить вес приложения.
Например вырвать код TMemoryStream и собрать в отдельный модуль, что бы кусков от VCL за собою не тащил.
Post #: 8
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:41:00.396666   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
млин, сорцы 25 метров весят - чет обламыват качать ..
Post #: 9
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:44:23.943333   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
&gt;&gt; Например вырвать код TMemoryStream и собрать в отдельный модуль

в VCL все так запушено что черт ногу сломает .. должен же быть другой способ :/

ЗЫ: кто то говорил - "если это будет просто это не будет интересно!"
ЗЗЫ: но не до такой же степени!
Post #: 10
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:54:30.070000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
На самом деле ничего сложного нет.
Объявляешь стрим, кликаешь в редакторе на описании его с прижатым контролом и попадаешь в сырцы на объявление класса.
А дальше -дело техники :)
Нет, ну попариться придется, конечно. Зато в случае положительного исхода усидчивость +5, ориентирование (по коду) +5, ну и мелкие дополнительные бонусы :)

Hierarchy
System.TObject
 Classes.TStream
 Classes.TCustomMemoryStream

А иерархия не глубокая, так, что реально.
Post #: 11
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:57:21.960000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
Ну ладно, уговорил - пороюсь в сорцах :)
осталось другое - а как собственно получить буффер с картинкой? имея на руках HBITMAP ..
ведь без него и TMyStream не нужен :D
Post #: 12
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 12:22:38.850000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
Такое ошушение создается, будто я один в инете интересуюсь сабжем … [sm=sm128.gif]

<offtop>
А до прова дозвониться все сложнее и сложнее …
</offtop>
Post #: 13
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 12:27:49.553333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Ну влазить с головой в задачу небуду.

void CopyBitmap( HBITMAP hbmOn, HBITMAP hbmWhat) { HDC hdcSrc = CreateCompatibleDC(NULL); HDC hdcDst = CreateCompatibleDC(NULL); BITMAP bm1; SelectObject(hdcSrc, hbmOn); SelectObject(hdcDst, hbmWhat); GetObject(hbmWhat, sizeof(bm), &amp;bm); BitBlt(hdcDst, 20, 5, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY); DeleteDC(hdcSrc); DeleteDC(hdcDst); } Это, собственно, копирование HBITMAP.
Но объект они получают, как я понял
Post #: 14
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 12:47:24.020000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
немного не то - тут битмап копируется с помошью BitBlt ..
а мне надо всего лишь буффер с картинкой

ЗЫ: поидее и TStream не нужен
Post #: 15
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-15 21:17:16.806666   
ZEuS

Сообщений: 1
Оценки: 0
Присоединился: 2006-11-15 21:03:53.760000
IMHO, буквовка H в начале HBITMAP как принято по правилам наименований у мелкософта - обозначает именно handle
что подтверждает и MSDN:
Handle to a bitmap.
This type is declared in WinDef.h as follows:


typedef HANDLE HBITMAP;кстати, если собираешься работать через winapi, то MSDN - первейшая помощь.Там огромнейший раздел по работе с графикой, с примерами, правда на С, но этонесложно портируется и под Delphi.А насчет буфера - может сначала немного определиться, зачем тебе именно буфер?Абсолютное большинство процедур и функций API по работе с графикой используютименно handle-типы.
Post #: 16
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Delphi - Пишу трояна (WinAPI only)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.