· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Как можно получить строку из диалоговогого(млять) окна

Посл.отвђт Сообщенiе


Дата: Окт 20, 2004 20:33:25 · Поправил: SammIk

УПС, Я был бы очень презнателен, еслибы эту ветку перенисли в ресер
Доброго времени, господа.
Пытаюсь подсмотреть у одной прожки, как она создает
ключи(вернее проверяет).
Ключ вводится в диалоговом окне.
Нашел я значит где она получает текст из окна при помощи
GetDlgItemText. Обрадывался как ребенок, но после
муторных исследований(первый раз ведь этим занимаюсь) понял, что собсно к этим данным(к полученной строке) никто
не хочет обращатся, за исключением нескольких инструкции,
которые проверяют строку на наличие 0Dh и 0Ah(типа перенос строки).
Но дальше по коду, вот тут самое интересное, подгружается либа(есесно динамически) получается, значит, адрес ф-ии,
захожу в нее, а там, млять, есть команда
mov eax,[12??2008] ;Где ?? - значение от болды
И по этому адресу лежит расшифрованный ключ, от шока я долбанулся головой об монитор(вернее он меня долбанул, или я?).
Деиствия которые я предпринемал:
- ставил bpmd на полученую строку
- Отлавливал сообщение WM_GETTEXT(кстати не разу не вылетело)
- По началу пытался ставить bpm на [12??2008], но вы сами понимаете.
- Ставил bpm на саму команду mov, но потом выяснил, что и адрес этои мув меняется.
Про прогу:
Достает эту самую либу из ресурсов
Либа Упакована ASpack 2.12(PEiD & PE Tools), но как я прочитал, ASProtect распознается как ASpack 2.12.
И как я понял перед вызовом(в самом начале ф-и)
GetDlgItemText ставится SEH обработчик, который в свою очередь вызывает __CxxFrameHandler
__________________
Собсно сам вопрос:
Как можно получить иным способом строку из диалога?
PS: У меня больше нет никаких(пока) предположений, как можно расшифровать строку не читая ее.
PPS:Извеняюсь, конечно, за столь длинное повествование, но из-за этои **** ни ем уже 2 суток.
Так затянуло, бывает же.


Дата: Окт 21, 2004 10:18:29

GetWindowText


Дата: Окт 21, 2004 11:44:10

А еще, можно непосредственно вызвать функцию окна того кантрола, чей текст необходимо получить.


Дата: Окт 21, 2004 12:56:28

to SteelRat - Да, как-то об этом язабыл.
to Julius - А дальше что? Она же тоже, ведь, должна получить строку темеже ф-ми. Или есть что-то другое?
Кстати, адрес ф-ии окна не определяется Spy++, а саис
виснет, если получать весь список окон для процесса(говорит, что мол стек переполнился), правдо он
показывает адрес.
---------------
А вот как получается так, что загружаемая либа уже имеет
адрес на расшифрованный ключ, до того как процесс вызывает из нее ф-ию?


Дата: Окт 21, 2004 15:28:39

А дальше что? Она же тоже, ведь, должна получить строку темеже ф-ми. Или есть что-то другое?
Отнюдь нет. Я имею ввиду оконную процедуру кантрола, а не диалогового окна.
А она возвращает строку по сообщению WM_GETTEXT (Могут быть и какие другие, это все от кантрола зависит, особенно если это самопальный кантрол).
Точку останова можно поставить на процедуру окна кантрола, по условию, что она вызывается с этим сообщением.


Дата: Окт 21, 2004 17:56:01

Попробую


Дата: Окт 25, 2004 16:45:38 · Поправил: vovan

могут помочь
GetDlgItemText
GetDlgItemTextA

сорри, плохо читал subj :(


Дата: Окт 25, 2004 22:28:54

GetDlgItemTextA - убейте меня я нескажу никому!


Дата: Окт 25, 2004 22:29:46

А GetDlgItemText юзает GetWindowText. ха-ха.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.053