Я тебе заранее развитие событий предскажу - не хуже пророка Хазыра. Никто тебе отвечать не станет. Ты покажи, что что-то делал, в чем-то ковырялся, чего-то достиг, распиши вопросы. Вот тогда, быть может, кто-то что-нибудь и ответит...
volodya сначала я просто убрал наг при запуске (использовал SoftIce 4.2.7) - во время работы программа выдавала ошибку. Дизассемблировать не смог (распаковал вручную, программа работает, но не дизассемблируется. Х/з почему W32dasm v.10 виснет). В реестре при вводе серийного номера (name: rs, s/n: 1111111111111111) создаются ключи: [HKEY_CURRENT_USER\Software\EasyBoot Systems\UltraISO\5.0] @="C:\\Program Files\\UltraISO" "UserName"="rs" "Registration"="8ce2aaffb1c28bc48ce2aaffb1c28bc4" При новой загрузке программы из реестра считывается значение параметра "Registration" и происходит проверка сначала по порядку все нечётные символы, а потов все чётные. Если хоть один символ неверный - jmp на nag. Нахожу всё, забиваю в параметр "Registration" - непротык. Чё делать дальше, в какую сторону копать? P.S. Во время трассировки программы периодически проскакивают ещё 2 набора символов по 8 и 16 штук подряд, может что-то в них. snatch ROR - как наити, у кого спросить?
распаковал вручную У меня стоит 7.22. Никаких упаковщиков я там не примечал. Написана на борландовском С++. В реестре при вводе серийного номера (name: rs, s/n: 1111111111111111) создаются ключи Ага. Код (Text): .text:004474D4 sub_4474D4 boolean __cdecl WritePassword(BYTE *lpData,char *s) получает на вход имя пользователя и введенный пароль пароль ксорится много раз в циклах вида: .text:00447568 mov eax, [ebp+s_n_buffer] .text:0044756B mov edx, dword_58311C[eax*4] .text:00447572 mov cl, [ebp+edx+buffer] .text:00447576 mov eax, [ebp+s_n_buffer] .text:00447579 mov dl, byte_58313C[eax] .text:0044757F xor cl, dl .text:00447581 mov eax, [ebp+s_n_buffer] .text:00447584 mov [ebp+eax+Data], cl .text:0044758B inc [ebp+s_n_buffer] .text:0044758E mov edx, [ebp+s_n_buffer] .text:00447591 cmp edx, 8 .text:00447594 jl short loc_447568 Потом вся эта муть записывается в реестр. Далее Код (Text): .text:0044770C CheckPassword int __cdecl CheckPassword(char *s,int) пароль читается, кстати, во время записи и проверки пароля юзается GetVolumeInformationA и юзается параметр VolumeSerialNumber пароль проверятся, декриптится и пишется в буферы и по ссылкам: .text:004479B5 mov edx, [ebp+arg_4] .text:004479B8 mov ecx, [ebp+var_C] .text:004479BB mov byte ptr [edx+ecx], 0 .text:004479BF push [ebp+s] ; src .text:004479C2 push offset password_buffer2 ; dest .text:004479C7 call _strcpy .text:004479CC add esp, 8 .text:004479CF push [ebp+arg_4] ; src .text:004479D2 push offset password_buffer ; dest .text:004479D7 call _strcpy .text:004479DC add esp, 8 .text:004479DF mov eax, 1 Далее эти буферы проверяются, от пароля считается CRC16, дальше над этим всем еще как-нибудь издеваются и, пардон, мне надоело. ROR - как наити, у кого спросить? Гы-гы. Так они тебе и ответят.. На этом люди деньги делают. А ты на халяву (любимое русское слово) хочешь.
Вах, как прикольно! Только сейчас заметил. Ребята там решили свою криптографию реализовать. Юзается библиотека Ленстры - LIP - long integer package. Кажется, мне где-то попадалась ее сигнатурка... А в любом случае, полезно тебе будет сделать самому. 1) Компилишь пакет 2) На либу юзаешь FLIRT 3) Пихаешь в иду 4) Смотришь что к чему Доки на LIP вот: www.enseignement.polytechnique.fr/profs/ informatique/Philippe.Chassignet/97-98/BIGNUMS/lipdoc.ps Слить пакет отсюда: http://student.cs.ucc.ie/~kpr1/lip/lip_C.ZIP И пиши как успехи. Мне самому немного интереснее стало.
А вот теперь я уже сам ни фига не понимаю. Скомпилил LIP, сделал сигнатурки, запихал в иду -> получил фигу. Причем, знаю на 100%, что там именно LIP юзается... Велик и непонятен сей факт есть...
volodya Про упаковку: Peid 0.92 показывает - ASPack 2.12 -> Alexey Solodovnikov. Про халяву: не хочу, т.к. цель - разобраться самому, точные ответы не нужны, только направление в нужную сторону (по другому не научишься). Про иду: опыта работы с ней мало, с удовольствием разберусь, но нужен подробный мануал (ссылка, желательно на русском, но не принципиально), а то я на самом деле знаю мало, больше интуиция и догадки. Про пиши: дай свой адрес А за ссылки - ОГРОМНОЕ СПАСИБО!
Peid 0.92 показывает - ASPack 2.12 -> Alexey Solodovnikov Какая у тебя версия? не хочу, т.к. цель - разобраться самому, точные ответы не нужны, только направление в нужную сторону (по другому не научишься). Предполагаю использование каких-то мат. операций из пакета LIP опыта работы с ней мало, с удовольствием разберусь, но нужен подробный мануал kpnc.opennet.ru - и читай, пока не позеленеешь xtin.org - тоже самое дай свой адрес Ты сюда пиши. Некогда мне переписку вести.
в дополнение: у меня такое ощущение, что в программе происходит проверка на обнаружение отладчика или в этом духе, а далее генерация s/n по ложному пути. В конечном итоге, проверка на серийный номер есть, но и он не верный. Есть мысль поискать в этом направлении. Версия UltraISO 7.0.0.719.
На самом деле попробую все пути, некоторые по нескольку раз, пока не разберусь до конца. Просто я думаю, что помощь более опытного человека - хорошо, но если ещё есть и свои мысли, то это тоже не плохо. Что-нибудь наковыряю - обязательно напишу. P.S. Насчёт Peid 0.92 показывает - ASPack 2.12 -> Alexey Solodovnikov, это есть правда.
А что это хорошая прога? Что умеет? Я как-то юзал WinISO и то только для того чтоб выдрать Acronis'овский boot сектор с CD диска =)
Гы-гы. Так они тебе и ответят.. На этом люди деньги делают. А ты на халяву (любимое русское слово) хочешь. Хехе... Ну деньги - это вторичное... И вопрос ещё - делают ли они это именно ради денег... Это же 0dayz группа, а там деньги обычно делают либо левые группы, либо хреновы админы...
Asterix Ultra ISO корректнее работает с boot-sector. WinISO на некоторых образах просто вываливается, после редактирования образа пропадает загрузка, а иногда и образ становится нерабочим volodya Версия 7.2 тоже упакована aspack. Она зарегистрирована на конкретное имя(у меня). 7.22 возможно по другому ломали, да и для такой популярной программы возможны разные варез-варианты. А может вообще для экономии упаковали.
Ну скачал я этот релиз от ROR, там нужно подменить exe'шник чтоб их кейген работал, так что видимо не всё так просто лучше юзать имеющиеся ключи, благо на просторах сети ещё водятся такие, кардить проще чем ломать
там нужно подменить exe'шник чтоб их кейген работал Подобная тема немного обсуждалась на reng.ru. Я думаю, что UISO юзает криптографию с открытым ключом (на базе LIP). Обычно файл падчат для того, чтобы поменять ключик. Я приведу цитату: "Классический пример: ключ основанный на критухе с открытым ключом, когда публичный ключ зашит в прогу, а секретный есть только в приватном кейгене у разработчиков. Такую прогу не закейгенишь в чистом виде, но подменив в теле программы публичный ключ на свой (для которого секретный ключ известен) можно с успехом делать ключи, которая прога не отличит от "настоящих". Замечу, что патчится не код программы (все проверки остаются нетронутыми), но ее данные." И тут также. Или потратить кучу времени, факторизуя число, находя квадратичный невычет или дискретный логарифм (или что у них там) или так, как предложил Relf. Снять Aspack, сделать падч + кейген.
> Подобная тема немного обсуждалась на reng.ru. Да я это всё читал, и TheBat так когда-то патчили, но как сказал Dmit, что-то типа патч есть патч, т.е. патч+keygen ничем не отличается от патча, ибо этот публичный ключ можно защитить хитрой проверочкой и обнаружив подмену делать гадости в виде различных глюков в проге