• XSS.stack #1 – первый литературный журнал от юзеров форума

Скрытие потоков

greenzy

(L3) cache
Пользователь
Регистрация
25.10.2010
Сообщения
208
Реакции
1
День добрый форумчане! В Сети нашел код и немного видоизменив, получилось нечто похожее на анти дебаг. Вообщем основная фишка - невозможность показа потоков, строк, путей в запущенном файле. Отладчики на базе ollydbg не видят процесс в списке для аттача. Тестировалось на Win XP SP3. Прошу потестить на других платформах. Скачать
upd. http://sendfile.su/224124
 
а да вроде уже давно существует такой баянчик - если я правильно понял, что если удалить из пеба себя олька не видит - однако будет серьезным подрывом функциональности , например, если такое сделать в контексте explorer.exe...
 
VM WinXP SP2: Works fine ;)

Если кому-то понадобится:
Код:
.data
buffer  dd ?
buffer2 dd ?
buffer3 dd ?

.code
 MOV EAX,DWORD PTR FS:[030h]  ;PEB
 MOV EAX,DWORD PTR [EAX+0Ch];PEB_LDR_DATA
 MOV DWORD PTR [buffer],EAX
 MOV DWORD PTR [buffer2],5
  LEA EAX,DWORD PTR [buffer3]
  PUSH EAX                    ;OldAccessProtection
  PUSH 1                      ;PAGE_NOACCESS
  LEA EAX,DWORD PTR [buffer2]
  PUSH EAX                    ;NumberOfBytesToProtect
  LEA EAX,DWORD PTR [buffer]
  PUSH EAX                    ;BaseAddress
  PUSH -1                    ;ProcessHandle
 CALL ZwProtectVirtualMemory;requires ntdll.dll

 MOV EAX,DWORD PTR FS:[030h]        ;PEB
 MOV EAX,DWORD PTR DS:[EAX+010h];RTL_USER_PROCESS_PARAMETERS
 MOV DWORD PTR [buffer],EAX
 MOV DWORD PTR [buffer2],5
  LEA EAX,DWORD PTR [buffer3]
  PUSH EAX                    ;OldAccessProtection
  PUSH 1                      ;PAGE_NOACCESS
  LEA EAX,DWORD PTR [buffer2]
  PUSH EAX                    ;NumberOfBytesToProtect
  LEA EAX,DWORD PTR [buffer]
  PUSH EAX                    ;BaseAddress
  PUSH -1                    ;ProcessHandle
 CALL ZwProtectVirtualMemory;requires ntdll.dll

  PUSH 989680h;989680h == 10.000.000ms
 CALL Sleep;requires kernel32.dll

  PUSH 0
 CALL ExitProcess;requires kernel32.dll
 
кто нить знает как olly разбирает потоки? через zwQuerySystemInformation или как нибудь по другому?


Добавлено в [time]1291546980[/time]
можно попробовать заблокировать потоки так: PAGE_NOACCESS на SYSTEM_PROCESSES -> Threads, хотя это врятли заработает
 
NtQueryInformationProcess()
NtQuerySystemInformation()
NtSystemDebugControl()
Первая версия Olly юзает первые две, вторая все три.

peb_game.zip срабатывает у обеих версий Olly.
 
peb_game вырубает любой родительский процесс, кроме explorer

В Win XP, 2k вырубает Olly, в Win 7 Olly трассирует эту строку, не завершаясь:

Код:
CPU Disasm
Address   Hex dump          Command                                  Comments
00401C94   .  E8 1FFEFFFF   CALL <JMP.&ntdll.ZwTerminateProcess>    ; Jump to ntdll.ZwTerminateProcess
 
а как вообще идейка - создание доп потоков "вручную" (не через createthread/createremotethread) без уведомления csrss , может ли это как-то ввести олю в ступор...
вроде не водит
http://www.sendspace.com/file/kzjiye
 
да, без нотификаци csrss, ну и стэк потока нужно вручную очищать при его завершении - не ну конечно таким увлекаться не стоит особо, ибо гдето когда-то может вылететь глюк
 
может не по теме, но: прислали руткит, внутри обход хипсов ставший классикой: инжект в пользовательский процесс шелл кода из нулевого кольца посредством apc
скрин
 
полезеный кодес - авось когда-то и пригодиться, вот немного подробней расписано , правда чуть по другому делает , т.к. не нужно перехватывать создание процесса линк
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх