Delphi - Пишу трояна (WinAPI only)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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 это что? хендл или адресс памяти с буффером? Киньте ссылку или поделитесь примером плиз! Заранее спасибо!
|
|
|
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. Ну и рядом поищи.
|
|
|
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 при той - же функциональности …
|
|
|
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
SysUtils, Classes;
var
MS:TMemoryStream;
begin
{ TODO -oUser -cConsole Main : Insert code here }
end.
Вот такая программа. Весит 77 K. АсПака нет под рукой. Но скажу навскидку, сжатие будет процентов 60. Т.е. около 30 К получим. Вот и вся цена использования TMemoryStream. Подключишь ShellAPI - тоже самое получишь. А 300 К у тебя за счет использования модуля Forms. Он действительно тяжелый. ЗЫ На D7 должно быть легче. ЗЗЫ Попробуй еще Free Pascal (Lazarus)
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:16:36.210000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
>> А 300 К у тебя за счет использования модуля Forms. Он действительно тяжелый. Я воопше не использую VCL и прочее - все написано используя только API А TMemoryStream все - таки использовать неохота - мне кажеться "полный" вариан троя будет несильно весом отличаться от прошлой версии (с использованием VCL) снимок получить легко а передать его (точнее получить этот заветный буффер с картинкой) трудно Все у мелкософта через задницу!
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:31:13.223333
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
По поводу последнего возразить трудно :) Ну погляди на сырцы фрипаскаля, может и поможет. Там проекты реально легче получаются, да и заголовки API описаны полнее и лучше. Кстати, можешь прямо гуглем искать в инете.
|
|
|
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 .. [:(]
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:37:49.490000
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Ну, вероятно, Stream придется использовать (механизм-то удобный). Вопрос как организован. Я думаю, что при желании можно использовать TMemoryStream, но приложить немного усилий и сбросить вес приложения. Например вырвать код TMemoryStream и собрать в отдельный модуль, что бы кусков от VCL за собою не тащил.
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:41:00.396666
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
млин, сорцы 25 метров весят - чет обламыват качать ..
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:44:23.943333
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
>> Например вырвать код TMemoryStream и собрать в отдельный модуль в VCL все так запушено что черт ногу сломает .. должен же быть другой способ :/ ЗЫ: кто то говорил - "если это будет просто это не будет интересно!" ЗЗЫ: но не до такой же степени!
|
|
|
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 А иерархия не глубокая, так, что реально.
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 11:57:21.960000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
Ну ладно, уговорил - пороюсь в сорцах :) осталось другое - а как собственно получить буффер с картинкой? имея на руках HBITMAP .. ведь без него и TMyStream не нужен :D
|
|
|
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>
|
|
|
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), &bm);
BitBlt(hdcDst, 20, 5, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY);
DeleteDC(hdcSrc);
DeleteDC(hdcDst);
} Это, собственно, копирование HBITMAP. Но объект они получают, как я понял
|
|
|
RE: Delphi - Пишу трояна (WinAPI only) - 2006-11-10 12:47:24.020000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
немного не то - тут битмап копируется с помошью BitBlt .. а мне надо всего лишь буффер с картинкой ЗЫ: поидее и TStream не нужен
|
|
|
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-типы.
|
|
|
|
|