КГ
Ксения Гудова

Как получить текст из чужого приложения не понятно из какого класса.

Т. е. объект не унаследован (содержащий текст) , а написан с 0. Этот объект не отвечает на сообщения windows.

Данные надо получать быстро и постоянно, т. к. они меняются.
Dump памяти не рассматривается, долго + вероятно приложение написано на управляемом C++, и адрес переменной с текстом меняется.

Искал на форумах и в поисковике - ничего дельного нет.

Идеи, предложения. Язык программирования - любой.

Спс. Не 1й раз отвечаешь тут, причем мне)

Уже копал, пустота.
Это тоже самое что где-то в памяти есть массив с символами и его нестандартно выводят чуть ли не рисованием на форму.
В конечном итоге есть только массив в памяти, не к чему не привязанный.

Идея 1на. Возможно ли найти функцию, перехватить ее и скопировать данные в инжектированную переменную. Если внедриться в память чужого процесса, там точно можно найти на лету. Пробовал такое вытворять? Насколько мне помниться это реально.

Все что могу сказать данные хранятся в программе постоянно. Весь массив символов не меняется на протяжении всей работы программы, он дописывается просто.

Вопросы - Как найти функцию вывода. (Главный вопрос)
Если сталкивался с материалом по инжекту, то скинь что-нибудь.

Кстати копаясь в чужих приложениях я не раз втыкался что не могу стащить данные, мутированные Edit'ы StringGrid итд не всегда реагируют на win message

С алгоритмом согласен. Не send не post естественно ничего по тексту не передают (или бы не было смысла в обсуждении) .
Непосредственно не ясно как искать функцию. Никогда не делал. Намекните на какую нить прогу. Чтонить проще чем Soft Ice. Как нибудь так - нахожу адрес памяти, ставлю там брейк, как только туда чтонить обращается я вижу точку вызова.

Так же не ясно.
Если приложение онлайн, и естественно постоянно работает, не повиснет ли оно при начале отладки.

ИП
Иван Петухов

Одного-единственного, всегда работающего точного алгоритма здесь нет - иначе хакером мог бы стать любой. Работать пока придется в отладчике над конкретным исполняемым файлом, вручную. Примерный алгоритм такой:
Так как текст выводится контролом, то нужно искать точку, где он передается системе. Это могут быть либо разнообразные варианты DrawText, TextOut, etc (если это кастомный контрол - написанный с нуля) , либо SendMessage, PostMessage, etc (текст будет передаваться в аргументах сообщения) . Будет много вызовов, которые нам не нужны. Далее, анализируя листинг, нужно найти функцию, которая обновляет текст, и то место, где он сохраняется (либо переменную-указатель, которая указывает на область памяти с текстом - это более вероятный расклад) . После этого можно приступать к кодингу - писать инжектируемую библиотеку, которая будет читать найденный текст, а также перехватывать функцию, которая изменяет его.

АС
Александр Скворцов

Что-то я уже это сегодня видел и сказать ничего не могу, не понятно, что такое быстро.... воровать из потока чтоль.... да если защифрован он в том не ясном классе, то гиблое дело.
Пиши подробней, может ты все же ошибаешься на счет написанного с нуля.
Есть всякие проги определители на чем написан exe, прогони ими, глянь на чем все же эта приблуда (программа непонятная для меня)

Похожие вопросы
Delphi. Как получить хэндл приложения в процессе его запуска?
Найдите в тексте приложение! Помогите 8 класс!
В каком приложении можно так сделать?
Как писать кодировкой текста UTF-8? Отправьте пожалуйста понятную инструкцию!
Как средствами C# получить текст входящего письма
Как сверстать текст, чтобы при распечатке получилась книга?
Точка входа консольного приложения. В двух словах, чтобы понятно было, что это такое?)
У кого нибуть получилось прочитать чужие сообщеня через приложения Шпион вконтакте?
Не понятная получилась ситуация.
Через какое приложение делать текст, как на фото Что бы текст выл именно в ячейках