Re[4]: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: Аноним  
Дата: 08.09.09 17:45
Оценка: +1
N>Подскажите пожалуйста как включить в отчет windbg: FAULTING_SOURCE_CODE. Спасибо.
скомпиляй драйвер с дебажной инфой в .pdb
укажи путь к .pdb в windbg symbols path
и тока потом показывай нам стек
UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: needcheckhelp  
Дата: 07.09.09 20:20
Оценка:
Добрый день, написанный драйвер (реализует работу с ядерными сокетами) периодически вылетает в BSOD при дисконнекте (в windbg смотрел коды раз 10 ).

//коды запросов к драйверу
#define IOCTL_DRV_CONNECT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DRV_DISCONNECT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DRV_SEND CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
#define IOCTL_DRV_RECV CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)

В чем может быть проблема?

Если ктонибудь может помочь с советом или (что лучше)) отладкой прошу написать или стукнуть мне в асю 570563065. Отблагодарю)

исходник процедуры дисконнекта в драйвере (вроде ничего особенного):

if (pInputBuffer == NULL)
{
    irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
    irp->IoStatus.Information = 0;
    break;
}

if (nInputBufferLength < sizeof(CONNECTION_DATA))
{
    irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
    irp->IoStatus.Information = 0;
    break;
}

ConnectionData = (PCONNECTION_DATA)pInputBuffer;
// закрываем
KSocketClose(socket[ConnectionData->hSocket]);
socket[ConnectionData->hSocket]=0;
irp->IoStatus.Information = 0;
irp->IoStatus.Status = STATUS_SUCCESS;


!analyze -v

UNEXPECTED_KERNEL_MODE_TRAP (7f)
This means a trap occurred in kernel mode, and it's a trap of a kind
that the kernel isn't allowed to have/catch (bound trap) or that
is always instant death (double fault).  The first number in the
bugcheck params is the number of the trap (8 = double fault, etc)
Consult an Intel x86 family manual to learn more about what these
traps are. Here is a *portion* of those codes:
If kv shows a taskGate
        use .tss on the part before the colon, then kv.
Else if kv shows a trapframe
        use .trap on that value
Else
        .trap on the appropriate frame will show where the trap was taken
        (on x86, this will be the ebp that goes with the procedure KiTrap)
Endif
kb will then show the corrected stack.
Arguments:
Arg1: 00000008, EXCEPTION_DOUBLE_FAULT
Arg2: 80042000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------

BUGCHECK_STR:  0x7f_8

TSS:  00000028 -- (.tss 0x28)
eax=f7da822c ebx=f9cbeae0 ecx=00000000 edx=00000f04 esi=00b1d5cc edi=f7dabd64
eip=f9cbeaf3 esp=f7da7e1c ebp=f7da8234 iopl=0         nv up ei ng nz ac po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010292
tcpdp+0x2af3:
f9cbeaf3 50              push    eax
Resetting default scope

DEFAULT_BUCKET_ID:  INTEL_CPU_MICROCODE_ZERO

PROCESS_NAME:  RC4.exe

LAST_CONTROL_TRANSFER:  from f9cbeb4b to f9cbeaf3

STACK_TEXT:  
WARNING: Stack unwind information not available. Following frames may be wrong.
f7da8234 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2af3
f7da866c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7da8aa4 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7da8edc f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7da9314 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7da974c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7da9b84 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7da9fbc f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7daa3f4 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7daa82c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7daac64 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7dab09c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7dab4d4 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7dab90c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
f7dabd44 8053c808 00000f04 00000000 00000001 tcpdp+0x2b4b
f7dabd44 7c90eb94 00000f04 00000000 00000001 nt!KiFastCallEntry+0xf8
00b1d5a8 7c90d982 77dc7fe6 00000f04 00000000 ntdll!KiFastSystemCallRet
00b1d5ac 77dc7fe6 00000f04 00000000 00000001 ntdll!NtEnumerateValueKey+0xc
00b1d6dc 77dc811b 00000f04 00000000 00b1d70c ADVAPI32!LocalBaseRegEnumValue+0x10b
00b1d71c 774122cc 00000000 00000000 00b1d764 ADVAPI32!RegEnumValueW+0x17f
00b1d968 773c423e 7c91de0f 7c91de0f 00b1d984 comctl32!InitEditLpk+0x81
00b1d978 773c42d4 773c0000 00b1d9a4 7c9011a7 comctl32!_ProcessAttach+0x5a
00b1d984 7c9011a7 773c0000 00000001 00000000 comctl32!LibMain+0x21
00b1d9a4 7c91cbab 773c42b3 773c0000 00000001 ntdll!LdrpCallInitRoutine+0x14
00b1daac 7c916178 00000000 00000000 00b1ee34 ntdll!LdrpRunInitializeRoutines+0x344
00b1dd58 7c9162da 00000001 001624f0 00b1e04c ntdll!LdrpLoadDll+0x3e5
00b1e000 7c801bb9 001624f0 00b1e04c 00b1e02c ntdll!LdrLoadDll+0x230
00b1e068 7c80ace4 771a6894 00000000 00000000 kernel32!LoadLibraryExW+0x18e
00b1e07c 77f8c86d 771a6894 00b1e0c4 00000100 kernel32!LoadLibraryW+0x11
00b1e2a0 771a68dc 771a6894 00000000 771a6894 SHLWAPI!LoadLibraryWrapW+0x51
00b1e2d8 771a687b 771a6894 00000001 771a6849 WININET!SHFusionLoadLibrary+0x29
00b1e2e4 771a6849 00000020 00000008 00b1e548 WININET!DelayLoadCC+0x15
00b1e518 771a67c3 00b1e548 0000007b 00000001 WININET!SHFusionInitializeIDCC+0x92
00b1e52c 771a67a8 00b1e548 0000007b 00b1e754 WININET!SHFusionInitializeID+0x12
00b1e53c 771a6788 00b1e548 003a0043 0057005c WININET!SHFusionInitialize+0xf
00b1e754 771a69b0 771a0000 771a0000 00000000 WININET!SHFusionInitializeFromModule+0x34
00b1e76c 771a1595 771a0000 00000001 00000000 WININET!DllMain+0x4f
00b1e78c 7c9011a7 771a0000 00000001 00000000 WININET!_DllMainCRTStartup+0x52
00b1e7ac 7c91cbab 771a154d 771a0000 00000001 ntdll!LdrpCallInitRoutine+0x14
00b1e8b4 7c916178 00000000 c0150008 00000000 ntdll!LdrpRunInitializeRoutines+0x344
00b1eb60 7c9162da 00000000 0015aa28 00b1ee54 ntdll!LdrpLoadDll+0x3e5
00b1ee08 7c801bb9 0015aa28 00b1ee54 00b1ee34 ntdll!LdrLoadDll+0x230
00b1ee70 775208e8 00b1eeec 00000000 00000008 kernel32!LoadLibraryExW+0x18e
00b1ee94 77520804 00b1eeec 00b1eeb8 00b1eebc ole32!CClassCache::CDllPathEntry::LoadDll+0x6c
00b1eec4 7751fc38 00b1eeec 00b1f1c8 00b1eee4 ole32!CClassCache::CDllPathEntry::Create_rl+0x37
00b1f110 7751fb5b 00000001 00b1f1c8 00b1f140 ole32!CClassCache::CClassEntry::CreateDllClassEntry_rl+0xd6
00b1f158 7751fab9 00000001 001596a8 00b1f180 ole32!CClassCache::GetClassObjectActivator+0x195
00b1f184 7751f651 00b1f1c8 00000000 00b1f7bc ole32!CClassCache::GetClassObject+0x23
00b1f200 7751f4f5 775f63d8 00000000 00b1f7bc ole32!CServerContextActivator::CreateInstance+0x106
00b1f240 7751f7a4 00b1f7bc 00000000 00b1fd08 ole32!ActivationPropertiesIn::DelegateCreateInstance+0xf7
00b1f294 7751f71b 775f63dc 00000000 00b1f7bc ole32!CApartmentActivator::CreateInstance+0x110
00b1f2b4 7752052b 775f63dc 00000001 00000000 ole32!CProcessActivator::CCICallback+0x6d
00b1f2d4 775204e2 775f63d4 00b1f618 00000000 ole32!CProcessActivator::AttemptActivation+0x2c
00b1f30c 7751f805 775f63d4 00b1f618 00000000 ole32!CProcessActivator::ActivateByContext+0x42
00b1f334 7751f4f5 775f63d4 00000000 00b1f7bc ole32!CProcessActivator::CreateInstance+0x49
00b1f374 7751f490 00b1f7bc 00000000 00b1fd08 ole32!ActivationPropertiesIn::DelegateCreateInstance+0xf7
00b1f5c4 7751f4f5 775f639c 00000000 00b1f7bc ole32!CClientContextActivator::CreateInstance+0x8f
00b1f604 7751f33a 00b1f7bc 00000000 00b1fd08 ole32!ActivationPropertiesIn::DelegateCreateInstance+0xf7
00b1fdb4 77516000 0042d960 00000000 00000017 ole32!ICoCreateInstanceEx+0x3c9
00b1fddc 77515fcf 0042d960 00000000 00000017 ole32!CComActivator::DoCreateInstance+0x28
00b1fe00 7751603d 0042d960 00000000 00000017 ole32!CoCreateInstanceEx+0x1e
00b1fe30 00422ce4 0042d960 00000000 00000017 ole32!CoCreateInstance+0x37
00b1ff6c 1023dfd3 00000000 254cf9fe cccccccc Unknown_Module_00400000+0x22ce4
00b1ffa8 1023df69 00923878 00b1ffec 7c80b50b MSVCR90D!_callthreadstartex+0x53 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
00b1ffb4 7c80b50b 00923878 cccccccc cccccccc MSVCR90D!_threadstartex+0x89 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 331]
00b1ffec 00000000 1023dee0 00923210 00000000 kernel32!BaseThreadStart+0x37


STACK_COMMAND:  .tss 0x28 ; kb

FOLLOWUP_IP: 
tcpdp+2af3
f9cbeaf3 50              push    eax

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  tcpdp+2af3

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: tcpdp

IMAGE_NAME:  tcpdp.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  4aa410dd

FAILURE_BUCKET_ID:  0x7f_8_tcpdp+2af3

BUCKET_ID:  0x7f_8_tcpdp+2af3

Followup: MachineOwner
---------

kd> .tss 0x28
eax=f7da822c ebx=f9cbeae0 ecx=00000000 edx=00000f04 esi=00b1d5cc edi=f7dabd64
eip=f9cbeaf3 esp=f7da7e1c ebp=f7da8234 iopl=0         nv up ei ng nz ac po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010292
tcpdp+0x2af3:
f9cbeaf3 50              push    eax


За помощь отблагодарю))
Re: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: -prus-  
Дата: 08.09.09 04:05
Оценка:
Здравствуйте, needcheckhelp, Вы писали:

Правила форума нарушены.
— оверквотинг
Правила можно найти в разделе FAQ данного форума и\или ресурса.
Нарушение правил может повлечь за собой санкции, описанные там же — модератор

irp->>IoStatus.Information = 0;

irp->>IoStatus.Status = STATUS_SUCCESS;

А почему, если все хорошо, IoStatus.Information = 0 ? Насколько читал, 0 туда записывается в случае ошибки, а в случае нормального завершения туда записывается количество переданных байт. БСОД похоже не из-за этого, но помоему нужно так:

ConnectionData = (PCONNECTION_DATA)pInputBuffer;
// закрываем
KSocketClose(socket[ConnectionData->hSocket]);
socket[ConnectionData->hSocket]=0;
irp->>IoStatus.Information = sizeof(CONNECTION_DATA);
irp->>IoStatus.Status = STATUS_SUCCESS;
С уважением,
Евгений
Re: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: -prus-  
Дата: 08.09.09 05:29
Оценка:
Здравствуйте, needcheckhelp, Вы писали:

Правила форума нарушены.
— оверквотинг
Правила можно найти в разделе FAQ данного форума и\или ресурса.
Нарушение правил может повлечь за собой санкции, описанные там же — модератор

Точнее правильнее так:

ConnectionData = (PCONNECTION_DATA)pInputBuffer;
// закрываем
KSocketClose(socket[ConnectionData->hSocket]);
socket[ConnectionData->hSocket]=0;
irp->>IoStatus.Information = nInputBufferLength;
irp->>>IoStatus.Status = STATUS_SUCCESS;
С уважением,
Евгений
Re: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: Sergey Storozhevykh Россия  
Дата: 08.09.09 05:36
Оценка:
Здравствуйте, needcheckhelp, Вы писали:

N>STACK_COMMAND: .tss 0x28 ; kb


N>FOLLOWUP_IP:

N>tcpdp+2af3
N>f9cbeaf3 50 push eax

A kernel stack overflow. This overflow occurs when a guard page is hit, and the kernel tries to push a trap frame. Because there is no stack left, a stack overflow results, causing the double fault. If you think this overview has occurred, use !thread to determine the stack limits, and then use kb (Display Stack Backtrace) with a large parameter (for example, kb 100) to display the full stack.


Don't Blow Your Stack -- Clever Ways to Save Stack Space
Debugging a Stack Overflow
Re[2]: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: Sergey Storozhevykh Россия  
Дата: 08.09.09 05:40
Оценка:
Т.к. стек конечный (без рекурсии), то посмотрите на предмет выделения больших структур, массивов на стеке — скорее всего в этом дело.
Re: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: Аноним  
Дата: 08.09.09 06:41
Оценка:
что такое tcpdp.sys и почему он перехватывает системный вызов NtEnumerateValueKey? Вы троян пишете?

N>!analyze -v


N>
N>STACK_TEXT:  
N>WARNING: Stack unwind information not available. Following frames may be wrong.
N>f7da8234 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2af3
N>f7da866c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7da8aa4 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7da8edc f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7da9314 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7da974c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7da9b84 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7da9fbc f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7daa3f4 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7daa82c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7daac64 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7dab09c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7dab4d4 f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7dab90c f9cbeb4b 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7dabd44 8053c808 00000f04 00000000 00000001 tcpdp+0x2b4b
N>f7dabd44 7c90eb94 00000f04 00000000 00000001 nt!KiFastCallEntry+0xf8
N>00b1d5a8 7c90d982 77dc7fe6 00000f04 00000000 ntdll!KiFastSystemCallRet
N>00b1d5ac 77dc7fe6 00000f04 00000000 00000001 ntdll!NtEnumerateValueKey+0xc
N>00b1d6dc 77dc811b 00000f04 00000000 00b1d70c ADVAPI32!LocalBaseRegEnumValue+0x10b
N>00b1d71c 774122cc 00000000 00000000 00b1d764 ADVAPI32!RegEnumValueW+0x17f
N>00b1d968 773c423e 7c91de0f 7c91de0f 00b1d984 comctl32!InitEditLpk+0x81
N>00b1d978 773c42d4 773c0000 00b1d9a4 7c9011a7 comctl32!_ProcessAttach+0x5a
N>00b1d984 7c9011a7 773c0000 00000001 00000000 comctl32!LibMain+0x21
N>00b1d9a4 7c91cbab 773c42b3 773c0000 00000001 ntdll!LdrpCallInitRoutine+0x14
N>00b1daac 7c916178 00000000 00000000 00b1ee34 ntdll!LdrpRunInitializeRoutines+0x344
N>00b1dd58 7c9162da 00000001 001624f0 00b1e04c ntdll!LdrpLoadDll+0x3e5
N>00b1e000 7c801bb9 001624f0 00b1e04c 00b1e02c ntdll!LdrLoadDll+0x230
N>00b1e068 7c80ace4 771a6894 00000000 00000000 kernel32!LoadLibraryExW+0x18e
N>00b1e07c 77f8c86d 771a6894 00b1e0c4 00000100 kernel32!LoadLibraryW+0x11
N>00b1e2a0 771a68dc 771a6894 00000000 771a6894 SHLWAPI!LoadLibraryWrapW+0x51
N>00b1e2d8 771a687b 771a6894 00000001 771a6849 WININET!SHFusionLoadLibrary+0x29
N>00b1e2e4 771a6849 00000020 00000008 00b1e548 WININET!DelayLoadCC+0x15
N>00b1e518 771a67c3 00b1e548 0000007b 00000001 WININET!SHFusionInitializeIDCC+0x92
N>00b1e52c 771a67a8 00b1e548 0000007b 00b1e754 WININET!SHFusionInitializeID+0x12
N>00b1e53c 771a6788 00b1e548 003a0043 0057005c WININET!SHFusionInitialize+0xf
N>00b1e754 771a69b0 771a0000 771a0000 00000000 WININET!SHFusionInitializeFromModule+0x34
N>00b1e76c 771a1595 771a0000 00000001 00000000 WININET!DllMain+0x4f
N>00b1e78c 7c9011a7 771a0000 00000001 00000000 WININET!_DllMainCRTStartup+0x52
N>00b1e7ac 7c91cbab 771a154d 771a0000 00000001 ntdll!LdrpCallInitRoutine+0x14
N>00b1e8b4 7c916178 00000000 c0150008 00000000 ntdll!LdrpRunInitializeRoutines+0x344
N>00b1eb60 7c9162da 00000000 0015aa28 00b1ee54 ntdll!LdrpLoadDll+0x3e5
N>00b1ee08 7c801bb9 0015aa28 00b1ee54 00b1ee34 ntdll!LdrLoadDll+0x230
N>00b1ee70 775208e8 00b1eeec 00000000 00000008 kernel32!LoadLibraryExW+0x18e
N>00b1ee94 77520804 00b1eeec 00b1eeb8 00b1eebc ole32!CClassCache::CDllPathEntry::LoadDll+0x6c
N>00b1eec4 7751fc38 00b1eeec 00b1f1c8 00b1eee4 ole32!CClassCache::CDllPathEntry::Create_rl+0x37
N>00b1f110 7751fb5b 00000001 00b1f1c8 00b1f140 ole32!CClassCache::CClassEntry::CreateDllClassEntry_rl+0xd6
N>00b1f158 7751fab9 00000001 001596a8 00b1f180 ole32!CClassCache::GetClassObjectActivator+0x195
N>00b1f184 7751f651 00b1f1c8 00000000 00b1f7bc ole32!CClassCache::GetClassObject+0x23
N>00b1f200 7751f4f5 775f63d8 00000000 00b1f7bc ole32!CServerContextActivator::CreateInstance+0x106
N>00b1f240 7751f7a4 00b1f7bc 00000000 00b1fd08 ole32!ActivationPropertiesIn::DelegateCreateInstance+0xf7
N>00b1f294 7751f71b 775f63dc 00000000 00b1f7bc ole32!CApartmentActivator::CreateInstance+0x110
N>00b1f2b4 7752052b 775f63dc 00000001 00000000 ole32!CProcessActivator::CCICallback+0x6d
N>00b1f2d4 775204e2 775f63d4 00b1f618 00000000 ole32!CProcessActivator::AttemptActivation+0x2c
N>00b1f30c 7751f805 775f63d4 00b1f618 00000000 ole32!CProcessActivator::ActivateByContext+0x42
N>00b1f334 7751f4f5 775f63d4 00000000 00b1f7bc ole32!CProcessActivator::CreateInstance+0x49
N>00b1f374 7751f490 00b1f7bc 00000000 00b1fd08 ole32!ActivationPropertiesIn::DelegateCreateInstance+0xf7
N>00b1f5c4 7751f4f5 775f639c 00000000 00b1f7bc ole32!CClientContextActivator::CreateInstance+0x8f
N>00b1f604 7751f33a 00b1f7bc 00000000 00b1fd08 ole32!ActivationPropertiesIn::DelegateCreateInstance+0xf7
N>00b1fdb4 77516000 0042d960 00000000 00000017 ole32!ICoCreateInstanceEx+0x3c9
N>00b1fddc 77515fcf 0042d960 00000000 00000017 ole32!CComActivator::DoCreateInstance+0x28
N>00b1fe00 7751603d 0042d960 00000000 00000017 ole32!CoCreateInstanceEx+0x1e
N>00b1fe30 00422ce4 0042d960 00000000 00000017 ole32!CoCreateInstance+0x37
N>00b1ff6c 1023dfd3 00000000 254cf9fe cccccccc Unknown_Module_00400000+0x22ce4
N>00b1ffa8 1023df69 00923878 00b1ffec 7c80b50b MSVCR90D!_callthreadstartex+0x53 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
N>00b1ffb4 7c80b50b 00923878 cccccccc cccccccc MSVCR90D!_threadstartex+0x89 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 331]
N>00b1ffec 00000000 1023dee0 00923210 00000000 kernel32!BaseThreadStart+0x37

N>


N>За помощь отблагодарю))
Re[2]: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: x64 Россия  
Дата: 08.09.09 09:51
Оценка:
А>Вы троян пишете?

Похоже на то: ядерные сокеты, перехват перечислялок — признаки, однако.
Re: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: x64 Россия  
Дата: 08.09.09 09:54
Оценка:
Вот по этому куску уже и сам мог бы догадаться, что проблема не в коде TDI-клиента, а в перехватчике NtEnumerateValueKey().

f7dabd44 8053c808 00000f04 00000000 00000001 tcpdp+0x2b4b
f7dabd44 7c90eb94 00000f04 00000000 00000001 nt!KiFastCallEntry+0xf8
00b1d5a8 7c90d982 77dc7fe6 00000f04 00000000 ntdll!KiFastSystemCallRet
00b1d5ac 77dc7fe6 00000f04 00000000 00000001 ntdll!NtEnumerateValueKey+0xc
Re: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: needcheckhelp  
Дата: 08.09.09 16:25
Оценка:
NtEnumerateValueKey нет ни в коде драйвера ни в коде приложения, его использующего. На данный момент пытаюсь скомпилить дебаг версию драйвера, для получения сорса в !analyze -v, но по какимто странным причинам не компилится (с релизом все ок).

пс Честно говоря не понимаю признаков трояна о которых говорите, видимо потому что в этой области новичек.
Re[2]: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: x64 Россия  
Дата: 08.09.09 16:37
Оценка:
N>NtEnumerateValueKey нет ни в коде драйвера ни в коде приложения, его использующего.

И не будет, скорее всего, потому для перехвата сервисов ядра в SDT не нужно знать имена этих сервисов. Тем не менее, этот стек
Автор: x64
Дата: 08.09.09
однозначно указывает на наличие перехватчика, расположенного в драйвере tcpdp.sys.

N>пс Честно говоря не понимаю признаков трояна о которых говорите...


Очевидно, автор этого кода забыл написать тебе пояснительную записку.
Re[3]: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: needcheckhelp  
Дата: 08.09.09 17:29
Оценка:
Подскажите пожалуйста как включить в отчет windbg: FAULTING_SOURCE_CODE. Спасибо.
Re[2]: UNEXPECTED_KERNEL_MODE_TRAP, BSOD в tdi драйвере
От: Аноним  
Дата: 12.09.09 20:24
Оценка:
Срыв стека (в данном случае — бесконечная рекурсия). Кроме того, выделение килобайта стека в одной функции (причем рекурсивной) — ОЧЕНЬ плохая идея
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.