eXeL@B —› Вопросы новичков —› Модификация файла winlogon.exe, нужна помощь спецов! |
Посл.ответ | Сообщение |
|
Создано: 28 февраля 2019 23:13 · Личное сообщение · #1 Товарищи реверсеры и крэкеры, всем здравия! Нужна ваша помощь по поводу того, как грамотно отредактировать системный исполняемый файл для своих целей и при этом не "уронить" систему, если это вообще возможно в Windows 10. В моём случае таким файлом является C:\Windows\System32\winlogon.exe. А цель - избавиться от назойливого уведомления "Не удалось восстановить подключения ко всем сетевым дискам", которое постоянно выскакивает при старте системы (все иные способы решить эту проблему, найденные в сети, либо не работают, либо создают иные проблемы, по-этому для меня остался только один способ возможного решения - реверсинг). Собственно, я нашёл целевой код, должным образом подправил его в WinHex'е, с загрузочной флешки заменил оригинальный winlogon.exe в системе на модифицированный и перезагрузил ПК. Как итог, система выдала экран с сообщением, что-то вроде "У вас проблема, данные об ошибке отправляются", после чего ПК отключился. В журнале событий (после обратной замены искомого файла), соответственно, зафиксировалось следующая запись: Code:
Собственно я предполагаю, что причина кроется в цифровой подписи системных файлов. Соответственно, система обнаружила, что файл был модифицирован, и отказалась его принимать. Нельзя исключить, естественно, что я где-то напортачил при редактировании файла, однако вроде бы аккуратно работал. Раньше я не дизассемблировал 64-битные программы, да ещё под Win10, так что вполне мог что-то не учесть. Вопрос к спецам: прав ли я насчёт цифровой подписи (а может тут просто CRC) и как всё таки мне решить эту проблему (и каким софтом)? Спасибо. P.S. На всякий случай прилагаю скрины, что касательно самого патча. Вдруг кто увидит мою ошибку, если таковая есть? [url=01-Целевая процедура, ответственная за сетевые подключения.png]http://a.radikal.ru/a32/1902/0c/4df2a3634082.png[/url] [url=02-Оригинальный код (до патча).png]http://c.radikal.ru/c26/1902/33/911266a3d22b.png[/url] [url=03-Модифицированный код (после патча).png]http://b.radikal.ru/b06/1902/38/a60a95f0ada2.png[/url] f8b6_28.02.2019_EXELAB.rU.tgz - 01-Целевая процедура, ответственная за сетевые подключения.png Добавлено спустя 2 минуты [url=01-Целевая процедура, ответственная за сетевые подключения.png]--> http://a.radikal.ru/a32/1902/0c/4df2a3634082.png <--[/url] [url=02-Оригинальный код (до патча).png]--> http://c.radikal.ru/c26/1902/33/911266a3d22b.png <--[/url] [url=03-Модифицированный код (после патча).png]--> http://b.radikal.ru/b06/1902/38/a60a95f0ada2.png <--[/url] Добавлено спустя 5 минут Что-то не работают тут ссылки. Прилагаю архив. 7aad_28.02.2019_EXELAB.rU.tgz - Скрины.rar |
|
Создано: 28 февраля 2019 23:26 · Личное сообщение · #2 Проверить из-за цп это или нет просто - поменяй любой байт, который точно ни на что не повлияет. Патчить файл венды и отключать для этого ее иммунитет ко всяким не твоим изменениям наверное плохое решение, лучше искать способ инжекта в сам процесс, чтобы уже в нем вставить свои нопы куда надо. ----- 2 оттенка серого |
|
Создано: 28 февраля 2019 23:29 · Поправил: LShadow77 · Личное сообщение · #3 f13nd Думал про "поменять незначащий байт", на досуге вероятно попробую так сделать. А вот с патчем "на лету" всё несколько сложнее. Как я понимаю, для этого нужно написать какой-нибудь драйвер, который запускался бы до выполнения winlogon, мониторил этот момент и, соответственно, инжектил код при загрузке последнего. Моих текущих знаний и умений пока не хватает, чтобы так заморочиться. Планирую поковырять ещё wlrmdr.exe, может в нём что-то полезное удасться отыскать... К слову, где можно почитать про WPP_GLOBAL_Control? Я так понимаю, это что-то связанное с "раскруткой" стека и исключениями, я прав? |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 28 февраля 2019 23:44 · Личное сообщение · #4 https://answers.microsoft.com/ru-ru/windows/forum/windows_7-networking/ошибка-не/2cb870b2-1ade-417d-9426-6858f86ae046 Code:
? |
|
Создано: 01 марта 2019 00:13 · Личное сообщение · #5 ELF_7719116 Как я уже писал, те "легальные" решения в сети, что мне удалось найти, либо не работают на моём ПК, либо работают не так, как мне надо. Этот метод - не работает. Всё равно кидает уведомление. А даже если бы работал, то при условии постоянно включенного второго компа, с которого у меня и расшарены диски. При выключенном компе сообщения также продолжали бы выскакивать. А моя цель - избавиться от них полностью, независимо от доступности сети или компа с шарой. Добавлено спустя 8 минут Изменил один ничего не значащий байт, в области выравнивания между процедурами - винда кричит "У вас проблема!" и вырубает ПК. Таки аутентификация! Или CRC. В первом случае - печаль. Во втором можно попробовать пересчитать контрольную сумму. Каким софтом это можно сделать? |
|
Создано: 01 марта 2019 00:49 · Поправил: user99 · Личное сообщение · #6 LShadow77 пишет: Каким софтом это можно сделать? Я сомневаюсь, что ты сможешь подменить цифровую подпись, иначе от нее толку было бы совсем ноль. Соглашусь с f13nd, лучше делать изменения на лету. Если целевой процесс является критическим (или как-то так называется), то ты к нему доступ без драйвера не получишь, но где-то встречал драйвера с уязвимостью, используя которые можно получать полный доступ к любому системному процессу. Так что твои действия просты: 1) найти этот драйвер (или любой другой способ) и зарегать его его в системе 2) написать свой инжектор в виде сервиса (или поместить в автозагрузку) 3) при запуске инжектора (вместе с системой) модифицировать целевой процесс |
|
Создано: 01 марта 2019 01:13 · Личное сообщение · #7 |
|
Создано: 01 марта 2019 03:51 · Личное сообщение · #8 |
|
Создано: 01 марта 2019 06:27 · Личное сообщение · #9 |
|
Создано: 01 марта 2019 07:57 · Поправил: dosprog · Личное сообщение · #10 Alchemistry пишет: Твоя идея была изначально дурацкой и это мягко говоря. Идея как идея. Как минимум - надо было удалить сертификат, который в оверлее, и обнулить чексумму в PE-заголовке. - это надо было сделать в самом начале. И есть же специально для такого Hiew, зачем мучить WinHex? А вот уже дальше могут быть варианты Alchemistry пишет: KnownDlls в вин10 ... |
|
Создано: 01 марта 2019 10:58 · Личное сообщение · #11 |
|
Создано: 01 марта 2019 11:44 · Личное сообщение · #12 dosprog пишет: Идея как идея. Это от любителей виндоус хп любителям виндоус хп? Дальше по плану мы будем ломать CI, а потом ломать патчгард - т.е. ради каких-то балунов которые всплывают и чем-то раздражают в течении пары секунд мы будем дрючить всю безопасность венды, идея 10 из 10. Решение проблемы тс это либо какой-то скрипт который смонтирует ему эти дурацкие сетевые диски при логоне, что это за диски он так и не объяснил также как и почему они не монтируются. Либо (для особо упоротых) хак винлогана в памяти через какой-нибудь инжект. ЕМНИП у винлогона есть специальные длл нотификации на события которые можно запилить самому. Как это работает и поможет это - хз, я не любитель подобных извращений. Завтра мс выпускает очередной апдейт и вешает на винлогон mitigation политику - запрет неподписанных модулей, запрет выполнения динамического кода и мы приезжаем к точке отправления. Простое гугление выдает это http://winitpro.ru/index.php/2018/11/27/ne-podklyuchayutsya-setevye-diski-v-windows/ Ставим на весы - ломка венды vs использование венды. | Сообщение посчитали полезным: ajax |
|
Создано: 01 марта 2019 12:00 · Личное сообщение · #13 Alchemistry пишет: что это за диски он так и не объяснил также как и почему они не монтируются Кстати, у меня такая же хрень с этими сообщениями: в сети два компа, на первом компе смонтированы сетевые диски, ведущие на второй комп, перегружаем первый комп, при входе в систему видим несчастное сообщение, но когда секунд через 5 обращаемся к сетевым дискам они все на месте. Но мне лично впадлу не то чтобы винду корявить, а даже админить ее, т.к. значительно проще забить на сообщение (особенно если учесть, что компы перезагружаются раз в месяц) |
|
Создано: 01 марта 2019 13:17 · Личное сообщение · #14 |
|
Создано: 01 марта 2019 13:29 · Личное сообщение · #15 |
|
Создано: 01 марта 2019 14:16 · Личное сообщение · #16 LShadow77 пишет: как грамотно отредактировать системный исполняемый файл для своих целей и при этом не "уронить" систему, если это вообще возможно в Windows 10. Если есть такой вариант,то,прежде всего,чтобы наверняка не испортить систему,советую ставить её на виртуальную машину и там уже вытворять всё,что заблагорассудится...кстати,можно попробовать сделать экспорт-импорт значений реестра Вашей системы в систему под ВМ и глянуть будет ли эта ошибка на ней проявляться... |
|
Создано: 01 марта 2019 17:10 · Личное сообщение · #17 user99 Если стоит вин10 1809 то там была/есть такая известная проблема, KB4471218. Я не в курсе пофиксили они это или нет, но в любом случае через месяц-два приедет обновление 1903 и с пачкой новых багов там может быть пофиксят это. Вообще если используете вин 10, ставьте исключительно LTSB/LTSC версии, и не гонитесь за распоследними вариантами. Вин10 тестят наживую на обычных юзерах и только для ентерпрайса у мс другое отношение к обновлениям. |
|
Создано: 01 марта 2019 20:36 · Поправил: LShadow77 · Личное сообщение · #18 Alchemistry пишет: Твоя идея была изначально дурацкой и это мягко говоря. Ну почему же дурацкая? По крайней мере я попытался))) Спасибо за пояснение кодов. Alchemistry пишет: ради каких-то балунов которые всплывают и чем-то раздражают в течении пары секунд мы будем дрючить всю безопасность венды Не надо утрировать. Разумеется я не собираюсь ломать безопасность винды на своём ПК. С другой стороны, любые эксперименты со своей системой я делаю на свой страх и риск, который прекрасно осознаю. ClockMan пишет: и хорошо что таким как вы обломили изменение файлов винды Ну уж у вам подобных я не спрашивал. Моя винда, мой ПК - что хочу, то и делаю. Alchemistry пишет: и не гонитесь за распоследними вариантами. Винда как раз самая распоследняя, и все последние обновы стоят. А что касается версии, то вся система оказалась с... отладочной информацией! IDA спокойно подгружает pdb-файлы, и я в результате вижу всю символику из исходников, которая по идее в релизной сборке должна отсутствовать. Если честно, то я был удивлён. Что говорить, такой код читать - одно удовольствие!))) И да, соглашусь с вами, что уязвимости и прочие баги разрабы имеют обыкновение с течением времени фиксить (и это хорошо). По-этому даже не рассматриваю вариант использования какой-либо уязвимости. Добавлено спустя 37 минут В общем так, ребята. Я полностью изучил весь механизм появления подобных уведомлений при старте системы. И механизм этот таков... Winlogon некоторые сообщения выводит не напрямую, а только создаёт в реестре раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\PostBootReminders, а в нём - ключи, по одному на каждое сообщение. Например, имя ключа для обсуждаемого тут уведомления - Microsoft.NetDriveReconnectFailed. На самом деле, как называть эти ключи совершенно не важно, вся информация о том, что и как показывать - в их параметрах. Далее, оболочка винды при старте в цикле перебирает все ключи в разделе PostBootReminders и показывает соответствующие уведомления, после чего этот раздел удаляет. Код, который это делает, находится в Shell32.dll. Таким образом, если бы удалось сделать так, чтобы между выполнением winlogon и запуском оболочки встроить запуск приложения, которое бы удаляло ключ HKCU\...PostBootReminders\Microsoft.NetDriveReconnectFailed, то поставленная изначально мною задача была бы относительно изящно решена. Другой вариант решения - сделать так, чтобы winlogon не смог создать этот ключ (как-то поиграться с правами доступа). P.S. Если вы у себя на компе запустите прилагаемый reg-файл, то после перезагрузки сможете наблюдать работу постзагрузочных уведомлений "в живую"))) P.S. 5711_01.03.2019_EXELAB.rU.tgz - PrevedMedvedOnBoot.reg |
|
Создано: 01 марта 2019 21:50 · Поправил: rmn · Личное сообщение · #19 LShadow77 Ну так и добавь свой Code:
в планировщик для выполнения при входе в систему. Только скорее всего надо не HKCU, а HKEY_USERS\ТВОЙ-SID | Сообщение посчитали полезным: LShadow77 |
|
Создано: 02 марта 2019 00:39 · Поправил: LShadow77 · Личное сообщение · #20 rmn Большое спасибо, это сработало! И даже с нормальным HKCU. Создал задание на запуск при входе в систему и действием "regedit /s C:\NetDriveReconnectFailedSuppress.reg", и всё - ТИШИНА! Надоедливый месседж больше не всплывает. Как просто всё в итоге оказалось))) Но как изрядно пришлось заморочится, чтобы дойти до этого решения. Виндовские экзешники патчить не пришлось, ну и слава Богу! Отложу этот вопрос до поры)) Господа, всем вам большой респект, вы мне очень помогли! 18ac_02.03.2019_EXELAB.rU.tgz - NetDriveReconnectFailedSuppress.reg |
|
Создано: 03 марта 2019 13:23 · Личное сообщение · #21 |
eXeL@B —› Вопросы новичков —› Модификация файла winlogon.exe, нужна помощь спецов! |
Эта тема закрыта. Ответы больше не принимаются. |