Сейчас на форуме: tyns777, bezumchik, Lohmaty (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Модификация файла winlogon.exe, нужна помощь спецов!
Посл.ответ Сообщение

Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 28 февраля 2019 23:13
· Личное сообщение · #1

Товарищи реверсеры и крэкеры, всем здравия! Нужна ваша помощь по поводу того, как грамотно отредактировать системный исполняемый файл для своих целей и при этом не "уронить" систему, если это вообще возможно в Windows 10. В моём случае таким файлом является C:\Windows\System32\winlogon.exe. А цель - избавиться от назойливого уведомления "Не удалось восстановить подключения ко всем сетевым дискам", которое постоянно выскакивает при старте системы (все иные способы решить эту проблему, найденные в сети, либо не работают, либо создают иные проблемы, по-этому для меня остался только один способ возможного решения - реверсинг).

Собственно, я нашёл целевой код, должным образом подправил его в WinHex'е, с загрузочной флешки заменил оригинальный winlogon.exe в системе на модифицированный и перезагрузил ПК. Как итог, система выдала экран с сообщением, что-то вроде "У вас проблема, данные об ошибке отправляются", после чего ПК отключился. В журнале событий (после обратной замены искомого файла), соответственно, зафиксировалось следующая запись:

Code:
  1. Компьютер был перезагружен после критической ошибки.  Код ошибки: 0xc000021a (0xffffde85edbfb1c0, 0xffffffffc0000428, 0x0000000000000001, 0x0000026b80020000). Дамп памяти сохранен в: C:\Windows\MEMORY.DMP. Код отчета: bcc49ed4-f497-42d4-a3c0-05e822aff16a.


Собственно я предполагаю, что причина кроется в цифровой подписи системных файлов. Соответственно, система обнаружила, что файл был модифицирован, и отказалась его принимать.
Нельзя исключить, естественно, что я где-то напортачил при редактировании файла, однако вроде бы аккуратно работал. Раньше я не дизассемблировал 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




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 28 февраля 2019 23:26
· Личное сообщение · #2

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

-----
2 оттенка серого




Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 28 февраля 2019 23:29 · Поправил: LShadow77
· Личное сообщение · #3

f13nd
Думал про "поменять незначащий байт", на досуге вероятно попробую так сделать. А вот с патчем "на лету" всё несколько сложнее. Как я понимаю, для этого нужно написать какой-нибудь драйвер, который запускался бы до выполнения winlogon, мониторил этот момент и, соответственно, инжектил код при загрузке последнего. Моих текущих знаний и умений пока не хватает, чтобы так заморочиться. Планирую поковырять ещё wlrmdr.exe, может в нём что-то полезное удасться отыскать...

К слову, где можно почитать про WPP_GLOBAL_Control? Я так понимаю, это что-то связанное с "раскруткой" стека и исключениями, я прав?



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 февраля 2019 23:44
· Личное сообщение · #4

https://answers.microsoft.com/ru-ru/windows/forum/windows_7-networking/ошибка-не/2cb870b2-1ade-417d-9426-6858f86ae046
Code:
  1. Чтобы предотвратить инициализацию соединения к сетевыми дисками до полного ввлючения сетевых соединений сделайте следующее:
  2. Win+->Выполнить -> gpedit.msc -> Конфигурация компьютера -> Административные шаблоны -> Система -> Вход в систему
  3. Найдите пункт "Всегда ожидать инициализации сети при загрузке и входе в систему" - включите его. Перезагрузитесь.
  4. Все, теперь все процессы будут выполняться только после инициализации сети.

?



Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 01 марта 2019 00:13
· Личное сообщение · #5

ELF_7719116
Как я уже писал, те "легальные" решения в сети, что мне удалось найти, либо не работают на моём ПК, либо работают не так, как мне надо. Этот метод - не работает. Всё равно кидает уведомление. А даже если бы работал, то при условии постоянно включенного второго компа, с которого у меня и расшарены диски. При выключенном компе сообщения также продолжали бы выскакивать. А моя цель - избавиться от них полностью, независимо от доступности сети или компа с шарой.

Добавлено спустя 8 минут
Изменил один ничего не значащий байт, в области выравнивания между процедурами - винда кричит "У вас проблема!" и вырубает ПК. Таки аутентификация! Или CRC. В первом случае - печаль. Во втором можно попробовать пересчитать контрольную сумму. Каким софтом это можно сделать?



Ранг: 43.1 (посетитель), 20thx
Активность: 0.160.29
Статус: Участник

Создано: 01 марта 2019 00:49 · Поправил: user99
· Личное сообщение · #6

LShadow77 пишет:
Каким софтом это можно сделать?

Я сомневаюсь, что ты сможешь подменить цифровую подпись, иначе от нее толку было бы совсем ноль.

Соглашусь с f13nd, лучше делать изменения на лету. Если целевой процесс является критическим (или как-то так называется), то ты к нему доступ без драйвера не получишь, но где-то встречал драйвера с уязвимостью, используя которые можно получать полный доступ к любому системному процессу. Так что твои действия просты:
1) найти этот драйвер (или любой другой способ) и зарегать его его в системе
2) написать свой инжектор в виде сервиса (или поместить в автозагрузку)
3) при запуске инжектора (вместе с системой) модифицировать целевой процесс




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 01 марта 2019 01:13
· Личное сообщение · #7

В качестве колхоз-стайл-решения могу предложить cdb использовать тупо чтоб приаттачиться к винлогону, пропатчить что надо и выйти на qd) Вроде как опцией -cf можно указать ему скрипт. Если получится его запускать до появления этого окна конечно.

-----
2 оттенка серого




Ранг: 20.2 (новичок), 16thx
Активность: 0.020.01
Статус: Участник

Создано: 01 марта 2019 03:51
· Личное сообщение · #8

Можно попробовать сделать через инжект dll через KnownDLLs или автоинжектируемую dll, проанализировав импорт winlogon. Но надо обязательно выполнить проверку, что подгрузились в целевой процесс.



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 01 марта 2019 06:27
· Личное сообщение · #9

LShadow77
Рискну предположить что так оно и есть и у тебя в ошибке бсод STATUS_SYSTEM_PROCESS_TERMINATED (вероятно от smss) и STATUS_INVALID_IMAGE_HASH в параметрах. Твоя идея была изначально дурацкой и это мягко говоря.

GroundHog
Изменение KnownDlls в вин10 требует PPL-win-tcb.



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

Создано: 01 марта 2019 07:57 · Поправил: dosprog
· Личное сообщение · #10

Alchemistry пишет:
Твоя идея была изначально дурацкой и это мягко говоря.

Идея как идея.

Как минимум - надо было удалить сертификат, который в оверлее,
и обнулить чексумму в PE-заголовке.
- это надо было сделать в самом начале.
И есть же специально для такого Hiew, зачем мучить WinHex?

А вот уже дальше могут быть варианты

Alchemistry пишет:
KnownDlls в вин10

...






Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 01 марта 2019 10:58
· Личное сообщение · #11

dosprog
отсутствие серта равносильно неверному серту при проверках. чексумма пофик, если это не драйвер, имхо

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

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

Ранг: 43.1 (посетитель), 20thx
Активность: 0.160.29
Статус: Участник

Создано: 01 марта 2019 12:00
· Личное сообщение · #13

Alchemistry пишет:
что это за диски он так и не объяснил также как и почему они не монтируются

Кстати, у меня такая же хрень с этими сообщениями: в сети два компа, на первом компе смонтированы сетевые диски, ведущие на второй комп, перегружаем первый комп, при входе в систему видим несчастное сообщение, но когда секунд через 5 обращаемся к сетевым дискам они все на месте. Но мне лично впадлу не то чтобы винду корявить, а даже админить ее, т.к. значительно проще забить на сообщение (особенно если учесть, что компы перезагружаются раз в месяц)



Ранг: 47.6 (посетитель), 15thx
Активность: 0.030.02
Статус: Участник

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

Может все таки попробовать включить нетбиос выключеный с год назад очередным обновлением МС а не патчить винлогон ?




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 01 марта 2019 13:29
· Личное сообщение · #15

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



Ранг: 15.7 (новичок), 12thx
Активность: 0.050.07
Статус: Участник

Создано: 01 марта 2019 14:16
· Личное сообщение · #16

LShadow77 пишет:
как грамотно отредактировать системный исполняемый файл для своих целей и при этом не "уронить" систему, если это вообще возможно в Windows 10.

Если есть такой вариант,то,прежде всего,чтобы наверняка не испортить систему,советую ставить её на виртуальную машину и там уже вытворять всё,что заблагорассудится...кстати,можно попробовать сделать экспорт-импорт значений реестра Вашей системы в систему под ВМ и глянуть будет ли эта ошибка на ней проявляться...



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

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

user99
Если стоит вин10 1809 то там была/есть такая известная проблема, KB4471218. Я не в курсе пофиксили они это или нет, но в любом случае через месяц-два приедет обновление 1903 и с пачкой новых багов там может быть пофиксят это. Вообще если используете вин 10, ставьте исключительно LTSB/LTSC версии, и не гонитесь за распоследними вариантами. Вин10 тестят наживую на обычных юзерах и только для ентерпрайса у мс другое отношение к обновлениям.



Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

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



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 01 марта 2019 21:50 · Поправил: rmn
· Личное сообщение · #19

LShadow77
Ну так и добавь свой
Code:
  1. REGEDIT4
  2.  
  3. [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Microsoft.NetDriveReconnectFailed]

в планировщик для выполнения при входе в систему.

Только скорее всего надо не HKCU, а HKEY_USERS\ТВОЙ-SID

| Сообщение посчитали полезным: LShadow77

Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 02 марта 2019 00:39 · Поправил: LShadow77
· Личное сообщение · #20

rmn
Большое спасибо, это сработало! И даже с нормальным HKCU. Создал задание на запуск при входе в систему и действием "regedit /s C:\NetDriveReconnectFailedSuppress.reg", и всё - ТИШИНА! Надоедливый месседж больше не всплывает. Как просто всё в итоге оказалось))) Но как изрядно пришлось заморочится, чтобы дойти до этого решения.
Виндовские экзешники патчить не пришлось, ну и слава Богу! Отложу этот вопрос до поры))

Господа, всем вам большой респект, вы мне очень помогли!

18ac_02.03.2019_EXELAB.rU.tgz - NetDriveReconnectFailedSuppress.reg



Ранг: 3.1 (гость)
Активность: 0.020.01
Статус: Участник

Создано: 03 марта 2019 13:23
· Личное сообщение · #21

Изначально поставленная задача решена, тему закрываю.


 eXeL@B —› Вопросы новичков —› Модификация файла winlogon.exe, нужна помощь спецов!
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати