_|________ ______|_ ____: /_ ____\ :______ __|____ _____|____|_________ | | \__ \_ |___ | |_ / / _| (_________________/_________________) TEAM-53 TUTORiALS PACK NUMBER EiGHTTEEN ПРОСТАЯ РЕГИСТРАЦИЯ EAR POWER 3.0 Программа..: EAR POWER 3.0 http://www.earpower.com/ Инструменты: SoftIce, W32Dasm (не обязательно), RegSnap (не обязательно) ПРЕДИСЛОВИЕ: Это моя первая статья по исследованию программ, поэтому не судите (да не судимы будете!) слишком строго. Она предназначена для начинающих, каким и сам я являюсь. Программа мне попалась на диске к журналу Hard & Soft №10 2003г. Вот что про неё написано: Программа для тренировки слуха и обучения музыке. Программа допускает 7 пробных запусков (видимо по числу нот) после чего часть функций становится недоступной. ИССЛЕДОВАНИЕ: Перед установкой программы желательно сделать снимок системы, чтобы посмотреть какие изменения она в неё вносит. Я для этого использовал RegSnap. После запуска программы попадаем в окно для ввода регистрационного кода. Вводим что-нибудь в него и нажимаем Enter. Чуть ниже окна ввода видим такой вот текст: “This is not the correct number! Please retry.” Выходим из программы, запускаем Wdasm и пробуем его найти, но ничего не находим. Тогда вновь запускаем программу. Вводим в окно один любой символ и запускаем SoftIce. Ставим “бряк” на функцию GetWindowText (приложение Win16). То есть bpx getwindowtext, и жмём F5. Затем нажимаем кнопку Enter и попадаем снова в SoftIce. Нажимаем F12 один раз и попадаем вот сюда: (это из Wdasm). :0009.952F 9AFFFF0000 call USER.GETWINDOWTEXT :0009.9534 56 push si<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< мы здесь :0009.9535 6A65 push 0065 :0009.9537 6A0E push 000E :0009.9539 6A00 push 0000 :0009.953B 666A00 push 00000000 :0009.953E 9AFFFF0000 call USER.SENDDLGITEMMESSAGE :0009.9543 A3B036 mov word ptr [36B0], ax :0009.9546 832EB03605 sub word ptr [36B0], 0005 :0009.954B A1B036 mov ax, word ptr [36B0] :0009.954E A3B436 mov word ptr [36B4], ax :0009.9551 833EB03604 cmp word ptr [36B0], 0004 :0009.9556 0F8EC100 jle 961B<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< если меньше или равно то прыгаем….. :0009.955A C706B2360000 mov word ptr [36B2], 0000 :0009.9560 EB60 jmp 95C2 ……………………………………………………………….. :0009.961B 833EB23623 cmp word ptr [36B2], 0023<<<<<<<<<<<<<<<<<< вот сюда :0009.9620 7407 je 9629 :0009.9622 833EB03605 cmp word ptr [36B0], 0005 :0009.9627 7D07 jge 9630 :0009.9629 8B46F8 mov ax, [bp-08] :0009.962C 40 inc ax :0009.962D A3B036 mov word ptr [36B0], ax :0009.9630 A1B036 mov ax, word ptr [36B0] :0009.9633 3B46F8 cmp ax, [bp-08] :0009.9636 7438 je 9670<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< это то, что нам нужно :0009.9638 833EF60503 cmp word ptr [05F6], 0003 :0009.963D 7326 jnb 9665 :0009.963F FF06F605 inc word ptr [05F6] :0009.9643 56 push si :0009.9644 68AE08 push 08AE :0009.9647 9AFFFF0000 call USER.GETDLGITEM :0009.964C 8BF8 mov di, ax :0009.964E 6AFF push FFFF :0009.9650 9AFFFF0000 call USER.MESSAGEBEEP :0009.9655 57 push di :0009.9656 FF36520E push word ptr [0E52] :0009.965A FF36500E push word ptr [0E50] :0009.965E 9AFFFF0000 call USER.SETWINDOWTEXT<<<<<<<<<<<<<<< выводится строка (This is…….). :0009.9663 EB08 jmp 966D Идём клавишей F10 до тех пор, пока в окне SoftIce не увидим этот текст (This is not the correct number!). Теперь мы знаем то место, где выводится эта строка. Смотрим чуть выше и вот что видим: По адресу 9636 находится переход je (переход если равно) на адрес 9670. В SoftIce мы его видим как jz (переход если ноль). Это одно и тоже. Теперь смотрим: если совершить переход, на этот адрес, то мы перепрыгнем функцию вывода строки о не правильной регистрации. Выходим из программы и SoftIce. Снова вводим символ, нажимаем Enter и в SoftIce идём до этого перехода (адрес 9636). В самом верхнем окне SoftIce (окне регистров) в правом углу есть строка, которая отображает состояние флагов. Выглядит она так: o d I s z a p c. Нас интересует флаг нуля т.е. z. Как видим флаг сброшен (маленькая буква z), поэтому переход на адрес 9670 не осуществляется. Попробуем его осуществить. Для этого выделяем мышкой букву z и нажимаем клавиши insert и enter. Есть переход! Теперь убираем “брэйк” – bd 0 и жмём F5. CONGRATULATION! (Поздравления). Программа зарегистрирована. Для тех, кому этого покажется мало, можно будет в окне программы после надписи Registered to…. Написать своё имя. Для этого сначала надо раз регистрировать программу. После сравнения снимков RegSnap показал, что программа добавила два новых файла в папку Windows. Это c0r2.0_x и ~sys01_fx (скрытый), вот их и нужно удалить. Кстати файл удаления программы тоже находится в этой папке. После удаления этих двух файлов запускаем программу и вводим в окне регистрации новые данные. Своё имя и 5 любых символов. При проверке они удалятся. Если общее число символов меньше 10, то делаем то же самое, о чём сказано выше. Если, общее число символов больше 10, то по адресу 9556 вот здесь: :0009.9556 0F8EC100 jle 961B перехода не будет. Значит, нужно его сделать вручную. Встаём на этот адрес, меняем флаг s на S и дальше то же самое, что и выше (меняем переход по адресу 9636). Выходим из SoftIce в программу. Заходим в меню File и выбираем Save configuration. Перезапускаем программу. Всё!!! БЛАГОДАРЮ ЗА ВНИМАНИЕ! Данная статья является учебным пособием и использование её в корыстных целях НЕДОПУСТИМО. Ругать, хвалить и задавать вопросы: iminister@list.ru Alexandr