Процесс детектит Windbg на удаленной машине

Тема в разделе "WASM.SOFTWARE", создана пользователем herzenstube, 20 июн 2025.

  1. herzenstube

    herzenstube New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2024
    Сообщения:
    6
    Привет. Пытаюсь отладить программу которая очень хорошо упакована, по этому распаковывать вручную займет пару лет.
    Думал, что если запустить на удаленной машине через windbg то можно будет найти реальный entry point, но все равно не запускается.
    Подскажите, можно ли сделать что-бы windbg не детектился процессом?
     
  2. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    308
    Для начала узнайте, чем именно запакован софт - как вариант DiE подскажет.
    А использовать WinDBG для этих целей - идея так себе.
     
  3. herzenstube

    herzenstube New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2024
    Сообщения:
    6
    Если верить die. То софт упакован vmprotect. В софте куча провероки, не только isDebuggerPresent, CheckRemoteDebuggerPresent или NtQueryInformationProcess, ну и на виртуалке он не запускается, и ругается на включенную виртуализацию и на флаги типа testsigning off.
    Размер .exe - 33мб
    При запуске .exe запускает свой подписаный драйвер ядра, который (могу ошибаться, я только учусь) модифицирует EPROCESS так что память процесса не получается прочитать обычными утилитами, так - же как и не получается присоеденится отладчиком. Дебаггер IDA пишет что процесс завершен или не хватает прав, а x64dbg его просто не видит.
    Единственный способ как у меня получалось читать память уже запущенного процесса, так это через ядерный драйвер (кастомная сборка драйвера от cheat engine).

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

    Вложения:

  4. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    610
    замахнулись на гору Еверест
    а силенки хватит хотя б на 1й км подняться? :)
     
    sl0n, M0rg0t и Research нравится это.
  5. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    308
    Тогда пробуйте дамперы процессов - их много, может какой-нибудь справится.
    ProcessExproler, ProcessHacker, PeTools, и далее по списку. Надеюсь в x64Dbg имеется плагин "ScyllaHide" ?
     
  6. herzenstube

    herzenstube New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2024
    Сообщения:
    6
    Спасибо за ответ, пробовал уже всеми утилитами. ProcessExplorer пишет - invalid handle, ProcessHacker ( System Informer ) - вообще не видит процесса в списке. PETools тоже не может сдампить. Ну и ScyllaHide тоже не может приконнектится. По этому и думал, что с помощью windbg можно обойти проверки, залезть в драйвер, посмотреть что там за магия происходит.

    Точно сказано! Ощущается прямо как на поход Еверест в резиновых шлепанцах
     
  7. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    308
    Если и правда дела так плохи, то остаётся вырезать блок из бинаря экзе, а парсить его отдельно.
    Можно целиком всю секцию ".vmp0" (или как она там называется), или-же сразу на точке-входа (не оеп), найти которую помогут сигнатуры протектора vmp - вагон и целая тележка их валяется в папке DiE "db\pe\..". Осознав всю серьёзность ситуации, в следующий раз уже вряд ли возьмётесь за это дело без соответствующих навыков.

    С другой стороны, если вас интересует только драйвер, то через WinDBG + LiveKd можно сдампить память sys не подключаясь к процессу.
    Например вот дизасм листинг драйвера "ProcessHacker/Informer", который так и называется "kProcessHacker3.sys":
    Код (Text):
    1. 0: kd> !drvobj kProcessHacker3 7
    2. Driver object  fffffa800401aa30 is for:  \Driver\KProcessHacker3
    3. DevObj list:   fffffa800401c7c0
    4.  
    5. DriverEntry:   fffff880035c7064 kprocesshacker
    6. DriverStartIo: 00000000
    7. DriverUnload:  fffff880035c30ec kprocesshacker
    8. AddDevice:     00000000
    9.  
    10. Dispatch routines:
    11. [00] IRP_MJ_CREATE                      fffff880035bf008        kprocesshacker+0x1008
    12. [01] IRP_MJ_CREATE_NAMED_PIPE           fffff80002a35408        nt!IopInvalidDeviceRequest
    13. [02] IRP_MJ_CLOSE                       fffff880035bf14c        kprocesshacker+0x114c
    14. [03] IRP_MJ_READ                        fffff80002a35408        nt!IopInvalidDeviceRequest
    15. [04] IRP_MJ_WRITE                       fffff80002a35408        nt!IopInvalidDeviceRequest
    16. [05] IRP_MJ_QUERY_INFORMATION           fffff80002a35408        nt!IopInvalidDeviceRequest
    17. [06] IRP_MJ_SET_INFORMATION             fffff80002a35408        nt!IopInvalidDeviceRequest
    18. [07] IRP_MJ_QUERY_EA                    fffff80002a35408        nt!IopInvalidDeviceRequest
    19. [08] IRP_MJ_SET_EA                      fffff80002a35408        nt!IopInvalidDeviceRequest
    20. [09] IRP_MJ_FLUSH_BUFFERS               fffff80002a35408        nt!IopInvalidDeviceRequest
    21. [0a] IRP_MJ_QUERY_VOLUME_INFORMATION    fffff80002a35408        nt!IopInvalidDeviceRequest
    22. [0b] IRP_MJ_SET_VOLUME_INFORMATION      fffff80002a35408        nt!IopInvalidDeviceRequest
    23. [0c] IRP_MJ_DIRECTORY_CONTROL           fffff80002a35408        nt!IopInvalidDeviceRequest
    24. [0d] IRP_MJ_FILE_SYSTEM_CONTROL         fffff80002a35408        nt!IopInvalidDeviceRequest
    25. [0e] IRP_MJ_DEVICE_CONTROL              fffff880035bf198        kprocesshacker+0x1198
    26. [0f] IRP_MJ_INTERNAL_DEVICE_CONTROL     fffff80002a35408        nt!IopInvalidDeviceRequest
    27. [10] IRP_MJ_SHUTDOWN                    fffff80002a35408        nt!IopInvalidDeviceRequest
    28. [11] IRP_MJ_LOCK_CONTROL                fffff80002a35408        nt!IopInvalidDeviceRequest
    29. [12] IRP_MJ_CLEANUP                     fffff80002a35408        nt!IopInvalidDeviceRequest
    30. [13] IRP_MJ_CREATE_MAILSLOT             fffff80002a35408        nt!IopInvalidDeviceRequest
    31. [14] IRP_MJ_QUERY_SECURITY              fffff80002a35408        nt!IopInvalidDeviceRequest
    32. [15] IRP_MJ_SET_SECURITY                fffff80002a35408        nt!IopInvalidDeviceRequest
    33. [16] IRP_MJ_POWER                       fffff80002a35408        nt!IopInvalidDeviceRequest
    34. [17] IRP_MJ_SYSTEM_CONTROL              fffff80002a35408        nt!IopInvalidDeviceRequest
    35. [18] IRP_MJ_DEVICE_CHANGE               fffff80002a35408        nt!IopInvalidDeviceRequest
    36. [19] IRP_MJ_QUERY_QUOTA                 fffff80002a35408        nt!IopInvalidDeviceRequest
    37. [1a] IRP_MJ_SET_QUOTA                   fffff80002a35408        nt!IopInvalidDeviceRequest
    38. [1b] IRP_MJ_PNP                         fffff80002a35408        nt!IopInvalidDeviceRequest
    39.  
    40. ;//------ Листинг процедуры "IRP_MJ_CREATE" драйвера
    41. 0: kd> uf /i fffff880035bf008
    42.              81 instructions scanned
    43.  
    44. kprocesshacker+0x1008:
    45. fffff880`035bf008 48895c2408      mov     qword ptr [rsp+8],rbx
    46. fffff880`035bf00d 48896c2418      mov     qword ptr [rsp+18h],rbp
    47. fffff880`035bf012 56              push    rsi
    48. fffff880`035bf013 57              push    rdi
    49. fffff880`035bf014 4155            push    r13
    50. fffff880`035bf016 4883ec40        sub     rsp,40h
    51. fffff880`035bf01a 488b05df200000  mov     rax,qword ptr [kprocesshacker+0x3100 (fffff880`035c1100)]
    52. fffff880`035bf021 4833c4          xor     rax,rsp
    53. fffff880`035bf024 4889442438      mov     qword ptr [rsp+38h],rax
    54. fffff880`035bf029 488b82b8000000  mov     rax,qword ptr [rdx+0B8h]
    55. fffff880`035bf030 488bfa          mov     rdi,rdx
    56. fffff880`035bf033 33db            xor     ebx,ebx
    57. fffff880`035bf035 488b6830        mov     rbp,qword ptr [rax+30h]
    58. fffff880`035bf039 488b7008        mov     rsi,qword ptr [rax+8]
    59. fffff880`035bf03d ff15fd110000    call    qword ptr [kprocesshacker+0x2240 (fffff880`035c0240)]
    60. fffff880`035bf043 448b1d82220000  mov     r11d,dword ptr [kprocesshacker+0x32cc (fffff880`035c12cc)]
    61. fffff880`035bf04a 448d6b01        lea     r13d,[rbx+1]
    62. fffff880`035bf04e 453bdd          cmp     r11d,r13d
    63. fffff880`035bf051 7406            je      kprocesshacker+0x1059 (fffff880`035bf059)
    64.  
    65. kprocesshacker+0x1053:
    66. fffff880`035bf053 4183fb03        cmp     r11d,3
    67. fffff880`035bf057 7542            jne     kprocesshacker+0x109b (fffff880`035bf09b)
    68.  
    69. kprocesshacker+0x1059:
    70. fffff880`035bf059 488b5608        mov     rdx,qword ptr [rsi+8]
    71. fffff880`035bf05d 448a4740        mov     r8b,byte ptr [rdi+40h]
    72. fffff880`035bf061 215c242c        and     dword ptr [rsp+2Ch],ebx
    73. fffff880`035bf065 215c2430        and     dword ptr [rsp+30h],ebx
    74. fffff880`035bf069 488d4c2420      lea     rcx,[rsp+20h]
    75. fffff880`035bf06e 4883c220        add     rdx,20h
    76. fffff880`035bf072 44896c2420      mov     dword ptr [rsp+20h],r13d
    77. fffff880`035bf077 44896c2424      mov     dword ptr [rsp+24h],r13d
    78. fffff880`035bf07c c74424281400    mov     dword ptr [rsp+28h],14h
    79. fffff880`035bf084 ff15ce0f0000    call    qword ptr [kprocesshacker+0x2058 (fffff880`035c0058)]
    80. fffff880`035bf08a 84c0            test    al,al
    81. fffff880`035bf08c 750d            jne     kprocesshacker+0x109b (fffff880`035bf09b)
    82.  
    83. kprocesshacker+0x108e:
    84. fffff880`035bf08e bb610000c0      mov     ebx,0C0000061h
    85. fffff880`035bf093 ff15a7110000    call    qword ptr [kprocesshacker+0x2240 (fffff880`035c0240)]
    86. fffff880`035bf099 eb76            jmp     kprocesshacker+0x1111 (fffff880`035bf111)
    87.  
    88. kprocesshacker+0x109b:
    89. fffff880`035bf09b baa8000000      mov     edx,0A8h
    90. fffff880`035bf0a0 41b84b706843    mov     r8d,4368704Bh
    91. fffff880`035bf0a6 418bcd          mov     ecx,r13d
    92. fffff880`035bf0a9 ff15e1110000    call    qword ptr [kprocesshacker+0x2290 (fffff880`035c0290)]
    93. fffff880`035bf0af 488bf0          mov     rsi,rax
    94. fffff880`035bf0b2 4885c0          test    rax,rax
    95. fffff880`035bf0b5 744f            je      kprocesshacker+0x1106 (fffff880`035bf106)
    96.  
    97. kprocesshacker+0x10b7:
    98. fffff880`035bf0b7 33d2            xor     edx,edx
    99. fffff880`035bf0b9 41b8a8000000    mov     r8d,0A8h
    100. fffff880`035bf0bf 488bc8          mov     rcx,rax
    101. fffff880`035bf0c2 e8e90d0000      call    kprocesshacker+0x1eb0 (fffff880`035bfeb0)
    102. fffff880`035bf0c7 48215e10        and     qword ptr [rsi+10h],rbx
    103. fffff880`035bf0cb 215e18          and     dword ptr [rsi+18h],ebx
    104. fffff880`035bf0ce 44896e08        mov     dword ptr [rsi+8],r13d
    105. fffff880`035bf0d2 488d4e20        lea     rcx,[rsi+20h]
    106. fffff880`035bf0d6 4533c0          xor     r8d,r8d
    107. fffff880`035bf0d9 418bd5          mov     edx,r13d
    108. fffff880`035bf0dc ff157e110000    call    qword ptr [kprocesshacker+0x2260 (fffff880`035c0260)]
    109. fffff880`035bf0e2 48215e70        and     qword ptr [rsi+70h],rbx
    110. fffff880`035bf0e6 215e78          and     dword ptr [rsi+78h],ebx
    111. fffff880`035bf0e9 488d8e80000000  lea     rcx,[rsi+80h]
    112. fffff880`035bf0f0 4533c0          xor     r8d,r8d
    113. fffff880`035bf0f3 418bd5          mov     edx,r13d
    114. fffff880`035bf0f6 44896e68        mov     dword ptr [rsi+68h],r13d
    115. fffff880`035bf0fa ff1560110000    call    qword ptr [kprocesshacker+0x2260 (fffff880`035c0260)]
    116. fffff880`035bf100 48897518        mov     qword ptr [rbp+18h],rsi
    117. fffff880`035bf104 eb0b            jmp     kprocesshacker+0x1111 (fffff880`035bf111)
    118.  
    119. kprocesshacker+0x1106:
    120. fffff880`035bf106 ff1534110000    call    qword ptr [kprocesshacker+0x2240 (fffff880`035c0240)]
    121. fffff880`035bf10c bb9a0000c0      mov     ebx,0C000009Ah
    122.  
    123. kprocesshacker+0x1111:
    124. fffff880`035bf111 4883673800      and     qword ptr [rdi+38h],0
    125. fffff880`035bf116 33d2            xor     edx,edx
    126. fffff880`035bf118 488bcf          mov     rcx,rdi
    127. fffff880`035bf11b 895f30          mov     dword ptr [rdi+30h],ebx
    128. fffff880`035bf11e ff1524110000    call    qword ptr [kprocesshacker+0x2248 (fffff880`035c0248)]
    129. fffff880`035bf124 8bc3            mov     eax,ebx
    130. fffff880`035bf126 488b4c2438      mov     rcx,qword ptr [rsp+38h]
    131. fffff880`035bf12b 4833cc          xor     rcx,rsp
    132. fffff880`035bf12e e81d080000      call    kprocesshacker+0x1950 (fffff880`035bf950)
    133. fffff880`035bf133 488b5c2460      mov     rbx,qword ptr [rsp+60h]
    134. fffff880`035bf138 488b6c2470      mov     rbp,qword ptr [rsp+70h]
    135. fffff880`035bf13d 4883c440        add     rsp,40h
    136. fffff880`035bf141 415d            pop     r13
    137. fffff880`035bf143 5f              pop     rdi
    138. fffff880`035bf144 5e              pop     rsi
    139. fffff880`035bf145 c3              ret
    140.  
    141. 0: kd>
    Аналогично можно посмотреть, и что делает более интересный обработчик "IRP_MJ_DEVICE_CONTROL".
     
  8. herzenstube

    herzenstube New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2024
    Сообщения:
    6
    Удалось заглянуть в драйвер, который весом в 10мб, там дела примерно так-же обстоят как и в самом .exe в плане обфускации.
    А вообще не так уж сильно и хотелось на этот ваш Еверест, говорят на высоте и сердце может остановиться:black_eye:
    А на вас только гавкнуть хочется :blum3: