Сейчас на форуме: vsv1 (+3 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› прога GyroQ - зашел в тупик |
Посл.ответ | Сообщение |
|
Создано: 09 февраля 2008 21:09 · Поправил: Krust · Личное сообщение · #1 Народ, прошу вашей помощи. Есть прога Gyronix GyroQ - дополнение для быстрого ввода идей в Midjet MindManager (может слышали про mind maps - вот MindManager их создает, а GyroQ это для нее самостоятельный прибамбас). [url=http://www.mindmanuals.com/products/gyronix-gyroq-eng-1-9-4.exe ]http://www.mindmanuals.com/products/gyronix-gyroq-eng-1-9-4.exe [/url] 3 мб Кряков в инете вроде как не имеет по причине довольно узкой специализации проги (хотя запросы на кряки видел). Стоит евро 60 или 80. В общем надеяться было не на кого, решил подобрать к ней ключик сам. Читаю мануалы разные, софт (Olly и др.) накачал. Сижу разбираюсь со вчерашнего дня. Прога триальная, изначально давала 30 дней, после переустановки и каких-то манипуляций с часами стала давать 1 день ![]() После ввода неверного кода показывает что незарегистрирована: главное окно работает, но не дает передать данные в MindManager, по нажатию кнопки выводит окошко для ключа. Если после этого ввести только имя и мыло, но без серийника, прога просится в инет, а когда я ее не пускаю, опять становится рабочей и сообщает что остался 1 день ![]() 1) Упаковка UPX 1.90, вроде распаковал без проблем: Microsoft Visual C++ 6 или 7. Не слишком серьезная упаковка позволяла надеяться на не слишком серьезную защиту от ковыряния, что сломать прогу удастся даже такому недохакеру как я ![]() 2) После мониторинга реестра было обнаружено что в HKLM/Software/Microsoft/Cryptography/RNG прога оставляет ключик типа Binary c чем-то зашифрованным. Что с ним делать я так и не придумал ![]() 3) Текстовых ASCII строк с информацией про регистрацию обнаружено не было. Зато идут упоминания на нечто под названием AutoIt v3. 4)Поставил брэйк на GetWindowTextA, потрэйсил, обнаружил несколько проверок на пустое имя, e-mail, серийник. Ну а дальше сплошные проблемы. Трэйсил далеко и глубоко (скорее всего уже совсем и не там где надо), менял встречавшиеся условия перепрыгивания на противоположные, проверял результат - или ничего, или ошибку выдает. Думаю, что не хватает понимая логики программы - куда она что передает - чтобы найти ту самую точку сравнения и перепрыга на зарегестрированный статус. Когда пробовал отследить что делает прога с введенными данными, заметил что начинается обработка введенного имени пользователя (обработки серийника и мыла вообще не вижу), но быстро запутываюсь во вложенных процедурах и теряю нить происходящего... Да и вообще мне теперь кажется, что не все там так просто (как, например, в статьях для новичков, которыми я руководствовался) и поэтому есть сомнения в том, что смогу дожать эту прогу в одиночку. Буду благодарен любой помощи ![]() |
|
Создано: 10 февраля 2008 17:59 · Поправил: Oott · Личное сообщение · #2 Самомодифицирующийся прыжок: 0040608B movzx eax, ds:byte_406526[eax] 00406092 jmp ds:off_4064F2[eax*4] Тебе отсюда нужно попасть сюда: 00406198 mov eax, [ebp+68h+arg_C] 0040619B test eax, eax 0040619D jz short loc_4061BA А от туда сюда: 004061BA loc_4061BA: ; lpString 004061BA push [ebp+68h+lpString] 004061BD push ecx ; hWnd 004061BE call ds:SetWindowTextA ; Типа зареган ;) 004061C4 push 0F423Fh ; lParam 004061C9 push 0F4240h ; wParam 004061CE push 0B1h ; Msg 004061D3 push [ebp+68h+hWnd] ; hWnd 004061D6 call ds:SendMessageA ; и тут 004061DC or dword ptr [esi+4170h], 0FFFFFFFFh 004061E3 jmp loc_4064E4 ![]() |
|
Создано: 10 февраля 2008 21:56 · Личное сообщение · #3 Спасибо, что внимание обратил ;) >> Самомодифицирующийся прыжок: >> 0040608B movzx eax, ds:byte_406526[eax] >> 00406092 jmp ds:off_4064F2[eax*4] >>Тебе отсюда нужно попасть сюда: Делаю: jmp loc_00406198 (ну точнее без loc_, в Olly просто пишу "jmp 00406198") >>00406198 mov eax, [ebp+68h+arg_C] >>0040619B test eax, eax >>0040619D jz short loc_4061BA >>А от туда сюда: Делаю: jnz short loc_4061BA >>004061BA loc_4061BA: ; lpString >>004061BA push [ebp+68h+lpString] Вот этот момент не понял. Верхняя строка откуда? У меня ее нет. Когда дохожу до этого момента, имею ASCII текст про "истекший срок годности" + далее прога работать отказывается 004061BD push ecx ; hWnd 004061BE call ds:SetWindowTextA ; Типа зареган ;) 004061C4 push 0F423Fh ; lParam 004061C9 push 0F4240h ; wParam 004061CE push 0B1h ; Msg 004061D3 push [ebp+68h+hWnd] ; hWnd 004061D6 call ds:SendMessageA ; и тут 004061DC or dword ptr [esi+4170h], 0FFFFFFFFh 004061E3 jmp loc_4064E4 Вопрос: где я туплю? Что нужно исправить? А еще один вопрос более глобальный - как узнать куда должен этот самомодифицирующийся прыжок прыгнуть? ![]() |
![]() |
eXeL@B —› Вопросы новичков —› прога GyroQ - зашел в тупик |