Сейчас на форуме: -Sanchez-, barsik, vasilevradislav, vsv1 (+6 невидимых) |
![]() |
eXeL@B —› Крэки, обсуждения —› Подпись файла VeriSign, возможно ли ее пересоздать при правке файла? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 17 марта 2008 01:07 · Личное сообщение · #1 Вот встретил в конце DLL'ки такую подпись, при любом изменении DLL прога при запуске выдает Application load error (0x03). При исследовании выяснилось что на EXE файл наложен протектор который проверяет целостность DLL'ки при запуске, если подпись некорректна или файл был изменен выдается ошибка. При проверке пользуются WINTRUST.DLL и CRYPT32.DLL это которые в Windows есть по умолчанию. Снять протектор легко, но проблема что при запуске других программ в инете смотрится обновление и все измененные файлы выкачиваются по новой и заменяются. Есть 2-а способа решения проблемы, первый сгенерить как-то правильную VeriSign подпись этой DLL'ки и второй поломать WINTRUST.DLL. Подпись сгенерить я не смог, а вот в WINTRUST.DLL нашел что надо изменить чтобы прога потом запускалась, но эту DLL не удается переписать, т.е. Windows ее защищает. Пробовал ее переписать с помощью WININIT.INI не получается. Грузиться с компашки или флэшки не предлагать, надо на 50 компах это сделать. Есть ли способ сделать правильную подпись этой DLL'ки или как заменить файлик WINTRUST.DLL например при перегрузке компа? Может кто-то встречал подобную защиту? Поделитесь советом. ![]() |
|
Создано: 17 марта 2008 11:31 · Личное сообщение · #2 |
|
Создано: 17 марта 2008 11:59 · Личное сообщение · #3 |
|
Создано: 17 марта 2008 13:41 · Личное сообщение · #4 |
|
Создано: 17 марта 2008 14:22 · Личное сообщение · #5 |
|
Создано: 17 марта 2008 14:23 · Личное сообщение · #6 |
|
Создано: 17 марта 2008 14:56 · Личное сообщение · #7 [HEX] пишет: Деинсталируй оригинальную длл regsvr32.exe /u <dll> Потом заинсталь в систему крэкнутую длл regsvr32.exe /i <dll> Не это не срабатывает и вообще при regsvr32 /i выдается сообщение что это вообще не dll или ocx файл. Talula пишет: попробуй подсунуть винде установочный диск с твоеё длл. когда она попросит диск для восстановления измененных сис. файлов. может обманется? На машинах нет CD-ROM так бы я загрузился с чего-либо, да на самом деле это и долго по времени, зайти каждой машине в БИОС, поставить загрузку с флэшки, переписать файл Wintrust.dll, снова зайти в БИОС и сказать грузиться с жесткого диска. Если бы это была одна машина то без проблем. Просто думаю может кто-нибудь посоветует как подменить в Windows эту dll более легким способом. А загрузку с другого носителя я сделаю если ничего путнего не придумать..... ![]() |
|
Создано: 17 марта 2008 14:59 · Личное сообщение · #8 |
|
Создано: 17 марта 2008 15:02 · Личное сообщение · #9 |
|
Создано: 17 марта 2008 15:05 · Личное сообщение · #10 |
|
Создано: 17 марта 2008 15:08 · Личное сообщение · #11 |
|
Создано: 17 марта 2008 15:12 · Личное сообщение · #12 |
|
Создано: 17 марта 2008 15:27 · Личное сообщение · #13 |
|
Создано: 17 марта 2008 15:37 · Личное сообщение · #14 kioresk пишет: 1. сделать лоадер, который бы патчил dll'ку, и менять ярлык на программу батником. Да про это я тоже подумал, т.к. правка в памяти с помощью SoftIce прокатывает. Возможно так и сделаю. kioresk пишет: 2. выяснить где в программе проверяется подпись, пропатчить проверку результата возвращаемого WinTrust/Crypt и рапаковать/исправить саму dll'ку Это я сделал без проблем, но уже писал выше что при запуске других прог, которые лазят в инет, проверяется обновление для всего пакета и ломанный EXE просто меняется на оригинальный и все. ![]() |
|
Создано: 17 марта 2008 15:48 · Поправил: DMD · Личное сообщение · #15 давайте немного по-подробнее: HNail пишет: При исследовании выяснилось что на EXE файл наложен протектор который проверяет целостность DLL'ки при запуске, если подпись некорректна или файл был изменен выдается ошибка что за протектор на таргете.. с верификацей подписи длл? HNail пишет: Снять протектор легко, но проблема что при запуске других программ в инете смотрится обновление и все измененные файлы выкачиваются по новой и заменяются не совсем понятно - каких программ? или в софте целый набор exe, которые тестят друг друга и вылавливают все изменения? но и это тоже можно пачить, если кол-во exe - разумное. в любом случае это значит, место верификации длл известно => никто не мешает loader`ом поправить результат верификации. впрочем, лучше всего на таргет взглянуть (если, конечно, не очень большей) или как min на код проверки верификации.. ps/ ЭЦП обычно проверяет CryptVerifySignature .. но она в advapi32.dll pps/ HNail пишет: Хотя дельный совет все таки есть надежда услышать. без более полного описания проблемы, она надеждой и останется.. или все будут думать только над тем как подменить исправленную длл... ppps/ пока писал.. kioresk успел чуть-чуть раньше.. ну да это не важно.. ![]() ![]() |
|
Создано: 17 марта 2008 15:49 · Личное сообщение · #16 |
|
Создано: 17 марта 2008 16:01 · Поправил: DMD · Личное сообщение · #17 |
|
Создано: 17 марта 2008 18:01 · Личное сообщение · #18 |
|
Создано: 17 марта 2008 19:00 · Поправил: HNail · Личное сообщение · #19 Все, решил проблему. Просто сам и затупил. Снял протектор с оригинального EXE и у полученного файла поменял имя на другое, вот и все. Просто при проверке обновлений из инета прога тупо проверяет только те файлы которые у ней в списке, а т.к. Имя нового файла без протектора нет в ее списке она его и не проверяет. ![]() Сделал новый ярлык и все. А вообще в идеале конечно было бы лучше переподписать DLL'ку. ![]() |
|
Создано: 18 марта 2008 09:45 · Поправил: DMD · Личное сообщение · #20 [HEX] пишет: Эмм.. каким образом обратиться к оригинальной если в проге везде поправить импорт на ломаную длл? Mill pardons! Но лично мне еще не встречалась проверка ЭЦП через импорт... через LoadLibrary - да, встречал.. , а вот через импрот - что-то не приходилось сталкиваться... И намеков, что в длл сделана обертка для CryptVerifySignature, тоже не видно HNail пишет: Просто сам и затупил что бы поставить окончательную точку в топике, раскроете секрет: что за "простой протектор" с верификацией ЭЦП на используемых таргетом длл? ![]() |
|
Создано: 18 марта 2008 11:13 · Личное сообщение · #21 |
|
Создано: 18 марта 2008 11:47 · Личное сообщение · #22 |
|
Создано: 19 марта 2008 00:01 · Личное сообщение · #23 Ну если всем так стало интересно что это такое, вот выкладываю: rapidshare.com/files/100560661/verisign.rar.html Если запустить testapp.exe то по идее ничего не произойдет, т.к. протектор проверит подпись файла steam.dll и т.к. она правильная полезет в инет, но т.к. не хватает еще много чего то просто выйдет обратно и все. Если мы заменим steam.dll на ломанную из папки !Cracks то прога сругается на подпись: Application load error (0x03) т.е. подпись не совпадает с файлом. Ну и в папке !OK файл без протектора, steam.dll в этом случае нафиг не нужна. Данный архив только для изучения, запустить игру не удасться, т.к. тут только EXE от нее. ![]() |
|
Создано: 19 марта 2008 00:35 · Личное сообщение · #24 |
|
Создано: 19 марта 2008 09:56 · Поправил: DMD · Личное сообщение · #25 HNail между прочим, неплохо было бы указать что архив на 4М.. у кого unlimit - это не принципиально, а для любознательных dialup`щиков - это может имеет значение. ![]() HNail пишет: Если запустить testapp.exe то по идее ничего не произойдет это точно! ничего.. поскольку не хватает DINPUT8.dll и, похоже, не ее одной.. при работе с HNail пишет: файл без протектора, steam.dll в этом случае нафиг не нужна. - может быть.. но DINPUT8.dll все равно нужна.. HNail что бы упростить всем жизнь, достаточно будет кратко описать чем и как снимали протектор (PEiD этот протектор не детектит). ![]() |
|
Создано: 19 марта 2008 23:40 · Личное сообщение · #26 DMD пишет: что бы упростить всем жизнь, достаточно будет кратко описать чем и как снимали протектор (PEiD этот протектор не детектит). Снимал ручками с помощью SoftIce. Достаточно декодировать секцию text и найти правильный OEP. Затем с помощью HIEW меняем кодированную секцию в защищенном файле на декодированную, далее выставляем правильный OEP и отрезаем самую последнюю секцию. Все, файл получается рабочий и без протектора. ![]() |
|
Создано: 20 марта 2008 17:46 · Поправил: [Anth] · Личное сообщение · #27 HNail В testapp.exe происходит проверка подписи. Надо просто это отключить. 00571CD1 8D85 ACF6FFFF LEA EAX,DWORD PTR SS:[EBP-954] 00571CD7 50 PUSH EAX 00571CD8 8D85 DCF6FFFF LEA EAX,DWORD PTR SS:[EBP-924] 00571CDE 50 PUSH EAX 00571CDF 6A 00 PUSH 0 00571CE1 FF95 A0F5FFFF CALL DWORD PTR SS:[EBP-A60] ; wintrust.WinVerifyTrust 00571CE7 F7D8 NEG EAX 00571CE9 1BC0 SBB EAX,EAX <- XOR EAX,EAX 00571CEB 40 INC EAX ![]() |
|
Создано: 20 марта 2008 22:35 · Личное сообщение · #28 [Anth] пишет: В testapp.exe происходит проверка подписи. Надо просто это отключить. Про это я уже писал, что я не могу править оригинальный файл, т.к. при подключении к инету его просто заново выкачает и перепишет. Ладно, мое решение все равно лучше, чистый EXE и другое имя. Работает уже, так что думаю можно завязывать с обсуждением. Если только переподписать DLL, это было бы очень интересно. Но говорят это в принципе не возможно..... ![]() |
|
Создано: 20 марта 2008 23:13 · Личное сообщение · #29 |
|
Создано: 21 марта 2008 12:56 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Крэки, обсуждения —› Подпись файла VeriSign, возможно ли ее пересоздать при правке файла? |