как? помню давным давно была то ли переменная то ли ключ в реестре, называлась как-то типа ENABLE_UM_EXCEPTIONS или что-то такое (нарыл то ли в нтдлл то ли в кернелбасе) - не помню. вообщем вспомнить точно не могу. а надо. подскажите как сделать так чтоб кд брякался на юзермодных сепшнах. !gflags +soe (Stop on exception.) работает, но там в дебрях останов, а !gflags +sue (Stop on unhandled user-mode exception) не реагирует
sn0w, Лайкну что км вд отладчик не зассал заюзать, но сравку посмотреть поленился, а он не для ленивых. И зачем для юзер ядерная отадка, не помню что бы такое было нужно. Ты же не мог никогда разобраться с примитивом в юзер, не понимаешь архитектуру. И тут внезапно отладка инструментом, которого даже я стремаюсь. Что то не то..
Indy_ да учусь потихоньку TermoSINteZ ну я и написал что даю дебаггеру команду !gflags +sue, и nt!NtGlobalFlag выставляется, всё норм, только реакции на um нет почему-то притом точно помню что брякался, и епроцесс сразу автоматом подключался и rip сразу на следующую инструкцию
sn0w, > да учусь потихоньку Когда норм его будешь знать, придёшь на какой нибудь комерс форум скажешь ребята ядерный отладчик изучил. Все в осадок выпадут, но не смотря на это ни заказов ничего не будет - это знание в блэке бесполезно, крипторы аверы всё это по юзер. ВД ты не пройдёшь даже самый простой криптор, тк инструмент предназначен для иных задач.
Indy_ спасибо, посмеялся. только мне не домыслы твои нужны, а инфа по существу вопроса в шапке топика.
sn0w, В юзер вд не нужен, используются совсем иные инструменты(визоры, либо юзер дебаг). Ну ты можешь использовать ядерный отладчик для простых задач, но это полнейшая глупость дичь. Оно не для этого нужно, стрелять из пушки по воробьям" так раньше на это отвечали, те кто знает.
Я подумал немного, нет причины что бы использовать кд, мне к примеру это было нужно столь давно что я даже не помню для отладки механизма подкачки страниц памяти. В данном случае использовать кд - отладка эксплойта, вероятно от китайских друзей https://ti.dbappsecurity.com.cn/blo...oit-is-used-by-bitter-apt-in-targeted-attack/ - обратный ядерный вызов, kernelcallbacktable скажи что не догадался
sn0w, скорее всего для этого надо подклчюаться удаленно через windbg (со второго хоста) чисто kd так не работает
Ядро нужно иногда, конкретно - написать софтину по типу GMER, чтобы удалять аверов. Искали год назад кодера под такое , так и не нашли. Ибо на комерс форумах нет спецов по ринг0.
M0rg0t, Системщику честно говоря вот мне например читать ваш форум(xss.is) это просто дичь какая то, поток спама я так воспринимаю. Иногда появляются темы по системке, но это не обсуждение, похоже что дети пытаются что то решить Есчо попытка закупа публикаций для продвижения форума, ну как же так можно..))
Indy_, каждому своё, что еще могу сказать. Там решаются практические задачи по тематике форума, т.е. массовая малварь.
M0rg0t, Какая есчо малварь, толпа нуби кидал и барыг вот вся ваша малварь и весь ваш форум. Как оно там называется по блатному сходка ?
Indy_, это практическая малварь, та самая, которую грузят людям. И на которой зарабатывают лямы баксов разные локерщики (не одобряю, но и не осуждаю). Которую ловят аверы (и менты). Именно вот этот примитив и есть малварь. Хз к чему этот флуд.
нет, просто что зааттаченный виндбг, что нтсд через кд - оба в блокировку попадали и висли при подгрузке символов (лсасс дебажил, а чтото из дебаггеров на команде прогруза лезло по рпц через алпц в лсасс, который на тот момент заморожен) с кд таких проблем, соответственно, нет. --- Сообщение объединено, 5 апр 2021 --- всё, разобрался (причина выбора кд выше). мне на самом деле на int3 в юзермоде нужна была реакция кд а не все подряд сепшены. а тестил всякими av (void(*)())0()/memcpy(0, 0, 123), видимо что-то упустил, но с бряками работает как надо.
sn0w, > лсасс дебажил, а чтото из дебаггеров на команде прогруза лезло по рпц через алпц в лсасс, который на тот момент заморожен Ну и зачем там ядерный отладчик, это юзер процессы. Может быть и должно повиснуть, тк ядерным инструментом юзер процессы системные останавливать. > алпц alpc ? Что заморожено, просто жесть. Это юзер механизм синхронного обмена сообщениями, зачем же ядерный отладчик ? Это отлаживается через олли отлично. Может хеловорды будешь ядром отлаживать ? > (void(*)())0()/memcpy(0, 0, 123), KD нужен что бы внутрянку смотреть в этой трансляции, таблицы памяти. PTE на PDE etc. А такое тупо по юзер отладчиком проходится.
Indy_ ну да, олли и вин хп. спасибо. не понимаю чего тебе непонятно, виснет дебаггер(windbg/ntsd/cdb) с таким колстеком: nt!KiCommitThreadWait+0x549 nt!KeWaitForSingleObject+0x520 nt!AlpcpSignalAndWait+0x222 nt!AlpcpReceiveSynchronousReply+0x56 nt!AlpcpProcessConnectionRequest+0x22b nt!AlpcpConnectPort+0x2bf nt!NtAlpcConnectPortEx+0x70 nt!KiSystemServiceCopyEnd+0x25 (TrapFrame @ ffffa28e`d0e29b00) ntdll!NtAlpcConnectPortEx+0x14 RPCRT4!LRPC_CASSOCIATION::AlpcConnect+0x29c RPCRT4!LRPC_CASSOCIATION::Connect+0x1a1 RPCRT4!LRPC_BASE_BINDING_HANDLE:riveStateForward+0x463 RPCRT4!LRPC_BINDING_HANDLE::NegotiateTransferSyntax+0x69b RPCRT4!NdrpClientCall3+0x3e8 RPCRT4!NdrClientCall3+0xf1 SspiCli!CreateRpcConnection+0x70
sn0w, > (TrapFrame @ ffffa28e`d0e29b00) - а это что, накой чёрт в юзер машинный фрейм процессорный ?? Та выше последовательность стектрейс не имеет начала. Создаётся соединение системная обработка идёт, но а до этого где инфа, снизу лог допиши. Зачем же приводить системные интернал отчёты. Вообще забудь про вд, если ты не в адеквате).
Indy_ ты просто не разбираешься в современных виндах. там всё сплошь и рядом заплетено на различных методах ipc (рпц->алпц если в рамках одной машины, пайпы итд). такого в твоей любимой хп сп3 с олли, возможно и не произойдёт, это да. поэтому совет твой необдуман и бесполезен. при суспенде(отладка) лсасс (а в нём еще и дпапи хостится, ес чё) виснет половина юзермода, вот пример эксплорера, который замёрз при попытке запустить нотепад из контекстного меню: 0: kd> .process /i ffffc68508176480 You need to continue execution (press 'g' <enter>) for the context to be switched. When the debugger breaks in again, you will be in the new process context. 0: kd> g Break instruction exception - code 80000003 (first chance) nt!DbgBreakPointWithStatus: fffff801`3ea67110 cc int 3 0: kd> !process 0 2 explorer.exe PROCESS ffffc68508176480 SessionId: 1 Cid: 0ef4 Peb: 01198000 ParentCid: 08fc DirBase: 139748002 ObjectTable: ffff8e0db6a22580 HandleCount: 2012. Image: explorer.exe THREAD ffffc68507fb1080 Cid 0ef4.06c8 Teb: 00000000011c1000 Win32Thread: ffffc685081bf3b0 WAIT: (WrLpcReply) UserMode Non-Alertable ffffc68507fb16c8 Semaphore Limit 0x1 THREAD ffffc68506637080 Cid 0ef4.0e64 Teb: 0000000001048000 Win32Thread: ffffc68507aa9160 WAIT: (WrLpcReply) UserMode Non-Alertable ffffc685066376c8 Semaphore Limit 0x1 ... 1: kd> .thread ffffc68506637080 Implicit thread is now ffffc685`06637080 1: kd> k *** Stack trace for last set context - .thread/.cxr resets it # Child-SP RetAddr Call Site 00 ffffd80b`b175d790 fffff801`3e8d3967 nt!KiSwapContext+0x76 01 ffffd80b`b175d8d0 fffff801`3e8d34d9 nt!KiSwapThread+0x297 02 ffffd80b`b175d990 fffff801`3e8d2260 nt!KiCommitThreadWait+0x549 03 ffffd80b`b175da30 fffff801`3e8abb52 nt!KeWaitForSingleObject+0x520 04 ffffd80b`b175db00 fffff801`3ee3b2d6 nt!AlpcpSignalAndWait+0x222 05 ffffd80b`b175dba0 fffff801`3ee3adf5 nt!AlpcpReceiveSynchronousReply+0x56 06 ffffd80b`b175dc00 fffff801`3ee39232 nt!AlpcpProcessSynchronousRequest+0x3a5 07 ffffd80b`b175dd10 fffff801`3ea70705 nt!NtAlpcSendWaitReceivePort+0x1e2 08 ffffd80b`b175ddd0 00007ffb`1df808f4 nt!KiSystemServiceCopyEnd+0x25 09 00000000`0e63b4a8 00007ffb`1b361d02 ntdll!NtAlpcSendWaitReceivePort+0x14 0a 00000000`0e63b4b0 00007ffb`1b35f251 RPCRT4!LRPC_BASE_CCALL:oSendReceive+0x112 0b 00000000`0e63b560 00007ffb`1b418ee6 RPCRT4!LRPC_CCALL::SendReceive+0x51 0c 00000000`0e63b5b0 00007ffb`1b417e41 RPCRT4!NdrpClientCall3+0x786 0d 00000000`0e63b960 00007ffb`19e064d9 RPCRT4!NdrClientCall3+0xf1 0e 00000000`0e63bcf0 00007ffb`19e0630d SspiCli!SspipGetUserName+0x119 0f 00000000`0e63bde0 00007ffb`1181d2dc SspiCli!GetUserNameExW+0x4d 10 00000000`0e63be30 00007ffb`1181d11e urlmon!CUrlmonSharedMemoryUtil::GetHandleName+0x9c 11 00000000`0e63be60 00007ffb`1181cf60 urlmon!CUrlZoneManager::Initialize+0x2e 12 00000000`0e63c0f0 00007ffb`1181ed63 urlmon!InternetCreateZoneManager+0x78 13 00000000`0e63c120 00007ffb`1181e190 urlmon!CSecurityManager::ProcessUrlActionEx2Internal+0x533 14 00000000`0e63c580 00007ffb`1ddd7655 urlmon!CSecurityManager::ProcessUrlAction+0x280 15 00000000`0e63c690 00007ffb`1ddd753d shlwapi!ZoneCheckUrlExCacheW+0x105 16 00000000`0e63c750 00007ffb`1a7065e7 shlwapi!ZoneCheckUrlExW+0x3d 17 00000000`0e63c7b0 00007ffb`1a76c525 windows_storage!CBindAndInvokeStaticVerb::ZoneCheckFile+0x7f 18 00000000`0e63c870 00007ffb`1a768cd4 windows_storage!CBindAndInvokeStaticVerb::CheckSmartScreen+0x13d 19 00000000`0e63c8f0 00007ffb`1a7b81ad windows_storage!CBindAndInvokeStaticVerb::Execute+0x174 1a 00000000`0e63cc00 00007ffb`1a7b80a5 windows_storage!RegDataDrivenCommand::_TryInvokeAssociation+0xb5 1b 00000000`0e63cc70 00007ffb`1c1b401f windows_storage!RegDataDrivenCommand::_Invoke+0x145 1c 00000000`0e63cce0 00007ffb`1c1b3eda SHELL32!CRegistryVerbsContextMenu::_Execute+0xcb 1d 00000000`0e63cd50 00007ffb`1c1b7bb3 SHELL32!CRegistryVerbsContextMenu::InvokeCommand+0xaa 1e 00000000`0e63d050 00007ffb`1c1b7a29 SHELL32!HDXA_LetHandlerProcessCommandEx+0x117 1f 00000000`0e63d160 00007ffb`1c2d5448 SHELL32!CDefFolderMenu::InvokeCommand+0x139 20 00000000`0e63d4c0 00007ffb`1c2d1775 SHELL32!CDefView::_InvokeContextMenu+0xfc 21 00000000`0e63d640 00007ffb`1c2c7f83 SHELL32!CDefView::_DoContextMenuPopup+0x8d1 22 00000000`0e63dba0 00007ffb`0271abe6 SHELL32!CDefView::OnSelectionContextMenu+0x83 23 00000000`0e63dbf0 00007ffb`02716e17 explorerframe!UIItemsView::ShowContextMenu+0x2fa 24 00000000`0e63dcf0 00007ffb`1c2d0e80 explorerframe!CItemsView::ShowContextMenu+0x17 25 00000000`0e63dd20 00007ffb`1c2d79ee SHELL32!CDefView::_DoContextMenu+0x88 26 00000000`0e63dd60 00007ffb`1c1a195a SHELL32!CDefView::_OnContextMenu+0xe2 27 00000000`0e63ddc0 00007ffb`1c1a11ac SHELL32!CDefView::WndProc+0x752 28 00000000`0e63df60 00007ffb`1bd874d6 SHELL32!CDefView::s_WndProc+0x5c 29 00000000`0e63dfb0 00007ffb`1bd86dbb USER32!UserCallWinProcCheckWow+0x266 2a 00000000`0e63e130 00007ffa`fb08dff5 USER32!CallWindowProcW+0x8b 2b 00000000`0e63e180 00007ffb`00f015c8 DUser!WndBridge::RawWndProc+0xa5 2c 00000000`0e63e200 00007ffb`1bd874d6 atlthunk!AtlThunk_0x1E+0x18 2d 00000000`0e63e240 00007ffb`1bd871fc USER32!UserCallWinProcCheckWow+0x266 2e 00000000`0e63e3c0 00007ffb`1bd90ab3 USER32!DispatchClientMessage+0x9c 2f 00000000`0e63e420 00007ffb`1df83514 USER32!_fnDWORD+0x33 30 00000000`0e63e480 00007ffb`1a0e1184 ntdll!KiUserCallbackDispatcherContinue 31 00000000`0e63e508 00007ffb`1bd847d0 win32u!NtUserMessageCall+0x14 32 00000000`0e63e510 00007ffb`1bd84342 USER32!RealDefWindowProcWorker+0x150 33 00000000`0e63e610 00007ffb`184b87f0 USER32!RealDefWindowProcW+0x52 34 00000000`0e63e650 00007ffb`184b7791 UxTheme!_ThemeDefWindowProc+0x540 [shell\themes\uxtheme\sethook.cpp @ 1095] 35 00000000`0e63e7d0 00007ffb`1bd84544 UxTheme!ThemeDefWindowProcW+0x11 [shell\themes\uxtheme\sethook.cpp @ 1109] 36 00000000`0e63e810 00007ffb`0267d578 USER32!DefWindowProcW+0x1c4 37 00000000`0e63e880 00007ffa`fb1580b3 explorerframe!UIItemsView::WndProc+0x65ff8 38 00000000`0e63e950 00007ffb`1bd874d6 DUI70!DirectUI::HWNDElement::StaticWndProc+0x53 39 00000000`0e63e990 00007ffb`1bd86dbb USER32!UserCallWinProcCheckWow+0x266 3a 00000000`0e63eb10 00007ffa`fb087e8e USER32!CallWindowProcW+0x8b 3b 00000000`0e63eb60 00007ffb`1bd874d6 DUser!ExtraInfoWndProc+0x8e 3c 00000000`0e63ebb0 00007ffb`1bd86dbb USER32!UserCallWinProcCheckWow+0x266 3d 00000000`0e63ed30 00007ffb`0b7eb8ca USER32!CallWindowProcW+0x8b 3e 00000000`0e63ed80 00007ffb`0b7eb807 comctl32!CallNextSubclassProc+0x9a 3f 00000000`0e63ee00 00007ffb`02614ac7 comctl32!DefSubclassProc+0x77 40 00000000`0e63ee50 00007ffb`02614a36 explorerframe!UIItemsView::_UIItemsViewSubclassProc+0x77 41 00000000`0e63ef30 00007ffb`0b7eb8ca explorerframe!UIItemsView::s_UIItemsViewSubclassProc+0x26 42 00000000`0e63ef70 00007ffb`0b7eb807 comctl32!CallNextSubclassProc+0x9a 43 00000000`0e63eff0 00007ffb`026166a7 comctl32!DefSubclassProc+0x77 44 00000000`0e63f040 00007ffb`02616626 explorerframe!CToolTipManager::_PropertyToolTipSubclassProc+0x67 45 00000000`0e63f090 00007ffb`0b7eb8ca explorerframe!CToolTipManager::s_PropertyToolTipSubclassProc+0x26 46 00000000`0e63f0d0 00007ffb`0b7eb5d8 comctl32!CallNextSubclassProc+0x9a 47 00000000`0e63f150 00007ffb`0b7eb8ca comctl32!TTSubclassProc+0xb8 48 00000000`0e63f200 00007ffb`0b7eb6e2 comctl32!CallNextSubclassProc+0x9a 49 00000000`0e63f280 00007ffb`1bd874d6 comctl32!MasterSubclassProc+0xa2 4a 00000000`0e63f320 00007ffb`1bd86ff2 USER32!UserCallWinProcCheckWow+0x266 4b 00000000`0e63f4a0 00007ffb`026048e3 USER32!DispatchMessageWorker+0x1b2 4c 00000000`0e63f520 00007ffb`026047e9 explorerframe!CExplorerFrame::FrameMessagePump+0xe3 4d 00000000`0e63f5a0 00007ffb`02604736 explorerframe!BrowserThreadProc+0x85 4e 00000000`0e63f620 00007ffb`02605a52 explorerframe!BrowserNewThreadProc+0x3a 4f 00000000`0e63f650 00007ffb`02618082 explorerframe!CExplorerTask::InternalResumeRT+0x12 50 00000000`0e63f680 00007ffb`1a7a4a6c explorerframe!CRunnableTask::Run+0xb2 51 00000000`0e63f6c0 00007ffb`1a7a4725 windows_storage!CShellTask::TT_Run+0x3c 52 00000000`0e63f6f0 00007ffb`1a7a4605 windows_storage!CShellTaskThread::ThreadProc+0xdd 53 00000000`0e63f7a0 00007ffb`1b13d005 windows_storage!CShellTaskThread::s_ThreadProc+0x35 54 00000000`0e63f7d0 00007ffb`1bf27974 shcore!_WrapperThreadProc+0xf5 55 00000000`0e63f8b0 00007ffb`1df3a2d1 KERNEL32!BaseThreadInitThunk+0x14 56 00000000`0e63f8e0 00000000`00000000 ntdll!RtlUserThreadStart+0x21 --- Сообщение объединено, 7 апр 2021 --- а точнее, насчёт хостящихся, кроме lsa самого по себе: dpapi, sspi, sam, ngc --- Сообщение объединено, 7 апр 2021 --- и, как видишь, эти потоки еще и non alertable --- Сообщение объединено, 7 апр 2021 --- -------------------------------------------------------------- и вот пруф, где встаёт конкретно дебугер который попытался грузануть символы (там все застревают при висящем лсасс): 0: kd> bl 0 e Disable Clear fffff805`1e21e930 0001 (0001) nt!AlpcpSignalAndWait Match process data ffffa184`c42ce080 1 e Disable Clear fffff805`1e244d40 0001 (0001) nt!KeWaitForSingleObject Match process data ffffa184`c42ce080 0: kd> ka # Child-SP RetAddr Call Site 00 fffffd82`99f3a678 fffff805`1e21eb52 nt!KeWaitForSingleObject 01 fffffd82`99f3a680 fffff805`1e7ae2d6 nt!AlpcpSignalAndWait+0x222 02 fffffd82`99f3a720 fffff805`1e7a4e27 nt!AlpcpReceiveSynchronousReply+0x56 03 fffffd82`99f3a780 fffff805`1e7a57d7 nt!AlpcpProcessConnectionRequest+0x22b 04 fffffd82`99f3a890 fffff805`1e7a4660 nt!AlpcpConnectPort+0x2bf 05 fffffd82`99f3aa10 fffff805`1e3e3705 nt!NtAlpcConnectPortEx+0x70 06 fffffd82`99f3aa90 00007ffe`b29806b4 nt!KiSystemServiceCopyEnd+0x25 07 000000f2`13bf5c98 00007ffe`b273a594 ntdll!NtAlpcConnectPortEx+0x14 08 000000f2`13bf5ca0 00007ffe`b2714b25 RPCRT4!LRPC_CASSOCIATION::AlpcConnect+0x29c 09 000000f2`13bf5e50 00007ffe`b27146c3 RPCRT4!LRPC_CASSOCIATION::Connect+0x1a 10: kd> r @rcx, @rdx, @r8, @r9; dps @rsp+28 l1 rcx=ffffa184c4e516c8 rdx=0000000000000011 r8=0000000000000001 r9=0000000000000000 (Alertable == FALSE) fffffd82`99f3a6a0 00000000`00000000 (Timeout == NULL)
sn0w, > хп сп3 с олли, возможно и не произойдёт На всей линейке повиснет всё, если общий механизм остановлен или обьект занят. Есть широкополосные сообщения в гуе к примеру, при останове обрабатывающего такие сообщения потока повиснут все клиенты, в частности это весь гуй вешало. Таким механизмом конечно процессный обмен тоже является, тем более к системному процессу. Клиенты будут ждать, а есчо и отвалится всё на таймауте ожидания. Ты ведь остановил серверный процесс, конечно всё повиснет, это какая то новость для твоей логики Я к примеру на 7-ке визором с фазы запуска этот процесс крутил, из за тайминга всё висело тормозило, весь гуй.)