T..E..A..M...5..3...T..U..T..O..R..i..A..L..S...P..A..C..K...#..1..0 ██████▀▀ ▀█▓▄ ▀▀▀▀▀▀ ▄█▓▀ ▀▀▀▀▀▀▀▀▀ ▄█▓▀ ▀▀▀▀▀▀▀▀▀ ▄█▓▀ ▀▀██████ ▓▀ ▀█▌ ▐██▌ ▐██▌ ▄ ▐██▌ ▄▓▄ ▐██▌ ▐▓▀ ▀█ ██▄▄▓▀ ▄████▓▓ ███▓█▓▄ ▀▓▀ █████▓▄ ▀ █████▓▄ ▀▓▄▄█▓ ▓▀▀ ▄▄██▓▀ ████ ████ ▀▀▓▓▄▄ ███▓ ▀▀▓▓▄▄ ███▓ ▀█▓▓▄▄ ▀▀▓ ▄▄█▓█▀██▌ ████ ████ ██▓▓ ███▓ ██▓▓ ███▓ ▐██▀█▓▓▄▄ ███▓ ██▓▄ ███▓ ███▓ ▄▄████ ████ ▄▄████ ████ ▄██▓ ███▓ ████ ███ ████ ███▓▄█▀ ▄▄▄▄ ███▓▄▓▀ ████ ████ ██▓ ███▓ ███ █████▌ ███▓ █████▌ ████ ████ ███ ████ ASCII ██▓ ▄▄ ████▀█▄ ███▓ ████▀▓▄ ████ ████ ████ -XERO ██▓ ▀█▓▀ ████ ████ ████ ███▓ ███▓ ▄ ████ -2006 ███ ███▓ ████ ███▓ ███▓ ████ ▀▓▀ ███▓ ▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ███▓▀▀▀▀▀▀▀▀▀▀▀ ▀▀█▓▄▄ ▀▀▀▀▀▀ ▄█▓▄ ▀▀▀▀▀▀ ▄▄█▓▀▀ ▀▀▀▀▀▀▀▀▀▀▀████ ████▀ ▄▓▄ ▄ ▀██▓▓▄ ▀██▓▄▀▀▄██▓▀ ▄███▓▀ ▄ ▄▓▄ ▀███▓ ███▌ ▀ ▀█▓▄ ▀▓▀ ▐████▌ ▐███▌▐███▌ ▐████▌ ▀▓▀ ▄█▓▀ ▀ ▐███ ██▀▓▄▀▓▄ ▐██▌ ▄ ▄███▓▀ ▄█▓▓▀ ▀██▓▄ ▀███▓▄ ▄ ▐██▌ ▄▓▀▄█▀██ █▄ ▄█▌▐█▌ ▄██▓▀ ▄▄▓▓▀▀▄▄█▓▀▀ ▀▀▓▓▄▄▀▀█▓▄▄ ▀██▓▄ ▐█▌▐▓▄ ▄▓ █▓▓▀▀▄███▓▀▀▄▄▓▓▀▀▄▄█▓▀▀ ▀▀▓▓▄▄▀▀▓▓▄▄▀▀▓██▓▄▀▀██▓ ▀▄▄██▓▀▀▄▄█▓▀▀ ████▓ ▄▄▄▄ ▄▄ ▄▄ ▄▄▄▄ ▄▄▄▄ ███▓▓ ▀▀▓▓▄▄▀▀█▓▓▄▄▀ ▄▓▀██▓▀▄███▓▀ ████▓ █▓ █▓ █▓ █▓ █▓▄▄ █████ ▀██▓▓▄▀███▀▓▄ ▐█▄ ▄█▌▐████▌ ▄█▓▄ █████ ██ ██▄██ ██ ▄▄█▓ █████ ▄█▓▄ ▐████▌▐▓▄ ▄█▌ ▀█▓██▓▄▀███▓▄ ▀▀ █████ ▄▄▄▄ ▄▄▄▄ ▄ ▄▄▄ █████ ▀▀ ▄███▓▀▄████▓▀ ▄▀▀██▓▄▄▀▀█▓▄▄ █████ █ ▓ █▄▄▓ ▄█▓ ██ █▓ █████ ▄▄█▓▀▀▄▄█▓▓▀▀▄ █▓█▄▄▀██▓▓▄ █████ █▓ ██ █▓ ████▓ ▄███▓▀▄▄██▓ █▀ ▀█▌▐████ ████▓ ▄▄█▓ █▓ █▓ █▓ ████▓▄▄█▓ ████▌▐█▀ ▀▓ █▓▄▓▀▄█▀███ ████▓ ▄▄▓████▓ ▀▀▀▀ ▀▀▀ ████████▓ ██▓▀▓▄▀▓▄██ ███▌ ███ ██████▓▀▀ █████ ▄▄▓▓▀▀ █████ ███ ▐███ ███▓▄ ▓▓▓ ▄██▓▀▀ █████ ▄▄█▓▀▀ █████ ▓▓▓ ▄████ ████ ▀▄ ▒▒▒ ▄███▓▀ █████ ▄███▓▀ █████ ▒▒▒ ▄▀ ████ ████ ▐▌░░░▐████▌ █████ ▐████▌ █████ ░░░▐▌ ████ ████ ▄▀ ▀██▓▓▄ ▐████▓ ▀██▓▓▄ ▐████▓ ▀▄ ███▓ ███▓▐▌ ▄▓▄ ▄█████▌ ▄█████▌ ▄▓▄ ▐▌███▓ ███▓ ▀▄ ▀ ▄▄█████▓▓▀ ▄▄█████▓▓▀ ▀ ▄▀ ███▓ ███▓▄▄▄▄▄▄▄▄ ▄▄▄▄██████▓▓▀▀ ▄▄▄▄▄ ▄▄▄▄██████▓▓▀▀ ▄▄▄▄▄▄▄▄▄▄▄████ Как сделать из программы кейген Инструменты.: Debugger (любой)/W32Dasm/Hex Editor/Digi-Watcher 1.2 Атор........: ParaBytes Перевод.....: NightCat \\ TEAM FIFTY THREE * * * Вступление * * * Давайте проясним, что такое внутренний кейген. k.i. (keygen injection) - это поработка программы таким образом, что вместо сообщения о неправильно коде вам выводится правильный серийник. * * * Начинаем * * * Начинаем раскачку... ;p Итак, начало... Сперва запустим екзешник... хмммм, наг? machine ID ?? Боже ты мой! давайте введём кой-чё, например 'ParaBytes0wnzDigiWatcher4Life' и нажмём register, хммм, сообщениt об ошибке, запомним, закрываем программу... (Итак, у нас два сообщения об ошибке, одно о коротком серийнике, второе о неверном, мы об этом потом поговорим) Теперь засовываем exe в w32dasm, посмотрим в String References, поищем наше сообщение, ух ты, я вижу "Thank you!". Ну, если бы они меня знали, то не благодарили бы. =) Кликнем по этой сроке и окажемся в коде. Под этой строкой мы видим весь текст благодарностей. =) Мы там, где надо... проскроллим чуть вверх, хммм, условнй переход поблизости, а рядом сообщени о неправильном коде? ok, мы действительно там, где нужно! итак, раньше мы видим условный переход (004245F6 - offset) и сслыку на strncmpю. Ну, Str - это string (строка), Cmp - это compare(сравнение), что означает, что мы имеем дело со сравнением строк и сразу же после этого мы получаем сообщение об ошибке??? хмм, (m*c^2=E ;p) это значит, что скорее всего именно тут сравниваются серийные номера. 1. загрухите этот файл в свой любимый отладчик (SoftICE/W32Dasm/OllyDbger/TRW2000/...) 2. и поставьте брейкпоинт на оффсет перед вызовом (004245E6) 3. запустите программу, введите любой серийник и попробуйте зарегистрироваться (теперь, если вы прервались, то принимайтесь читать пункт "Понимание", а если нет, то продолжайте читать тут) Re-Enter? хммм... не прервались?? ну, это может быть объяснено тем, Что серийный номер который вы ввели не удовлетворяет условиям, это может быть только число в hex-виде, или только цифры, мы не знаем, давайте поищем в файле строку "Re-Enter" (во w32dasm'е) и что мы нашли? Прямо под этой строкой видим: cmp ecx,1B --> jnb Ага, значит серийный номер должен быть больше 26 символом... что же, введём 27... прервались! ПОНИМАНИЕ --------- Что делает программа : push serial1 <-- записываем первый (обычно верный) в стэк push serial2 <-- записываем второй (обычно нам, неверный) в стэк Call StrCmp <-- вызываем процедуру (где много StrCmp) test al,al <-- если они одинаковы, то al=0 je goodBoy <-- если 0, то всё хорошо! а сообщение, это messagebox и работает оно так: push buttons <-- ставим кнопки (0 - сообщение с одной кнопкой - OK) push caption <-- ставим заголовок push text <-- ставим текст сообщения call MessageBoxA <-- вызов итак, то, что нам нужно сделать - это каким-то образом, когда мы получаем плохое сообщение заменить текст этого сообщения на правильный серийник и переписать заголовок на что-то типа 'Вот ваш настоящий ключ :'. плохое сообщение должно выглядеть так : push 0 <-- ставим кнопку OK push Caption <-- наш изменённый заголовок push serial1 <-- пишем настоящий серийник Call MessageBoxA <-- выполняем сообщение ok... давайте патчить... откройне hex-редактор, идём к месту проверки сирийного номера и копируем код из push serial1 в нашем случае это : push 00490720 итак, копируем код (6820074900) и идём к push text в нашем случае : push 00442660 замените push text на push serial. теперь ищем заголовок ( "Regitsration Error" ) и меняем его на то, что вам хочется И БУДЬТЕ ВНИМАТЕЛЬНЫ! ИСПОЛЬЗУЙТЕ СТОЛЬКО ЖЕ СИМВОЛОВ, СКОЛЬКО БЫЛО!! Если вы используете больше. то прога не запустится, а если меньше. то остальное просто затрите пробелами. и сохраните, запустите, нажмите register, и ? о, блин, проверка на длину строки, снова валим во w32dasm, ищем это сообщение, смотрим оффсет, открываем Хекс-Редактор и заменяем jnb goodLenght на jmp! Сохранили, запустили, Вуоля! Заключение: +----------+ Сегодня мы вяснили, что k.i. относительно strcmp совсем не трудно реализовать, хотя бы на простой программе :) всех люблю, ParaBytes. Держим Связь : ~~~~~~~~~~~~~~ E-Mail : Lewsers@Hotmail.com IRC : EFNet - #New2Cracking ParaBytes.