_ ______________________ _ \ \\ _\ /_ // / ______ | __ | ______ \_ \_|_ / \ __ ___ __|_\_ \ / /_ \/ \/ \/ \ / _/ / /____/ / /__/\__\ _ /_/ _/____/___ \______________\__/_/__\___/_________/ wPx| /___/ | | TEAM-53.TUTORiALS.14 | !_ _! (____________________) Создание PalmOS.SelfKeygen Лирика Для начала давайте определимся что такое SelfKeygen. Явно, что происходит это он слова Keygen, то бишь "генератор ключей". Тогда, спрашивается, что значит Self? Self - это от англ. "сам"… Не буду долго мусолить эту тему, скажу лучше, что прога сама себя кейгенит и выдает нам ключик на наш установленный HS ID. Чем это хорошо? Тем, что дальше ставим нормальную версию проги (триалку с оффсайта) и вводим ключик, полученный из селфкейгена. Т.е. никакого вмешательства в код конечной проги. Итак… пора к делу. Подопытной прогой будет… PalmMan :-\ PacMan короче говоря. Где я ее взял - не помню. Приступаем. Начало как всегда одинаковое… идем в меню регистрации, вводим от балды любой серийник и получаем "The key is invalid" . Нас это как-то не особо смущает, т.к. ниче другого врядли можно было ожидать. Дальше тоже все как обычно - идем в PRCedit и открываем наше файло… Если не изменяет память - можно что-то там пропатчить и нам высветится "хорошее" окошко, но это только на 1 раз. При следущем запуске прога снова будет триальной. По-любому у нас сейчас другая задача. ===============Cut Here=============== Теория СелфКейгена. 1) Ищем где идет сравнение номеров 2) Меняем сравнение на Custom alert 3) Меняем содержимое Custom Alert'a ===============Cut Here=============== Все просто =) *Справка Шо есть CustomAlert? Это есть алерт, НО с возможностью менять его содержимое. Т.е. допустим у нас есть алерт с заголовокм "Error". А содержимое этого алерта может быть разное в зависимости от ситуации… например "The OS is old", "Color not supported", "Wrong key"… всего "вариантов" содержания для 1 алерта может быть всего 3 штуки. Обозначаются эти "варианты" как ^1, ^2, ^3 (это нам понадобится позже) Итак… как бы нам найти сравнение… наиболее "популярный" для этого дела опкод - "sysTrapStrCompare", который даже есть в keywords у PrcEdit. Открываем это подменю и видим 2 ссылки. Смотрим обе…. Не знаю как вам, но мне кажется очень "подозрительным" комментарии "; Registration" чуть пониже первой ссылки ;-) Будем надеяться что это оно. Приступаем к 1ому пункту из вырезки…. Имеем =======================Cut Here======================= 000029f0 6744 BEQ L310 000029f2 2f2c296c MOVE.L 10604(A4),-(A7) 000029f6 2f0a MOVE.L A2,-(A7) 000029f8 4e4fa0c8 sysTrapStrCompare 000029fc 504f ADDQ.W #8,A7 000029fe 4a40 TST.W D0 =======================Cut Here======================= Меняем на =======================Cut Here======================= 000029f0 6744 BEQ L310 000029f2 2f2c296c MOVE.L 10604(A4),-(A7) 000029f6 2f0a MOVE.L A2,-(A7) 000029f8 3f3c03ea MOVE.W #1002!$3ea,-(A7) ; Registration 000029fc 4e4fa194 sysTrapFrmCustomAlert 00002a00 6632 BNE L309 =======================Cut Here======================= Поясняю. Вместо "sysTrapStrCompare" мы вставили опкод вызова алерта. Как я его получил? Да просто пошел по ссылке алерта из меню "Alerts" и скопировал опкод ;-) в следушей строке я указал что этот алерт будет Custom. (опкод для Fixed alert - 4e4fa192, для Custom - 4e4fa194) Теперь можете сохранить файл и загрузить его в эмуль… при попытке регистрации вам вылетит тот алерт, чей опкод вы указали в строке 000029f8. (я использовал с заголовком Registration", или, чтоб понятней - предпоследний). Это все круто, но номера мы так и не получили… Что делать?. Да все просто ;-) * идем в хекс редактор, который является первой вкладкой и ишем там слова "registration succ" - это содержание того окна, которое я вызывал принужденно. * И меняем его… стираем что там написано (главное не потереть точку перед ОК). * вписываем новое значение окна: "^1 | ^2 | ^3|" зачем нужны палочки? Чтоб быть разделителями между значениями =) * сохраняем, грузим. Вводим любой номер… например 123. появляется алерт… 123 | 459294721954 | (ясно зачем палочки? )))) итак. Что видим? ^1 - это то что мы ввели а ^2 - с чем сравнивается… третьего нету. В принципе номер получили, можно так и оставить… но чтоб было красиво, можно изменить содержание алерта след. Образом - "Ur serial is ^2" Ну и заголовок окна сменить ;-) Вот собсно и все. При написании тутора юзался Симулятор ОС5, т.к. на POSE прога не шла.. V0land // TSRh