УПС, Я был бы очень презнателен, еслибы эту ветку перенисли в ресер Доброго времени, господа. Пытаюсь подсмотреть у одной прожки, как она создает ключи(вернее проверяет). Ключ вводится в диалоговом окне. Нашел я значит где она получает текст из окна при помощи 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 суток. Так затянуло, бывает же.
to SteelRat - Да, как-то об этом язабыл. to Julius - А дальше что? Она же тоже, ведь, должна получить строку темеже ф-ми. Или есть что-то другое? Кстати, адрес ф-ии окна не определяется Spy++, а саис виснет, если получать весь список окон для процесса(говорит, что мол стек переполнился), правдо он показывает адрес. --------------- А вот как получается так, что загружаемая либа уже имеет адрес на расшифрованный ключ, до того как процесс вызывает из нее ф-ию?
А дальше что? Она же тоже, ведь, должна получить строку темеже ф-ми. Или есть что-то другое? Отнюдь нет. Я имею ввиду оконную процедуру кантрола, а не диалогового окна. А она возвращает строку по сообщению WM_GETTEXT (Могут быть и какие другие, это все от кантрола зависит, особенно если это самопальный кантрол). Точку останова можно поставить на процедуру окна кантрола, по условию, что она вызывается с этим сообщением.