Сейчас на форуме: padad42664, kris_sexy, site-pro, vasilevradislav (+6 невидимых) |
![]() |
eXeL@B —› Крэки, обсуждения —› MP3book2005 - читает с интонацией. Исследоввание защиты. |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 15 . 16 . >> |
Посл.ответ | Сообщение |
|
Создано: 02 мая 2006 13:31 · Личное сообщение · #1 Прошло много лет и я снова заинтересовался речевыми движками. Оказывается народ много сделал для этого. Как вы знаете нужна специальная программа - читалка. Сейчас в интернете все больше становится популярной MP3book2005, которая читает с интонацией и имеет массу удобных функций. Вот ее я и решил исследовать. mp3book2005.narod.ru/MP3book2005.zip Сразу бросается в глаза простая уязвимость - программа выводит сообщение при вводе неправильного ключа. Причем использует банальную функцию msvbvm60.rtcMsgBox. Программа написана на Vb. Упакована как показывает Peid ASPack 1.06b / 1.061b -> Alexey Solodovnikov. Но по-моему автор там еще самодеятельностью занимался. Ограничения программы - все работает, кроме сервисных функций: пополнения словаря, поиск омографов, имен. В общем дополнительная комфортность. Каждая ограниченная функция выводит сообщение, что дескать просим зарегистрироваться. Путем установки бряков удалось выяснить, что сообщение о неправильном ключе выводится по адресу 0047B2F4, пройдя выше потерял след на адресе 0047AF22. Решил зайти с другого бока, выяснил, что по адресу 0047A9Ac загружается введеный код и происходит его обработка. Но вот беда программа почти не дает ставить бряки, сразу вываливается в исключения. Пишет "ошибка переполнения". Ломал Олей. Любимый отладчик. Кто может помочь с распаковкой или советом, как предолеть эту преграду, пишите. Но вот все же кусочек отломил. Чтобы программа сохраняла обработанный текст достаточно заменить по адресу 0046D209 JZ на JNZ. Хочется разумеется боьшего. ![]() |
|
Создано: 21 июня 2006 09:19 · Поправил: ShEriF · Личное сообщение · #2 Привет всем, Незнаете как генерируется Серийный номер в программе, копался в ней пробывал найти, нашел где хранится в памяти валидный ключ, но его записть в пямять производит Kernel32.dll которая также дает выдает ссылку на место в пямяти ключа. и такой вопрос-можно средствами windows dll получить Hardware ID в виде номера (HEX или DEC)? Добавил: Сегодня выложу keygen для программы вроде понял как его сделать. ![]() ![]() |
|
Создано: 21 июня 2006 13:53 · Поправил: ShEriF · Личное сообщение · #3 ВоТ держите keygen для программы. Генерация оказалась не сложная, ![]() Пас: www.exelab.ru Сори за ошибку!!! ![]() |
|
Создано: 21 июня 2006 18:23 · Личное сообщение · #4 |
|
Создано: 22 июня 2006 23:04 · Личное сообщение · #5 |
|
Создано: 23 июня 2006 07:31 · Поправил: ShEriF · Личное сообщение · #6 |
|
Создано: 23 июня 2006 22:39 · Личное сообщение · #7 |
|
Создано: 24 июня 2006 00:46 · Личное сообщение · #8 |
|
Создано: 24 июня 2006 07:07 · Поправил: MASSER · Личное сообщение · #9 zarkad пишет: Ну так чего, с паролем-то на кейген? во втором посте сверху написано: Пас: www.exelab.ru ![]() |
|
Создано: 24 июня 2006 08:17 · Личное сообщение · #10 Скачал распаковал и запаковал без пароля, скачивайте, у ково сложности с паролем. ![]() ![]() |
|
Создано: 24 июня 2006 11:00 · Личное сообщение · #11 |
|
Создано: 24 июня 2006 11:04 · Поправил: mysterio · Личное сообщение · #12 |
|
Создано: 24 июня 2006 11:39 · Поправил: ShEriF · Личное сообщение · #13 |
|
Создано: 24 июня 2006 13:29 · Личное сообщение · #14 Все завершил работу, keygen сделан, теперь может генерить Регистрационный код по введенному Серийному номеру. Но, при запуске генератора он по умолчанию генерит Регистрационный код для текущей машины. С уважением ShEriF. ![]() ![]() |
|
Создано: 02 июля 2006 16:32 · Личное сообщение · #15 |
|
Создано: 02 июля 2006 20:43 · Личное сообщение · #16 |
|
Создано: 03 июля 2006 01:17 · Личное сообщение · #17 |
|
Создано: 03 июля 2006 05:47 · Личное сообщение · #18 |
|
Создано: 03 июля 2006 23:10 · Личное сообщение · #19 |
|
Создано: 03 июля 2006 23:42 · Личное сообщение · #20 У меня тож она ничего не выдавала при вводе серийника (иногда говорила Overflow). Там какая-то ошибка кажись (смотрел код). Потом надоело. Попробовал отталкиваться от запрещенных для демоверсии функций, типа "сахранить как..." Там походу перед регистрацией она проверяет зарегина ли она след способом: смотрит в заголовок. Если там написано "MP3Book2005 " (с пробелом после названия), то она думает, что надо бы зарегистрироваться и запускает процедуру регистрации. А если нет пробела "MP3Book2005", то работает , думая что ее уже зарегили. Че так, я не знаю. Когда я поменял этот байт (убрал кое-где в 1 месте "лишний" пробел, поменяв "20" на "00"), прога стала думать что она зарегена. ![]() |
|
Создано: 04 июля 2006 00:02 · Личное сообщение · #21 Она даже при наличии рег. файла созданного более раними версиями программы (336 или 337), пишит что не зарегистрирована. Автор программы наверное намеренно убрал процедуру регистрации ![]() Посмотрим как будет вести себя новая версия ![]() Nan0miT Если не трудно дай адреса процедуры проверки рег. ключа в вверсии 338.( адрес процедуры регистрации ), и адреса проверок до того как приступить к регистрации. ![]() |
|
Создано: 04 июля 2006 01:19 · Личное сообщение · #22 в архиве: файлы "MP3Book2005.8.u_d_.form.txt" и "MP3Book2005.8.u_d_.com.txt" - это форма и процедура регистрации (с бейсиком не дружу, и ниче сказать не могу). файл "MP3Book2005.338.txt" - это место, на которое я попал при нажатии "сохранить как..." Здесь происходит сравнение "MP3Book2005 " с "MP3Book2005" (лишний пробел). Таких мест несколько (т.к. несколько ограничерых функций) но процедура сравнения одникова. А менял я байт для "MP3Book2005 " в дампе (нашел место с помощью СтрингРеференса: (для патча) Address Old Byte New Byte ---------------------------------------- 0000022EDE 20 00 ![]() ![]() |
|
Создано: 04 июля 2006 11:54 · Поправил: ShEriF · Личное сообщение · #23 Nan0miT Спасибо посмотрю. Примечание: Алгоритм генерации серийного номера не изменился. Генерация происходит по следующему принципу: XXX - XXXXXXXXX _\_______\- Это номер HardwareID __\- Сдесь хранится версия билда программы (пр. 336 или 338 - при гененации рег. кода не учитывается) Замена чисел на символы происходит от 0 до 9 в строгой последовательности, т.е ищется 1-е вхождение числа в Серийный номер если такое найдено, то замена на соответствуюшую букву. ![]() |
|
Создано: 04 июля 2006 13:44 · Личное сообщение · #24 |
|
Создано: 04 июля 2006 13:53 · Поправил: ShEriF · Личное сообщение · #25 |
|
Создано: 04 июля 2006 14:10 · Личное сообщение · #26 ну хотя бы потому что: Возможны два варианта регистрации: · «ОБЫЧНАЯ» - регистрация одной версии программы для одного компьютера - стоимость 250 рублей. · «ПОСТОЯННАЯ» - регистрация всех версий программы MP3book2005 - стоимость 500 рублей. там явно видно что подряд идут две проверки (не совсем подряд, придется вниз\вверх пролистать) ![]() |
|
Создано: 04 июля 2006 14:28 · Личное сообщение · #27 Nitrogen возможно, тогда такая проверка должна осуществлятся при загрузке программы. Nitrogen пишет: там явно видно что подряд идут две проверки (не совсем подряд, придется вниз\вверх пролистать) А адрес этих проверок есть? Напиши если не трудно. Примечание: Почти нашел алгоритм генерации рег. кода для версии 338. ![]() |
|
Создано: 04 июля 2006 14:48 · Личное сообщение · #28 ShEriF я смотрю на старую версию .text:00470D74 mov ecx, [ebp+8] .text:00470D77 mov ecx, [ecx+128h] .text:00470D7D call ds:__vbaI4Abs .text:00470D83 mov dx, [ebp-68h] .text:00470D87 sub dx, 1 .text:00470D8B jo loc_47129C .text:00470D91 movsx ecx, dx .text:00470D94 cdq .text:00470D95 idiv ecx .text:00470D97 add eax, 17F2DAAh .text:00470D9C jo loc_47129C .text:00470DA2 mov edx, [ebp+8] .text:00470DA5 xor ecx, ecx .text:00470DA7 cmp [edx+5Ch], eax .text:00470DAA setz cl .text:00470FF3 mov dword ptr [ebp-4], 0Fh .text:00470FFA mov eax, [ebp+8] .text:00470FFD mov ecx, [eax+128h] .text:00471003 call ds:__vbaI4Abs .text:00471009 xor eax, 0F4C7E8h .text:0047100E mov ecx, [ebp+8] .text:00471011 cmp [ecx+5Ch], eax .text:00471014 jnz loc_471240 ![]() |
|
Создано: 04 июля 2006 15:39 · Личное сообщение · #29 |
|
Создано: 07 июля 2006 19:45 · Личное сообщение · #30 Доброго времени суток. В версии 338 изменился алгоритм генерации рег. кода, поэтому мой keygen уже бесполезен ![]() Алгоритм таков: Берется HardwareIDh делится (IDIV) на 26h получается число, которое XOR`ится с A241 (в моем случае). Последнее получается в результате произведения чисел 569 на 73 (236h * 49h) - в моем случае. 0048525A 8B3D B4104000 MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaI4>; MSVBVM60.__vbaI4Abs 00485260 8BC8 MOV ECX,EAX 00485262 FFD7 CALL EDI 00485264 D985 7CFFFFFF FLD DWORD PTR SS:[EBP-84] -----> число 1 [569] 0048526A D84D 80 FMUL DWORD PTR SS:[EBP-80] -----> число 2 [73 ] 0048526D 8BD8 MOV EBX,EAX 0048526F DFE0 FSTSW AX 00485271 A8 0D TEST AL,0D 00485273 0F85 DB060000 JNZ MP3Book2.00485954 Есть загвоздка, откуда берутся числа 569 и 73 в стеке? или в результате каких действий они получаются? в Attache файл версии 338. ![]() ![]() |
|
Создано: 09 июля 2006 16:31 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 15 . 16 . >> |
![]() |
eXeL@B —› Крэки, обсуждения —› MP3book2005 - читает с интонацией. Исследоввание защиты. |
Эта тема закрыта. Ответы больше не принимаются. |