Сейчас на форуме: vsv1 (+3 невидимых)

 eXeL@B —› Вопросы новичков —› прога GyroQ - зашел в тупик
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 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, серийник. Ну а дальше сплошные проблемы. Трэйсил далеко и глубоко (скорее всего уже совсем и не там где надо), менял встречавшиеся условия перепрыгивания на противоположные, проверял результат - или ничего, или ошибку выдает. Думаю, что не хватает понимая логики программы - куда она что передает - чтобы найти ту самую точку сравнения и перепрыга на зарегестрированный статус. Когда пробовал отследить что делает прога с введенными данными, заметил что начинается обработка введенного имени пользователя (обработки серийника и мыла вообще не вижу), но быстро запутываюсь во вложенных процедурах и теряю нить происходящего... Да и вообще мне теперь кажется, что не все там так просто (как, например, в статьях для новичков, которыми я руководствовался) и поэтому есть сомнения в том, что смогу дожать эту прогу в одиночку.

Буду благодарен любой помощи




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 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



Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 - зашел в тупик
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати