Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2013, 09:44   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Управление компонентами другого приложения/окна

Скажу сразу - меня попросили написать кейлоггер, хотите верьте, хотите нет.
Сам кейлоггер я не писал, я его скачал в интернете - где не важно. Я написал программу, которая отправляет мне на почту txt файл лога каждые 5 минут и 10 секунд (а это уже другая проблема).
Моя текущая проблема заключается в том, что кейлоггер не заменяет содержимое лога, а ДОПОЛНЯЕТ его, таким образом размер лога растёт быстро.
Пытался после каждой отправки лога закрывать процесс программно и открывать его заново - сам кейлоггер возмущается (I/O error).
Помню, что в универе писал практику по хэндлам, но там мы рисовали в Paint посредством GetDCWindow (или как то так). Там же мне рассказывали, что можно получить доступ к управлению компонентами окон других приложений.
У Delphi 7 есть полезная утилита - WinSight32.exe, которая позволяет отобразить структуру каждого окна, хэндлы, имена классов, заголовки окна и приложения.

Таким образом я узнал, что у нужного мне компонента, из которого сохраняется лог файл имеет класс TMemo (как ни странно).

Вопрос остался только в том, как получать доступ к такому объекту ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 14.09.2013, 09:47   #2
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Забыл добавить - простое удаление лога не катит. TMemo кейлоггера само по себе не очищается, а в файл записывается весь Memo.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 14.09.2013, 14:16   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

В прочем ладно, я таки додумался, как это нужно делать правильно, в следующем посте отпишу ...
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 14.09.2013 в 15:54.
OmegaBerkut вне форума Ответить с цитированием
Старый 14.09.2013, 14:26   #4
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Не важно как я до этого додумался (может только потому что уже очень сонный), но узнав про сообщение Win32 с таким названием - "WM_CLOSE", мне не пришлось ковыряться в дочернем TMemo. Благодаря примерно такой конструкции:
Код:
SendMessage(Handle,WM_CLOSE,0,0);
я получил возможность НЕ убивать процесс кейлоггера, а "дать ему шанс закрыться добровольно", на что программа сильно не сопротивлялась, а после последующего открытия уже было всё прекрасно - лог программы успешно отправлен вложением и удалён, а вместо него создаётся новый, самим кейлоггером.

P.S. Посчитав, примерно получилась трата времени на сбор данных чуть менее двух секунд (с 2-х ядерным процессором 2.3 GHz).

P.P.S. Понимаю, что этот способ решения не соответствует поставленному вопросу - но изначально задумывалось именно так, просто были другие способы, очень уж не оптимальные с точки зрения "зашифроваться".

-----

А сейчас я займусь прикреплением скриншотов экрана ... Ибо 5 скринов за 5 минут (одно письмо за 5 минут) - это уже получается нехило ... Это я так, троллю свою очень уж сонливость ...
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 14.09.2013, 17:19   #5
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Хакер, тебя не учили, что у объекта тоже есть дескриптор? Так ищи его.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 14.09.2013, 17:49   #6
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Хакер, тебя не учили, что у объекта тоже есть дескриптор? Так ищи его.
Хакер не хакер, а показатель выявления - 12/46 (тык). Работает исправно.

Что по поводу дескриптора - спасибо, я знаю про FindWindowEx, вот только не задача, я пытался присвоить этот дескриптор в переменную TMemo - без результата; Пытался отсылать туда сообщения - тоже не получалось. Найти дескриптор объекта не сложно, там всего ОДИН компонент, который я нашёл быстро, но как я уже сказал - править его я не смог - видать не такой я уж и хакер. ОЛОЛО.

Кстати, ESET-NOD32 угадал на 100 % по поводу оригинального производителя самого кейлоггера.

---

P.S. Да, это я похвастался.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 14.09.2013, 17:50   #7
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Ну да, за скриншоты никто ничего не говорил. Проходят все 46 (это как я понял).
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 15.09.2013, 23:25   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

На форуме запрещено обсуждение кейлогеров и другого зловредного софта.
Человек_Борща вне форума Ответить с цитированием
Старый 16.09.2013, 08:27   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Это скорее монолог чем дискус. )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.09.2013, 13:03   #10
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
На форуме запрещено обсуждение кейлогеров и другого зловредного софта.
Ага, а где модератор? Тут автор почти всю тема, сам с собой талковал.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
управление компонентами в режиме run-time. KrisPipis Помощь студентам 3 08.12.2010 01:11
Как отмасштабировать форму приложения со всеми её компонентами? zmey31313 Общие вопросы Delphi 5 11.12.2009 16:23
Получить дескриптор окна другого приложения и сделать его активным Delphi 7 AndersX Помощь студентам 4 18.10.2009 09:32
Работа с компонентами стороннего приложения imprezident Win Api 1 30.05.2009 22:12
Управление компонентами(видимыми и невидиммыми) в чужой программе(любой) Alter Win Api 21 13.05.2009 23:13