Сейчас на форуме: -Sanchez-, barsik, vasilevradislav, vsv1 (+6 невидимых)

 eXeL@B —› Крэки, обсуждения —› Подпись файла VeriSign, возможно ли ее пересоздать при правке файла?
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 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 например при перегрузке компа?
Может кто-то встречал подобную защиту? Поделитесь советом.




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

Создано: 17 марта 2008 11:31
· Личное сообщение · #2

а положить поломанную wintrust.dll в папку проги ничего не дает?



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

Создано: 17 марта 2008 11:59
· Личное сообщение · #3

HNail, сделать точно такую подпись не получится.



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

Создано: 17 марта 2008 13:41
· Личное сообщение · #4

r99r99 пишет:
а положить поломанную wintrust.dll в папку проги ничего не дает?


Нет не дает, попробовал.
Какие есть способы переписать эту DLL на правленную в папке Windows\System32
Я положил ломанную в папку C:\WINDOWS\system32\dllcache
Как заставить Windows сравнить DLL'ки и переписать ее из кэша?




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 17 марта 2008 14:22
· Личное сообщение · #5

HNail
Деинсталируй оригинальную длл
regsvr32.exe /u <dll>
Потом заинсталь в систему крэкнутую длл
regsvr32.exe /i <dll>

-----
Computer Security Laboratory





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 17 марта 2008 14:23
· Личное сообщение · #6

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

-----
Do Not Get Mad Get Money! ;)




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

Создано: 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 более легким способом.
А загрузку с другого носителя я сделаю если ничего путнего не придумать.....




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 17 марта 2008 14:59
· Личное сообщение · #8

а в безопасном режиме никак что ли? и плевать на крики винды. оставить и всё тут...

-----
Do Not Get Mad Get Money! ;)




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

Создано: 17 марта 2008 15:02
· Личное сообщение · #9

Как голыми руками отключить защиту я не помню, но обычно меня спасает программа XPLite. Там есть возможность отключать защиту.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 17 марта 2008 15:05
· Личное сообщение · #10

RiPPER, дело не только в защите - это библа висит в процессах. юзается, короче. можно попробовать конечно анлокером её оторвать, но не факт что система не улетит в ребут...

-----
Do Not Get Mad Get Money! ;)




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

Создано: 17 марта 2008 15:08
· Личное сообщение · #11

Ещё как вариант грузануться с диска WinPE. И поменять DLL.



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

Создано: 17 марта 2008 15:12
· Личное сообщение · #12

Talula пишет:
а в безопасном режиме никак что ли? и плевать на крики винды. оставить и всё тут...

Не в безопасном пробовал, тоже никак. Похоже только загрузка с флэшки и спасет......
Хотя дельный совет все таки есть надежда услышать.




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 17 марта 2008 15:27
· Личное сообщение · #13

Как вариант можно:

1. сделать лоадер, который бы патчил dll'ку, и менять ярлык на программу батником.

2. выяснить где в программе проверяется подпись, пропатчить проверку результата возвращаемого WinTrust/Crypt и рапаковать/исправить саму dll'ку



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

Создано: 17 марта 2008 15:37
· Личное сообщение · #14

kioresk пишет:
1. сделать лоадер, который бы патчил dll'ку, и менять ярлык на программу батником.

Да про это я тоже подумал, т.к. правка в памяти с помощью SoftIce прокатывает. Возможно так и сделаю.

kioresk пишет:
2. выяснить где в программе проверяется подпись, пропатчить проверку результата возвращаемого WinTrust/Crypt и рапаковать/исправить саму dll'ку

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



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

Создано: 17 марта 2008 15:48 · Поправил: DMD
· Личное сообщение · #15

давайте немного по-подробнее:

HNail пишет:
При исследовании выяснилось что на EXE файл наложен протектор который проверяет целостность DLL'ки при запуске, если подпись некорректна или файл был изменен выдается ошибка


что за протектор на таргете.. с верификацей подписи длл?

HNail пишет:
Снять протектор легко, но проблема что при запуске других программ в инете смотрится обновление и все измененные файлы выкачиваются по новой и заменяются

не совсем понятно - каких программ? или в софте целый набор exe, которые тестят друг друга и вылавливают все изменения?
но и это тоже можно пачить, если кол-во exe - разумное.

в любом случае это значит, место верификации длл известно => никто не мешает loader`ом поправить результат верификации.

впрочем, лучше всего на таргет взглянуть (если, конечно, не очень большей) или как min на код проверки верификации..

ps/ ЭЦП обычно проверяет CryptVerifySignature .. но она в advapi32.dll

pps/
HNail пишет:
Хотя дельный совет все таки есть надежда услышать.

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

ppps/ пока писал.. kioresk успел чуть-чуть раньше.. ну да это не важно..




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 17 марта 2008 15:49
· Личное сообщение · #16

HNail
Как еще один вариант.
В систему положить ломаный файл с именем WINTRUST_CRK.DLL
А в проге которая юзает функции из этой длл поправить импорт чтобы импортировала из крэкнутой версии, а не из оригинальной.

-----
Computer Security Laboratory




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

Создано: 17 марта 2008 16:01 · Поправил: DMD
· Личное сообщение · #17

[HEX] пишет:
HNail
Как еще один вариант.
В систему положить ломаный файл с именем WINTRUST_CRK.DLL


и при этом не забыть "убить" проверку верификации чтобы не грохнулось все при обращении к оригинальной wintrust.dll

опять патчинг.. и опять все по кругу..




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 17 марта 2008 18:01
· Личное сообщение · #18

DMD
Эмм.. каким образом обратиться к оригинальной если в проге везде поправить импорт на ломаную длл?

-----
Computer Security Laboratory




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

Создано: 17 марта 2008 19:00 · Поправил: HNail
· Личное сообщение · #19

Все, решил проблему.
Просто сам и затупил.
Снял протектор с оригинального EXE и у полученного файла поменял имя на другое, вот и все.
Просто при проверке обновлений из инета прога тупо проверяет только те файлы которые у ней в списке, а т.к. Имя нового файла без протектора нет в ее списке она его и не проверяет.
Сделал новый ярлык и все.

А вообще в идеале конечно было бы лучше переподписать DLL'ку.



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

Создано: 18 марта 2008 09:45 · Поправил: DMD
· Личное сообщение · #20

[HEX] пишет:
Эмм.. каким образом обратиться к оригинальной если в проге везде поправить импорт на ломаную длл?


Mill pardons!
Но лично мне еще не встречалась проверка ЭЦП через импорт...
через LoadLibrary - да, встречал.. , а вот через импрот - что-то не приходилось сталкиваться...
И намеков, что в длл сделана обертка для CryptVerifySignature, тоже не видно

HNail пишет:
Просто сам и затупил


что бы поставить окончательную точку в топике, раскроете секрет:
что за "простой протектор" с верификацией ЭЦП на используемых таргетом длл?




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 18 марта 2008 11:13
· Личное сообщение · #21

DMD
Абсолютно согласен что может длл подгружаться через LoadLibrary. Никтож не мешает и внутри поправить загрузку. Это все только мои теоретические наброски что мог бы я предпринять в данной ситуации, но не видя конкретную цель сложно что то более точно сказать.

-----
Computer Security Laboratory




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

Создано: 18 марта 2008 11:47
· Личное сообщение · #22

[HEX]
у меня был случай, когда длл использовалась через импорт, а сама проверка CryptVerifySignature работала через LoadLibrary...
Ок, согласен с тобой, "сложно что то более точно сказать."
да и, похоже, уже и не нужно никому..

но что за "простой протектор" такой - вот это очень интересно..!



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

Создано: 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 от нее.




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 19 марта 2008 00:35
· Личное сообщение · #24

Ага, ломать системные либы всегда крайний вариант, потому что вот такие вот сложности. Еще можно было попробовать прогам доступ в инет закрыть, еще вариант на файлы поставить галочку "только чтение" (когда-то мне помогло и так).

-----
Всем не угодишь




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

Создано: 19 марта 2008 09:56 · Поправил: DMD
· Личное сообщение · #25

HNail
между прочим, неплохо было бы указать что архив на 4М.. у кого unlimit - это не принципиально, а для любознательных dialup`щиков - это может имеет значение.

HNail пишет:
Если запустить testapp.exe то по идее ничего не произойдет

это точно! ничего.. поскольку не хватает DINPUT8.dll и, похоже, не ее одной..
при работе с
HNail пишет:
файл без протектора, steam.dll в этом случае нафиг не нужна.
- может быть.. но DINPUT8.dll все равно нужна..

HNail
что бы упростить всем жизнь, достаточно будет кратко описать чем и как снимали протектор (PEiD этот протектор не детектит).



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

Создано: 19 марта 2008 23:40
· Личное сообщение · #26

DMD пишет:
что бы упростить всем жизнь, достаточно будет кратко описать чем и как снимали протектор (PEiD этот протектор не детектит).

Снимал ручками с помощью SoftIce. Достаточно декодировать секцию text и найти правильный OEP.
Затем с помощью HIEW меняем кодированную секцию в защищенном файле на декодированную, далее выставляем правильный OEP и отрезаем самую последнюю секцию.
Все, файл получается рабочий и без протектора.



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

Создано: 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



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

Создано: 20 марта 2008 22:35
· Личное сообщение · #28

[Anth] пишет:
В testapp.exe происходит проверка подписи. Надо просто это отключить.

Про это я уже писал, что я не могу править оригинальный файл, т.к. при подключении к инету его просто заново выкачает и перепишет.
Ладно, мое решение все равно лучше, чистый EXE и другое имя. Работает уже, так что думаю можно завязывать с обсуждением. Если только переподписать DLL, это было бы очень интересно. Но говорят это в принципе не возможно.....




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 20 марта 2008 23:13
· Личное сообщение · #29

HNail
Возможно при условии если ты выкрадешь у разработчиков приватный ключ
И кстати никто не мешал у распакованого файла прибить проверку через инет.

-----
Computer Security Laboratory




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

Создано: 21 марта 2008 12:56
· Личное сообщение · #30

А переподписать своим сертификатом не судьба ?


. 1 . 2 . >>
 eXeL@B —› Крэки, обсуждения —› Подпись файла VeriSign, возможно ли ее пересоздать при правке файла?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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