Сейчас на форуме: subword, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› прога работает только в английской винде и CrypKey
Посл.ответ Сообщение

Ранг: 77.7 (постоянный), 1thx
Активность: 0.040
Статус: Участник

Создано: 16 апреля 2008 01:54 · Поправил: Модератор
· Личное сообщение · #1

зашищена CrypKey v6.5, там что-то вроде конверта, и даже хуже, поэтому пропатчить не получается.
unlimided license code у меня есть, но хочу работать в русской винде.
в русской при запуске вываливается с ошибками, сообщается номер строки в proga.cpp, какое-то число, и "Unrecognized error".
думаю, что надо что-то перехватить и подкорректировать ответ, но что, как и чем - понятия не имею.
если в русской поставить американские region, locale, language, date-time и прочие прибамбасы - не помогает.
если в английской поставить все русские данные - прога продолжает работать.
прошу направить на путь истинный.

to Archer
пожалуйста, не закрывай тему сразу как только кто-нибудь ответит (даже если ответит не сразу), как в прошлый раз.
дай хоть людям спасибо сказать!




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 16 апреля 2008 04:22 · Поправил: KingSise
· Личное сообщение · #2

Может с руской виндой проблемы? переинсталь, должно помочь ;)

-----
-=истина где-то рядом=-




Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 16 апреля 2008 06:49
· Личное сообщение · #3

ufo_maniac

Проанализируй запуск Regmon-ом и Filemon-ом на той и на другой винде.
Для начала ...
А может лицензия не unlimited ?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 16 апреля 2008 07:18
· Личное сообщение · #4

ufo_maniac, я бы сделал dump и посмотрел что там вызывается во время инициализации - API calls. Конечно если Import table не запорот. А иначе - гадание на кофейной гуще. Ешё вот вариант - попробуй на чистых виндах под VmWare. И ещё прогони под Application Verifier + WinDbg - найдёшь может пару кривых вызовов которые можно патчить или обернуть в detours.



Ранг: 77.7 (постоянный), 1thx
Активность: 0.040
Статус: Участник

Создано: 16 апреля 2008 09:47
· Личное сообщение · #5

KingSise, Hugo Chaves, s0larian спасибо за участие.
для проги специально чистую инсталлил, на разных машинах. результат один.
нашел ее на импортном воруме, там у всех всё хорошо, кроме меня и еще одного чела.
чел оказался русским.
автор тоже русский, но с недавнего времени стал трудиться в штатах. может это быть и специальная антирусская западлянка.
монами пока не удалось ничего выловить.
дамп очень кривой. там треть инструкций СС и в temp папке в рантайме создается файлик, на нем отдельный процесс, который рулит правильными адресами (не только импорта) основного процесса.
в дампе до сотни проверок, которые заканчиваются пашем того самого выводимого в errormessage числа и вызовом функции, которая заканчивается ThrowException.
я думаю, просто я не знаю такой ф-ции АПИ, которая возврашает родной язык винды.
или можно прочитать в ресурсах какой-либо виндовой либы её язык?



Ранг: 39.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 апреля 2008 11:14
· Личное сообщение · #6

ufo_maniac,
Пробуй так,на играх проходило:
[Панель управления]->[Региональные параметры]->[Языковые стандарты и форматы]-> Английский[Сша]




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 16 апреля 2008 18:40
· Личное сообщение · #7

Ну попробуй распаковать, в статьях есть про распаковку CrypKey, там не так уж и заоблачно сложно. А обычный дамп да, косячный может быть.
Ыыы, я знаменит Если реально закрыл нужный топик-писал бы, я б открыл. Скорее всего закрыл фигню какую-нить.




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 16 апреля 2008 19:01
· Личное сообщение · #8

ufo_maniac, смотри в MSDN. Например: GetUserDefaultLangID(), GetSystemDefaultLangID(), GetGeoInfo(), GetSystemDefaultLCID()... Ну а вообще зацепиться в русской винде можно за что угодно... Например русурсы в explorer.exe



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 16 апреля 2008 21:42
· Личное сообщение · #9

ufo_maniac пишет:
зашищена CrypKey v6.5, там что-то вроде конверта, и даже хуже

да ладно-ка. снимался он прекрасно



Ранг: 77.7 (постоянный), 1thx
Активность: 0.040
Статус: Участник

Создано: 16 апреля 2008 23:58
· Личное сообщение · #10

ну раз два мудреца говорят, что надо распаковывать, значит так и надо.
а то там на каждую либу VerQueryValue идет, не переловишь.
пошел я. куда послали. получится - не получится, отпишусь.
спасибо всем.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 апреля 2008 12:51
· Личное сообщение · #11

ufo_maniac Проверь в английской, но SP1. Если свалится - значит там просто жестко адрес из какой-то DLL зашит. Это так - гипотеза глупая, но вдруг.



Ранг: 77.7 (постоянный), 1thx
Активность: 0.040
Статус: Участник

Создано: 22 апреля 2008 17:21 · Поправил: ufo_maniac
· Личное сообщение · #12

там в папку "Мои документы" пишут лог.
при записи полный путь в одной кодировке, а при чтении - получается в другой.
распаковал я ее. позже напишу в чем отличия крипкея 6.5 от 6.1.



Ранг: 77.7 (постоянный), 1thx
Активность: 0.040
Статус: Участник

Создано: 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 приложения.
итак имеем вот это:

0040156D 807D DD CC CMP BYTE PTR SS:[EBP-23], 0CC
00401571 74 1E JE 00401591
00401573 68 02000100 PUSH 00010002
00401578 FF73 08 PUSH DWORD PTR DS:[EBX+8]
0040157B FF73 04 PUSH DWORD PTR DS:[EBX+4]
0040157E E8 EF0F0000 CALL ContinueDebugEvent
00401583 68 5C334000 PUSH 0040335C
00401588 E8 3F100000 CALL LeaveCriticalSection
0040158D B0 01 MOV AL, 1
0040158F EB 4F JMP 004015E0

00401591 6A 00 PUSH 0 <- отсюда надо отскочить в конец секции
00401593 6A 00 PUSH 0 <- и сделать там всё, что нужно.
00401595 57 PUSH EDI
00401596 E8 31050000 CALL 00401ACC <- процедура восстановления кода
0040159B 83C4 0C ADD ESP, 0C
0040159E 84C0 TEST AL, AL <- а сюда вернуться, если что...
004015A0 74 22 JE 004015C4

пропатчим вот так:

00401591 E9 9A100000 JMP 00402630 <- прыжок в конец секции
00401596 E8 31050000 CALL 00401ACC <- процедура восстановления кода
0040159B 83C4 0C ADD ESP, 0C
0040159E 84C0 TEST AL, AL <- а сюда вернуться, если что...
004015A0 74 22 JE 004015C4

а там, в конце секции, напишем :

00402630 81FF XXXX6X00 CMP EDI, 006XXXXX <- последний RVA секции кода + 1
00402636 77 0E JA 00401646
00402638 BF FF0F4000 MOV EDI, 00400FFF <- начальный RVA секции кода - 1
0040263D 47 INC EDI
0040263E 81FF XXXX6X00 CMP EDI, 006XXXXX <- последний RVA секции кода + 1
00402644 74 1B JZ 00402661 <- прыжок на зацикливание

00402646 6A 00 PUSH 0
00402648 6A 00 PUSH 0
0040264A 57 PUSH EDI <- EDI = адрес, где произошло исключение
0040264B E8 7CF4FFFF CALL 00401ACC <- процедура восстановления кода
00402650 83C4 0C ADD ESP, 0C


00402653 81FF XXXX6X00 CMP EDI, 006XXXXX <- последний RVA секции кода + 1
00402659 0F87 3F274000 JA 0040159E <- возвращаемся, как и обещали
0040265F 72 DC JB 0040263D
00402661 EB FE JMP 00402661 <- здесь мы после завершения работы

пропатчить надо и процедуру, снова записывающую CC.
её адрес поменялся, не 00402028, а 00402024. по этому адресу записываем байт С3.
после зацикливания дампим, отрезаем от дампа ненужные секции, запускаем ImpRec, вбиваем где надо OEP, взятый вы знаете где,
восстанавливаем импорт, фиксим дамп,
и ВСЁ!!!

кстати, пока я тут дампил да восстанавливал, автор проги исправил свой баг с русскими буквами, и прога сейчас работает нормально и на русских виндах тоже.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 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 все равно поймает какое-то исключение в этой абракадабре и вы сможете визуально отследить точку входа.

В завершающей части сборки готового модуля, от себя нового ничего не добавлю, см. посты выше.




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 16 июля 2008 11:57
· Личное сообщение · #15

на сайте майкрософта есть программа AppLocale, часто помогала запустить японские хентайные игры на русской винде (по другому никак), там в настройках можно выбрать английскую локаль, должно помочь




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 16 июля 2008 17:00
· Личное сообщение · #16

[wl]
Топик постепенно перерос в крипкей, а не про локаль винды, ибо смотрим на дату.




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 17 июля 2008 11:43 · Поправил: Модератор
· Личное сообщение · #17

тогда может переименовать тему?

Archer: переименовал


 eXeL@B —› Основной форум —› прога работает только в английской винде и CrypKey
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати