Сейчас на форуме: Magister Yoda, vasilevradislav (+3 невидимых) |
eXeL@B —› Крэки, обсуждения —› водяной знак |
Посл.ответ | Сообщение |
|
Создано: 29 мая 2015 07:23 · Поправил: AKAB · Личное сообщение · #1 |
|
Создано: 29 мая 2015 17:43 · Поправил: Kindly · Личное сообщение · #2 |
|
Создано: 29 мая 2015 18:05 · Поправил: SReg · Личное сообщение · #3 Да там по рса зашифрован файл si.dat что в папке с прогой Добавлено спустя 0 минут валидный кей есть? AKAB пишет: И что теперь, без ключи прога не взломается ?! возможно ты вываливаешься на каком то исключении в блоке try-ecxept, что появляетя водяной знак... зы. хотя может и аес, я особо не вникал. 007BB0E7 PUSH 6610 ; CALG_AES_256 |
|
Создано: 29 мая 2015 18:15 · Личное сообщение · #4 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 29 мая 2015 19:17 · Личное сообщение · #5 Halt! Давайте с самого начала - у нас имеется две переменных под регистрацию. Это очевидно отсюда: Code:
Переменные проверяются тут: Code:
У меня вопрос возник: как правильно отловить, когда програ считывает ключик с textbox? Или посимвольно при EDITCHANGE передаётся? |
|
Создано: 29 мая 2015 19:24 · Поправил: Kindly · Личное сообщение · #6 интересно в чем "соль" поиска серийника, вроде считается md5 хеш строки одной, потом нужно прибавить что-то типа 20000000 (вместо 6 последних нулей быть может не рандом), далее в хеш в определенном порядке вставить одни из предлагаемых наборов букв, вот только какие это буквы - до этого не дошел вставте серийник типа: 2AC71CE0E4EB17EC44CBC16835757A0A20000000 и брякнитесь вот тут 00436E58 83FA 14 CMP EDX,14 0044A0A0 |> в этом цикле серийник сравнивается с хешем, предположительно, это проверка предыдущей версии. так как либо не регит, либо предлагает обновить версию программы. имхо прога из разряда лучше не патчить ----- Array[Login..Logout] of Life |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 29 мая 2015 19:38 · Личное сообщение · #7 SReg пишет: ы. хотя может и аес, я особо не вникал. 007BB0E7 PUSH 6610 ; CALG_AES_256 В СМЫСЛЕ target - библиотека PECtrl.dll Code:
si.dat - влияет на водянной знак? рег_переменные 1 и 2, кстати очень до фига где проверяются |
|
Создано: 29 мая 2015 20:15 · Поправил: SReg · Личное сообщение · #8 ELF_7719116 пишет: si.dat - влияет на водянной знак? факт, что там что то должно расшифроваться.. если изменишь флаги в ольке чтоб дотопать до декрипта етого файла, то декриптонется "мусор", да... ELF_7719116 пишет: *(_DWORD *)v8 == 0x74736561 строка похоже должна быть в начале судя по этим байтам "aest" Добавлено спустя 3 минуты ELF_7719116 пишет: библиотека PECtrl.dll ну да, очевидно же, да я и копал сразу с хмлки Code:
а в app_key должен быть хешь наверное |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 29 мая 2015 20:50 · Личное сообщение · #9 |
|
Создано: 29 мая 2015 21:00 · Поправил: SReg · Личное сообщение · #10 ELF_7719116 фиг его, капнул есче чутка... там в <app_key> должен быть кей 0x14 байт. вначале считается хешь от 0х13 байт "PT Photo Editor ", с него и должен начинатся app_key, наверное? т.к. тут(0044A0A0) сравнение в цикле хеша.. т.о. app_key (только пока вангую) == D0DB170AA871FA212529D6B8623D0CF3XXXXXXXX |
|
Создано: 29 мая 2015 21:36 · Поправил: Kindly · Личное сообщение · #11 |
|
Создано: 30 мая 2015 05:15 · Поправил: AKAB · Личное сообщение · #12 Kindly пишет: 004247C0 |. 84C0 TEST AL,AL ------ > if al = 1disabled_nag упс. цветовые профили не сохраняет я уже показал этот адрес в своем tutorial (в конце) --------------- тоже самое здесь 00446D74 |. 85ED TEST EBP,EBP 00446D76 0F84 B7000000 JE 00446E33 ; PTPhotoE.00446E33 00446D7C |. 83BC24 9C0000>CMP DWORD PTR SS:[ESP+0x9C],0x0 00446D84 0F86 A9000000 JBE 00446E33 ; PTPhotoE.00446E33 00446D8A |. 68 A8514600 PUSH 0x4651A8 ; /FileName = "advapi32.dll" 00446D8F |. FF15 A4504500 CALL DWORD PTR DS:[0x4550A4] ; \LoadLibraryW 00446D95 |. 8B1D 9C504500 MOV EBX,DWORD PTR DS:[0x45509C] ; kernel32.GetProcAddress 00446D9B |. 8BF8 MOV EDI,EAX 00446D9D |. 68 C4514600 PUSH 0x4651C4 ; /ProcNameOrOrdinal = "MD5Init" 00446DA2 |. 57 PUSH EDI ; |hModule 00446DA3 |. FFD3 CALL EBX ; \GetProcAddress 00446DA5 |. 68 CC514600 PUSH 0x4651CC ; /ProcNameOrOrdinal = "MD5Update" 00446DAA |. 57 PUSH EDI ; |hModule 00446DAB |. 894424 24 MOV DWORD PTR SS:[ESP+0x24],EAX ; | 00446DAF |. FFD3 CALL EBX ; \GetProcAddress 00446DB1 |. 68 D8514600 PUSH 0x4651D8 ; /ProcNameOrOrdinal = "MD5Final" |
|
Создано: 30 мая 2015 11:25 · Поправил: Kindly · Личное сообщение · #13 SReg пишет: тут(0044A0A0) сравнение в цикле хеша.. т.о. app_key тот цикл и проверки это фейковая процедура, она проверяет кей от предыдущей версии и предлагает обновить или нет. настоящая процедура проверки серийника начинается здесь PECtrl.dll: 007B9C40 и вот этот переход 007B9EC3 |. /0F84 D0010000 JE PECtrl.007BA099 дает или нет пройти дальше. ----- Array[Login..Logout] of Life |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 30 мая 2015 11:42 · Личное сообщение · #14 Я понимаю, Вы щас копаетесь в дебрях, но чисто для полной раскладки добавлю, что мы имеем в САМОМ НАЧАЛЕ основного ексешника. ВЫЗЫВАЕТСЯ ПРОЦЕДУРА, где предпоследний параметр равен нулю: Code:
Этот ноль ложится в reg_value уже в дллке: Code:
КАСАЕМО РОЛИ ФАЙЛА si.dat, мои предположения потдвердились, что это dll'ка: Code:
т.е. Code:
имеем hmodule и два ординала: Code:
касаемо: 004247BB |. E8 E01A0000 CALL 004262A0 - там ведь MD5 хэши сравниваются, в конце memcmp стоит. AL-результирующий оттуда. а дальше, если цветовые профили не сохраняет - идёт ip.dll уже |
|
Создано: 30 мая 2015 12:06 · Поправил: Kindly · Личное сообщение · #15 ELF_7719116 пишет: предположения потдвердились, что это dll'ка: выходит, что без валидного серийника не расшифровать, а стало быть для решения вопросов профилей нужно на ip.dll переключаться. AKAB пишет: я уже показал этот адрес в своем tutorial там разные параметры передаются в ip.dll, поэтому и сохраняет без указанного профиля ----- Array[Login..Logout] of Life |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 30 мая 2015 14:31 · Личное сообщение · #16 Kindly пишет: выходит, что без валидного серийника не расшифровать я только не наблюдаю, где экспортные функи по ординалам используются - hadware молчат. ИЛИ что-то мешает, чтобы управление передалось туда ИЛИ si.dat - fake! Обощаю Если тупо патчить (только для исследования), то: 1. Переменные HMODULE (косвенно, #1 и #2) и reg_2 - 0047D44C и 47D44C -> Визуально GUI без Trial 2. Сверка MD5-хэшей (004247BB) - AL = 0 - сохраняем отредактир. норм, только с вотемарком; AL - 1 = без изменения 3. (профили ip.dll?) В ip.dll, странные вставки проскакивают (на мой взгляд): Code:
где он сравнивает DWORD'ы. (EDX-вроде одинаков, ECX-везде разный). Для запутывания вставили?? |
|
Создано: 31 мая 2015 16:45 · Личное сообщение · #17 |
|
Создано: 31 мая 2015 19:25 · Личное сообщение · #18 |
|
Создано: 31 мая 2015 20:22 · Личное сообщение · #19 |
|
Создано: 31 мая 2015 23:02 · Личное сообщение · #20 |
|
Создано: 31 мая 2015 23:29 · Поправил: dosprog · Личное сообщение · #21 ==DJ==[ZLO] пишет: Что то не работает. Патчер к другой версии, что была в первом посте. Находит все файлы и патчит вполне успешно. Но сама программа глючная - не захотела работать с самого начала. Вернее, при попытке открыть любой файл вылазит сообщение "unknown error" . Своеобразная программка. |
|
Создано: 01 июня 2015 00:33 · Поправил: AKAB · Личное сообщение · #22 |
|
Создано: 01 июня 2015 08:24 · Поправил: dosprog · Личное сообщение · #23 AKAB, WinXP/SP2(RU). Файлы пытался грузить с разных дисков, одна и та же ошибка при открытии файла. (Любого, PNG,JPG etc.) Code:
Поэтому даже не стал глядеть, что там у неё внутри. |
|
Создано: 01 июня 2015 09:17 · Поправил: AKAB · Личное сообщение · #24 став Bp CreateFileW и переташи Файлы . когда астановка призойдет нажемаи F9 (4 раза) дальше F8 и ты поподешь в IP.dll , дальше ctrl + F8 и смотри где же вылазит сообщение "unknown error" оно здесь Code:
и здесь Code:
вот готовый http://rghost.net/8BGyMByVR |
|
Создано: 01 июня 2015 09:29 · Поправил: dosprog · Личное сообщение · #25 AKAB пишет: и смотри где же вылазит сообщение "unknown error" Я ж написал, сообщение вылазит после фэйла при вызове диалога выбора файла. (.004370E8 call PeCtrl.dll.?ShowOpenImageFileDialog). Ещё до его открытия. Копаться в этой фигне - неблагодарное занятие. Надо новую версию виндовса. Или не надо нах эту программу. Одно из двух. |
|
Создано: 01 июня 2015 11:55 · Поправил: Kindly · Личное сообщение · #26 У меня при сохранении в JPEG ошибка постоянно с вылетом на XP, при загрузке изображений без EXIF ругания и незагрузка таких изображений. Пол дня реверсил под варью думал что что-то не так патчу, а оказалось прога глючная до безобразия . На Win7x64 вроде сохраняла в JPEG - но на x64 устанавливается x64, в итоге гемор еще тот с самой прогой Посмотрел еще на предмет серийника и забил. AKAB, у тебя пропатчена только 32-бит версия. На x64 системах ставится 64-битная версия программы и патч соответственно не подходит. ----- Array[Login..Logout] of Life |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 01 июня 2015 17:57 · Личное сообщение · #27 AKAB пишет: SReg пишет: AKAB ну написал бы пару строк, что и как tutorial http://rghost.net/7Gmk7vcvb pass=akab1234 где за'nop'ить Code:
Подожди, бро, тогда немного хня какая-то получается! Смотри! Совершенно очевидно что саб по адресу sub_43D460 выполняет растягивание нага по картинке в зависимости от ширины/высоты изображения которые передаются через регистр ECX. Эт очень просто проверить, если, например, вместо константы 0.800000011920929 поставить 2.0 (можно прямо в FPU-стеке): Code:
на эту функу еще куча рефов есть в проге. Естественно возникает вопрос: ввиду отсуствия каких либо je/jne, как в зарегистрированной версии, прога определяет, что наг растягивать не требуется ВООБЩЕ? Теоретически конечно она до этого может и обнулить переменные image Width & Height, однако, они по ходу пьесы эти данные еше и до и после вызова sub_43D460 используются. В принципе, решение конечно рабочее - тупо занулить множиители, но выходит, корень проблемы лежут глубже. На 2k3 SP2, к слову, всё работает. | Сообщение посчитали полезным: AKAB |
eXeL@B —› Крэки, обсуждения —› водяной знак |