Имеется некая программа. В ней несколько режимов работы - триал, лайт, про (может быть еще). Определяется, как Armadillo 4.x При запуске запакованной программы выдавалось сообщение о 10 днях триала и было предложено ввести ключик. Почистил реестр на предмет "лишних" ключей Armadillo. Запускаю программу - срок триала сбрасывается. Распаковал программу Армагедоном... Сообщение о триале пропало... Вопрос. Если я понимаю правильно, то сообщение о триале выдает само чудо Армадилло? Если нет - буду разбираться дальше... Если да - то появляется новая проблема. Не могу понять как сделать ее "про" версией Ведь форма ввода логина\пасса - пропала после расшифровки. Был бы признателен за любые тыканья носом жертва.rar В архиве как девственная программа, так и изнасилованная Армагедонном.
Кодес, уоторый выполняет проверку пароля. В случае успеха возвращает не ноль в al. Код (Text): 00D29C90 55 8B EC 83 EC 5C 89 4D B0 68 34 06 00 00 E8 73 00D29CA0 D6 03 00 83 C4 04 89 45 E8 83 7D E8 00 74 38 8B 00D29CB0 4D E8 E8 D9 CF FE FF 8B 45 E8 05 64 05 00 00 89 00D29CC0 45 D8 8B 4D D8 C7 01 00 00 00 00 8B 55 D8 C7 42 00D29CD0 04 00 00 00 00 6A 00 8B 4D E8 E8 21 80 FF FF 8B 00D29CE0 45 E8 89 45 AC EB 07 C7 45 AC 00 00 00 00 8B 4D 00D29CF0 AC 89 4D F8 8B 55 0C 52 8B 45 08 50 8B 4D F8 E8 00D29D00 3C 9E FF FF 88 45 F3 8B 4D B0 83 B9 48 24 00 00 00D29D10 00 74 37 8B 55 F8 52 8B 45 B0 8B 88 48 24 00 00 00D29D20 E8 EB 18 FF FF 0F B6 C8 85 C9 74 1E 8B 55 B0 8B [...]
Несколько волнующих вопросов: 1) Это код из начальной или дамп версии? (поискал по 2 часа и там и там - не могу найти пока). 2) Ну и самый важный вопрос - как Вы отловили данную процедуру, как нашли ее, какие бряки ставили... Это самое важное что нужно понять Спасибо заранее.
Кодес оригинальной версии. На MessageBeep() брякнулся и в стеке посмотрел. Находишь ссылки на переменную 0xD7E328, там указатель на kernel32.WritePrivateProfileStringA(), три ссылки найдёшь, одна из них такая: Код (Text): 00D52A2E call 00D29C90 00D52A33 movzx edx,al 00D52A36 test edx,edx 00D52A38 je short 00D52A57 00D52A3A mov ecx,0D8B4B8 00D52A3F call 00D29210 00D52A44 push eax 00D52A45 push 0 00D52A47 push 0D7EBB8 ; ASCII "Key" 00D52A4C push 0D7EBB0 ; ASCII "LICENSE" 00D52A51 call dword ptr [D7E328] ; kernel32.WritePrivateProfileStringA 0xD29C90 - эта процедура. На неё 16 ссылок, походу в начале работы программы пароль с помощью неё и проверяется.
Если не трудно - проконсультируйте пожалуйста в icq. Я отписал на номер, указанный в вашем профиле. Спасибо.