Сейчас на форуме: subword, rtsgreg1989 (+9 невидимых) |
eXeL@B —› Основной форум —› прога работает только в английской винде и CrypKey |
Посл.ответ | Сообщение |
|
Создано: 16 апреля 2008 01:54 · Поправил: Модератор · Личное сообщение · #1 зашищена CrypKey v6.5, там что-то вроде конверта, и даже хуже, поэтому пропатчить не получается. unlimided license code у меня есть, но хочу работать в русской винде. в русской при запуске вываливается с ошибками, сообщается номер строки в proga.cpp, какое-то число, и "Unrecognized error". думаю, что надо что-то перехватить и подкорректировать ответ, но что, как и чем - понятия не имею. если в русской поставить американские region, locale, language, date-time и прочие прибамбасы - не помогает. если в английской поставить все русские данные - прога продолжает работать. прошу направить на путь истинный. to Archer пожалуйста, не закрывай тему сразу как только кто-нибудь ответит (даже если ответит не сразу), как в прошлый раз. дай хоть людям спасибо сказать! |
|
Создано: 16 апреля 2008 04:22 · Поправил: KingSise · Личное сообщение · #2 |
|
Создано: 16 апреля 2008 06:49 · Личное сообщение · #3 |
|
Создано: 16 апреля 2008 07:18 · Личное сообщение · #4 ufo_maniac, я бы сделал dump и посмотрел что там вызывается во время инициализации - API calls. Конечно если Import table не запорот. А иначе - гадание на кофейной гуще. Ешё вот вариант - попробуй на чистых виндах под VmWare. И ещё прогони под Application Verifier + WinDbg - найдёшь может пару кривых вызовов которые можно патчить или обернуть в detours. |
|
Создано: 16 апреля 2008 09:47 · Личное сообщение · #5 KingSise, Hugo Chaves, s0larian спасибо за участие. для проги специально чистую инсталлил, на разных машинах. результат один. нашел ее на импортном воруме, там у всех всё хорошо, кроме меня и еще одного чела. чел оказался русским. автор тоже русский, но с недавнего времени стал трудиться в штатах. может это быть и специальная антирусская западлянка. монами пока не удалось ничего выловить. дамп очень кривой. там треть инструкций СС и в temp папке в рантайме создается файлик, на нем отдельный процесс, который рулит правильными адресами (не только импорта) основного процесса. в дампе до сотни проверок, которые заканчиваются пашем того самого выводимого в errormessage числа и вызовом функции, которая заканчивается ThrowException. я думаю, просто я не знаю такой ф-ции АПИ, которая возврашает родной язык винды. или можно прочитать в ресурсах какой-либо виндовой либы её язык? |
|
Создано: 16 апреля 2008 11:14 · Личное сообщение · #6 |
|
Создано: 16 апреля 2008 18:40 · Личное сообщение · #7 |
|
Создано: 16 апреля 2008 19:01 · Личное сообщение · #8 |
|
Создано: 16 апреля 2008 21:42 · Личное сообщение · #9 |
|
Создано: 16 апреля 2008 23:58 · Личное сообщение · #10 |
|
Создано: 22 апреля 2008 12:51 · Личное сообщение · #11 |
|
Создано: 22 апреля 2008 17:21 · Поправил: ufo_maniac · Личное сообщение · #12 |
|
Создано: 23 апреля 2008 23:57 · Поправил: ufo_maniac · Личное сообщение · #13 итак, если кому интересно,что же нового в версии Crypkey 6.5? сначала то, что осталось неизменным: когда вы из своей 30-дневной программы хотите сделать вечную, вы снимаете дамп и видите, что значительная часть кода в секции .text затерта байтами CC, IAT не тронута, но имена библиотек и функций покриптованы, при запуске программы запускается еше один процесс cksXX.tmp, который является отладчиком основного и при обращении к затертым инструкциям восстанавливает их по таблице, а после использования этой части кода, снова записывает её байтами СС, UserKey и MasterKey лежат в открытом виде в начале секции .loader защищенного приложения, а OEP - в первом dword'e этой секции. читал я статью Haggar'a (http://www.tuts4you.com/request.php?1843), в которой он находит эти таблицы и восстанавливает затертые байты с помощью скрипта, но мне ближе статья (http://www.exelab.ru/rar/dl/CRACKLAB.rU_52.rar) BoOMBoX'a, которая "позволяет" этому самому cksXX.tmp проделать для нас всю работу. теперь отличия: в новой версии aналогичным образом защищены и файлы самого крипкея - CKI32j.dll и CRP32001.NGN (Crypkey Engine), а файл cksXX.tmp легко находится в открытом виде не в защищенном приложении, а в CKI32j.dll, где его и будем патчить. но если сделать патч по BoOMBoX'у, то ничего не получится, секция .text дампа будет пустой. дело в том, что в новой версии сначала дебаггер восстанавливает байты в самой CKI32j.dll, потом в CRP32001.NGN, а потом уже очередь должна дойти до нашей проги, но не доходит, потому что процесс cksXX.tmp давно зациклен. поэтому сделаем немного по-другому (не удивляйтесь, код cksXX.tmp почти не изменился). поскольку начальный адрес CRP32001.NGN всегда 10000000 и адреса CKI32j.dll тоже выше, чем приложения, вмешиваться в процесс будем только тогда, когда текущий адрес (EDI) не выходит за пределы секции .text приложения. итак имеем вот это:
пропатчим вот так:
а там, в конце секции, напишем :
пропатчить надо и процедуру, снова записывающую CC. её адрес поменялся, не 00402028, а 00402024. по этому адресу записываем байт С3. после зацикливания дампим, отрезаем от дампа ненужные секции, запускаем ImpRec, вбиваем где надо OEP, взятый вы знаете где, восстанавливаем импорт, фиксим дамп, и ВСЁ!!! кстати, пока я тут дампил да восстанавливал, автор проги исправил свой баг с русскими буквами, и прога сейчас работает нормально и на русских виндах тоже. |
|
Создано: 16 июля 2008 11:41 · Поправил: lgv · Личное сообщение · #14 довелось позаниматься CrypKey 6.5 Build 6525, вставлю свои 5 копеек, поделюсь собственным опытом. с http://www.tuts4you.com/request.php?1843 и http://www.exelab.ru/rar/dl/CRACKLAB.rU_52.rar знаком. Работал SoftIce-ом. Очень удобно для изучения защиты и отладки использовать следующий прием: после создания защитой cksX.tmp переименуем его в , например cksX.crk далее правим только его, как хотим! Пусть этот файл будет эталон, переименуем его в, например cksY.tmp. В SoftIce установим bpx CreateProcessA DO "dd *(esp+4)", как только ловим создание процесса cksX.tmp, меняем имя файла на cksY.tmp и далее на что фантазии хватает ...... Теперь замечания по защите, возможно каждая сборка, а не только версия CrypKey имеет свои особенности или при установке защиты на продукт есть какие-то доп опции типа, что и как защищать. Но, предложенный выше вариант, как и варианты с www.tuts4you.com, www.exelab.ru не работали по той причине, что не было ни единого вазова int3 из основного тела программы!!! соответственно и зацикливания, хотя есть участки кода забитые 0xCC. Их я отношу не к защите, а к фрагментам отладочной версии программы. Именно ее и обернули в CrypKey. Все 0xCC заканчиваются на границе параграфа! Точку входа в дешифрованную программу было удобно поймать после bpx GetModuleHandleA. Примерно следовало ~10 вызовов GetModuleHandleA, далее пауза в несколько сек, потом, второй вызов GetModuleHandleA и пошла трассировка прямо к стартовой точке программы. Второй вариант, универсальный, кому интересно, прописывайте код программы байтом 0xСС ( в нашем случае int 3 занят для других целей, поэтому, пусть будет безобидное 0xCD, 0xAA) в SoftIce bpint AA ну и ловите... В случае с CrypKey чуть сложнее потому, что он пытается дешифровать точку входа с 0xCD, 0xAA соответственно в коде появляется непредсказуемая последовательность байт, но SoftIce все равно поймает какое-то исключение в этой абракадабре и вы сможете визуально отследить точку входа. В завершающей части сборки готового модуля, от себя нового ничего не добавлю, см. посты выше. |
|
Создано: 16 июля 2008 11:57 · Личное сообщение · #15 |
|
Создано: 16 июля 2008 17:00 · Личное сообщение · #16 |
|
Создано: 17 июля 2008 11:43 · Поправил: Модератор · Личное сообщение · #17 |
eXeL@B —› Основной форум —› прога работает только в английской винде и CrypKey |