eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: RoKZaR, rmn
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› ScyllaHide Anti-Anti-Debug plugin for Olly1&2 and TitanEngine
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 10 апреля 2014 18:18 · Поправил: 12 мая 2016 11:22 cypherpunk New!
Цитата · Личное сообщение · #1

Актуальная версия: https://ci.appveyor.com/project/mrexodia/scyllahide/build/artifacts

Hi again,

together with Aguila, guy behind Scylla, we made a new Hiding plugin for Olly1&2, TitanEngine and IDA Pro 6.x

----------------------------------------------------------
ScyllaHide is an open-source x64/x86 usermode Anti-Anti-Debug library. It hooks
various functions in usermode to hide debugging. This will stay usermode!
For kernelmode hooks use TitanHide.

ScyllaHide is tested to work with VMProtect, Themida, Armadillo, Execryptor, Obsidium
If you find any protector that still detects debugger, please tell us.

Source code license:
GNU General Public License v3 https://www.gnu.org/licenses/gpl-3.0.en.html

------------------------------------------------------

Debugger Hiding:
- PEB - BeingDebugged, NtGlobalFlag, Heap Flags
- NtSetInformationThread - ThreadHideFromDebugger
- NtQuerySystemInformation - SystemKernelDebuggerInformation, SystemProcessInformation
- NtQueryInformationProcess - ProcessDebugFlags, ProcessDebugObjectHandle, ProcessDebugPort, ProcessBasicInformation, ProcessBreakOnTermination, ProcessHandleTracing
- NtSetInformationProcess - ProcessBreakOnTermination, ProcessHandleTracing
- NtQueryObject - ObjectTypesInformation, ObjectTypeInformation
- NtYieldExecution
- NtSetDebugFilterState
- NtUserBuildHwndList - EnumWindows
- NtUserFindWindowEx - FindWindowA/W, FindWindowExA/W
- NtUserQueryWindow
- NtClose
- NtCreateThreadEx
- BlockInput
- Remove Debug Privileges
- OutputDebugStringA - OutputDebugStringW

Timing Hooks:
- GetTickCount
- GetTickCount64
- GetLocalTime
- GetSystemTime
- NtQuerySystemTimeHook
- NtQueryPerformanceCounter

Special functions:
- Prevent Thread creation - for protectors like Execryptor. Only use if you know what you are doing !
- Malware RUNPE Unpacker - Hooks NtResumeThread and terminates + dumps the process created by malware
- Kill Anti-Attach

Protecting and Stealthing DRx (Hardware Breakpoints):
- NtGetContextThread
- NtSetContextThread
- KiUserExceptionDispatcher (only x86)
- NtContinue (only x86)

Hooks:
- Stealth hooks for 32-bit targets (Tested against Themida/VMProtect)

Plugin specific:
- Update-Check
IDA:
- DLL injection (stealth / normal)
- IDA 64bit plugin
- IDA 32/64bit remote server
Olly1&2:
- Change Olly title
- Resume/Suspend all Threads in Thread window
- DLL injection (stealth / normal)
Olly1:
- Fix PE-Bugs
- Fix FPU Bug
- x64 compatibility mode
- Remove EP-Break
- Break on TLS
- Skip "EP outside code" message
- Advanced CTRL+G
- Skip "compressed code" message
- Ignore bad PE image (WinUPack)
- Skip "Load DLL" message

------------------------------------------------------

Usage standalone (debugger-independent):
InjectorCLI.exe <process name> <HookLibrary.dll path>

For example:
InjectorCLI.exe crackme.exe C:\HookLibrary.dll

------------------------------------------------------

Plugins:
- for TitanEngine: Copy HookLibrary.dll and ScyllaHide.dll to plugins\x86\ or plugins\x64\
(can be combined with TitanHide which does kernelmode hiding)
- for OllyDbg v1.10: Copy HookLibraryx86.dll and ScyllaHideOlly1.dll to your plugins directory
- for OllyDbg v2.01: Copy HookLibraryx86.dll and ScyllaHideOlly2.dll to your plugins directory
- for IDA v6 32bit: Copy HookLibraryx86.dll, NtApiCollection.ini and ScyllaHideIDA.plw to your plugins directory
- for IDA v6 64bit: Copy ScyllaHideIDA.p64, NtApiCollection.ini, ScyllaHideIDASrvx64.exe and HookLibraryx64.dll to your plugins directory
- for x64dbg 32bit: Copy HookLibraryx86.dll, NtApiCollection.ini and ScyllaHideX64DBGPlugin.dp32 to your plugins directory
- for x64dbg 64bit: Copy HookLibraryx64.dll, NtApiCollection.ini and ScyllaHideX64DBGPlugin.dp64 to your plugins directory

ini Note:
The default ini contains settings for this protectors:
- VMProtect x86/x64
- Obsidium x86
- Themida x86
- Armadillo x86

Feel free to contribute settings for other protectors!

IDA Note:
- Start ScyllaHideIDASrvx64.exe to debug 64bit applications
- Start ScyllaHideIDASrvx86.exe to debug remotely 32bit applications

Commandline: ScyllaHideIDASrvxXX.exe <port>

ScyllaHideIDASrv Note:
- Server needs HookLibraryxXX.dll and NtApiCollection.ini

------------------------------------------------------

Special thanks to:

- What for his POISON Assembler source code https://tuts4you.com/download.php?view.2281
- waliedassar for his blog posts http://waleedassar.blogspot.de
- Peter Ferrie for his PDFs http://pferrie.host22.com
- MaRKuS-DJM for OllyAdvanced assembler source code

------------------------------------------------------

ToDo:
- x64 Exception Support

------------------------------------------------------

NOTE: You need to put NtApiCollection.ini in the same directory as ScyllaHide.dll
or the following hooks will not work:
NtUserQueryWindow, NtUserBuildHwndList, NtUserFindWindowEx

Info about NtApiCollection.ini:
Some Nt* WINAPI functions are not exported by a DLL, so it is necessary to get
the function adresses from another source. The other source is the PDB file.
The adresses can be resolved with this tool: https://bitbucket.org/NtQuery/pdb-getprocaddress
It will download the PDB file from the Microsoft server to resolve the missing function adresses.
Binaries: https://bitbucket.org/NtQuery/scyllahide/downloads/NtApiTool.rar

Get ScyllaHide here: https://bitbucket.org/NtQuery/scyllahide/downloads or here http://scyllahide.tk

| Сообщение посчитали полезным: ajax, deniskore, UniSoft, SReg, Gideon Vi, Alinator3500, plutos, alt76, jeep, gloom



Ранг: 315.6 (мудрец)
Статус: Участник
born to be evil

Создано: 25 апреля 2014 23:16 New!
Цитата · Личное сообщение · #2

SReg
все равно, не x64 так-то idastealth есть


Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 26 апреля 2014 13:15 · Поправил: Dr0p New!
Цитата · Личное сообщение · #3

ajax

Для тех целей, что делает сабж пилить ничего не нужно было.

Под 32 да, но там полноценный ядерный монитор. Сабж же мониторит сервисы на уровне кода(патч), что есно является костылём, ибо можно оригинальную копию модуля заюзать или вообще сервисы напрямую юзать, так малварь делает. Да и обработка примитивная, тот же например NtClose не обрабатывает трассировку описателей, попытка обработки при запущенном механизме приведёт к отваливанию сабжа. Такие косяки там повсюду.

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 26 апреля 2014 16:33 · Поправил: cypherpunk New!
Цитата · Личное сообщение · #4

Please be patient. x64 version of IDA plugin coming soon.

I did this in just a few hours and we are still testing it and adding missing features.

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



Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 26 апреля 2014 20:15 · Поправил: Dr0p New!
Цитата · Личное сообщение · #5

На 7.32 даже не заводится, рушится при обращении к нулям.

Перепробовал разные версии олли, на некоторых вообще не загружается(не поддерживаются плаги ?). Вот и недостаток использования плагов

На одной из версий таки завелось - 2.01.

Тест от сайда. Простейший антидебаг - дельта тск не обрабатывается:
Code:
  1.          invoke ZwQueryPerformanceCounter, addr PerfCount1, NULL
  2.          invoke ZwQueryPerformanceCounter, addr PerfCount2, NULL
  3.          mov eax,D[PerfCount2]
  4.          sub eax,D[PerfCount1]
  5.          mov edx,D[PerfCount2 + 4]
  6.          sbb edx,D[PerfCount1 + 4]
  7.          .if (!Zero?) || (Eax >= 10)
  8.                  %BREAK
  9.          .endif


Вызов корректный:
Code:
  1.          invoke ZwQueryObject, 0, ObjectTypesInformation, addr ObInfo, 10000H, NULL

приводит к крэшу:
Code:
  1. 00021A5D                      0FB708          MOVZX ECX,WORD PTR DS:[EAX]
  2. 00021A60                      83F9 16         CMP ECX,16
  3. 00021A63                      75 32           JNE SHORT 00021A97


Отладочные привилегии не скрываются:
Code:
  1.          invoke ZwSetSystemInformation, SystemFlagsInformation, addr Flags, sizeof(ULONG)
  2.          .if !Eax
  3.                  %BREAK
  4.          .endif

- есть множество способов их проверки.

И это простейший тест..

зы: элементарная rdtsc отслеживается только на уровне ядра


Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 26 апреля 2014 22:27 New!
Цитата · Личное сообщение · #6

F_a_u_s_t

Я не наезжаю, мне же всёравно

Надеюсь допилит до нормального состояния.

Нельзя референсить в обработчиках сервиса, палево:



Code:
  1. PROCESS_HANDLE_TRACING_ENABLE struct
  2. Flags       ULONG ?
  3. PROCESS_HANDLE_TRACING_ENABLE ends
  4.  
  5. ProcessHandleTracing       equ 32
  6.  
  7. STACK_FRAME struct
  8. Next         PVOID ?     ; PSTACK_FRAME
  9. Ip             PVOID ?
  10. STACK_FRAME ends
  11. PSTACK_FRAME typedef ptr STACK_FRAME
  12.  
  13. $Msg     CHAR "CALLER: 0x%X", 0
  14.  
  15. XcptDispatch proc uses ebx esi edi ExceptionPointers:PEXCEPTION_POINTERS
  16.          mov ebx,ExceptionPointers
  17.          mov esi,EXCEPTION_POINTERS.ExceptionRecord[ebx]
  18.          assume esi:PEXCEPTION_RECORD
  19.          mov edi,EXCEPTION_POINTERS.ContextRecord[ebx]
  20.          assume edi:PCONTEXT
  21.          cmp [esi].ExceptionFlags,NULL
  22.          jne Chain
  23.          cmp [esi].ExceptionCode,STATUS_INVALID_HANDLE
  24.          jne Chain
  25. ; o Ip ~ KiRaiseUserExceptionDispatcher().
  26.          mov eax,[edi].rEbp
  27.          mov eax,STACK_FRAME.Next[eax]
  28.          invoke DbgPrint, addr $Msg, STACK_FRAME.Ip[Eax]
  29. Load:
  30.          mov eax,EXCEPTION_CONTINUE_EXECUTION
  31.          jmp Exit
  32. Chain:
  33.          xor eax,eax
  34. Exit:
  35.          ret
  36. XcptDispatch endp
  37.  
  38. Local Tracing:PROCESS_HANDLE_TRACING_ENABLE
  39. ; ~~~
  40.          invoke RtlAddVectoredExceptionHandler, 1, addr XcptDispatch
  41.          mov Tracing,0
  42.          invoke ZwSetInformationProcess, NtCurrentProcess, ProcessHandleTracing, addr Tracing, sizeof(PROCESS_HANDLE_TRACING_ENABLE)
  43.          invoke ZwClose, 0BADH

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


Ранг: 12.3 (новичок)
Статус: Участник

Создано: 28 апреля 2014 02:48 New!
Цитата · Личное сообщение · #7

Is there something relevant above? especially with those screenshots? A bug in ScyllaHide ?

Its hard to guess what was written because Google Translator sucks with russian


Статус: Пришелец

Создано: 28 апреля 2014 03:13 New!
Цитата #8

cypherpunk
Dr0p пишет:
         invoke ZwQueryPerformanceCounter, addr PerfCount1, NULL
         invoke ZwQueryPerformanceCounter, addr PerfCount2, NULL
         mov eax,D[PerfCount2]
         sub eax,D[PerfCount1]
         mov edx,D[PerfCount2 + 4]
         sbb edx,D[PerfCount1 + 4]
         .if (!Zero?) || (Eax >= 10)
                 %BREAK ; debugger is present (!!!)
         .endif

It's just anti-debug method.

About this: --> Link <--

The main idea: you can not reference a service handlers, it can be detected.

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 28 апреля 2014 03:25 · Поправил: cypherpunk New!
Цитата · Личное сообщение · #9

thx for the translation !

We will investigate this and add an option probably :P

Добавлено спустя 19 часов 33 минуты
Version 0.7

- IDA 64bit plugin
- IDA 32/64bit remote server
- IDA DLL Injection
- IDA option to start x64 server automatically

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 2 мая 2014 23:51 New!
Цитата · Личное сообщение · #10

Version 0.8

- Olly v1 Plugin: option "Skip EP outside of code message"
- Fix for NtSetInformationProcess -> ProcessHandleTracing
- All plugins: Update-Check
- Timing Hooks: GetTickCount, GetTickCount64, GetLocalTime, GetSystemTime, NtQuerySystemTime, NtQueryPerformanceCounter
- "Remove Debug Privileges" added

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



Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 3 мая 2014 03:19 · Поправил: Dr0p New!
Цитата · Личное сообщение · #11

cypherpunk

> Fix for NtSetInformationProcess -> ProcessHandleTracing

You have disabled an important mechanism

eg --> Link <--

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 3 мая 2014 04:26 · Поправил: cypherpunk New!
Цитата · Личное сообщение · #12

@Dr0p could you explain more?

Also your linked SHDE tool terminates right away. If run under debugger it never runs the DbgPrint and I have no idea what its supposed to tell me. (Havent read the source)

Ok I see it never logs the DbgPrint because of ScyllaHide. But still please explain more what you mean


Ранг: 69.5 (постоянный)
Статус: Участник

Создано: 3 мая 2014 08:36 New!
Цитата · Личное сообщение · #13

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 9 мая 2014 01:34 New!
Цитата · Личное сообщение · #14

Version 0.9

- All plugins use separate scylla_hide.ini now. ini is interchangeable between plugins !
(ini section in ollydbg.ini now deprecated !)
- Load/Save ini profiles in Olly1&2 and IDA plugin
- RunPE malware unpacker
- NtSetInformationProcess Hook in GUI

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 10 мая 2014 21:22 New!
Цитата · Личное сообщение · #15

Version 1.0

- added sprintf %s Olly1 bugfix to "Fix Olly bugs"
- x64dbg 32/64bit plugins https://bitbucket.org/mrexodia/x64_dbg
- fixed alignment bug 64bit

The default ini contains settings for this protectors:
- VMProtect x86/x64
- Obsidium x86
- Themida x86
- Armadillo x86

Themida x64/Winlicense x64 will only work with TitanHide

You can send us profiles you make for other protectors !

| Сообщение посчитали полезным: daFix, Jaa, jeep


Ранг: 4.0 (гость)
Статус: Участник

Создано: 11 мая 2014 10:35 New!
Цитата · Личное сообщение · #16

0.9 1.0 do not work in my odbg2
xpsp3
Code:
  1. EIP 00000000
  2. CPU Stack
  3. 0006FB0C  [7C90DCAA  ; RETURN to ntdll.ZwSetInformationProcess(x,x,x,x)+0C
  4. 0006FB10  [7C94034D  ; /RETURN from ntdll.ZwSetInformationProcess(x,x,x,x) to ntdll.loc_7C93FB30+81D
  5. 0006FB14  /FFFFFFFF  ; |Arg1 = -1
  6. 0006FB18  |00000022  ; |Arg2 = 22
  7. 0006FB1C  |0006FC28  ; |Arg3 = 6FC28
  8. 0006FB20  |00000004  ; \Arg4 = 4
  9. 0006FB24  |7FFDD000
  10. 0006FB28  |7FFDE000

Ранг: 226.5 (наставник)
Статус: Участник

Создано: 11 мая 2014 13:14 New!
Цитата · Личное сообщение · #17

jeep, use clear olly without another hide/anti-anti-debug plugins

Ранг: 4.0 (гость)
Статус: Участник

Создано: 11 мая 2014 14:25 New!
Цитата · Личное сообщение · #18

I forgot to update HookLibraryx86.dll. It works fine now.

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


Ранг: 12.3 (новичок)
Статус: Участник

Создано: 12 мая 2014 17:57 New!
Цитата · Личное сообщение · #19

Searching for real-world targets that use Anti-Attach. If you know any, please tell me !

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 14 мая 2014 01:23 New!
Цитата · Личное сообщение · #20

mr.exodia released x64dbg V1.6ALPHA https://sourceforge.net/projects/x64dbg/files/latest/download
you need that version for ScyllaHide plugin to load

Ранг: 505.2 (!)
Статус: Модератор

Создано: 15 мая 2014 01:29 · Поправил: sendersu New!
Цитата · Личное сообщение · #21

cypherpunk

version 1.0 of your plugin
x32dbg by mr exodia (version: http://prntscr.com/3j9i93)

vmp profile
debugger being detected: http://prntscr.com/3j9g6x
file under test: http://www.sendspace.com/file/cjykkz

2) please also add version info (label) onto your plugin window for the following easy identifcation

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 15 мая 2014 19:12 · Поправил: cypherpunk New!
Цитата · Личное сообщение · #22

@sendersu working for me. for VMP you always need to start at systembp and remove EP breakpoint

http://www.suckmypic.net/9lCR4wt9.png

Maybe will add version info to Options but plugin writes version to Log window so it is already easy to see version. Also About window

Ранг: 505.2 (!)
Статус: Модератор

Создано: 15 мая 2014 22:01 New!
Цитата · Личное сообщение · #23

cypherpunk
thx
will give it a try over weekend
btw, you are doing good progress, keep the step

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


Ранг: 12.3 (новичок)
Статус: Участник

Создано: 16 мая 2014 03:13 New!
Цитата · Личное сообщение · #24

Made a website for ScyllaHide http://scyllahide.tk

Ранг: 226.5 (наставник)
Статус: Участник

Создано: 16 мая 2014 22:44 New!
Цитата · Личное сообщение · #25

Looks good in 1024*768
1400265175-290.jpg

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 17 мая 2014 04:19 New!
Цитата · Личное сообщение · #26

hm looks good to me on 1024x786 http://www.suckmypic.net/0z6ZDoc1.png

but with Menu-Bar enabled its similar to yours. Bug of Bootstrap framework with latest FF. in IE all fine even with smaller viewport sorry


Ранг: 1091.6 (!!!!)
Статус: Участник

Создано: 17 мая 2014 14:48 New!
Цитата · Личное сообщение · #27

TryAga1n пишет:
Looks good in 1024*768


try to change browser

Ранг: 4.0 (гость)
Статус: Участник

Создано: 17 мая 2014 20:11 · Поправил: jeep New!
Цитата · Личное сообщение · #28

Я правильно понимаю, NtSetContextThread и NtGetContextThread не защищают и не прячут DRx и TF ? Obsidium так трассировку сбрасывает, например.

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 17 мая 2014 20:51 New!
Цитата · Личное сообщение · #29

yes HW BPs are protecteded against deletion AND hidden so any BPs YOU set cant be detected by target

Ранг: 12.3 (новичок)
Статус: Участник

Создано: 17 августа 2014 13:21 New!
Цитата · Личное сообщение · #30

Version 1.1
- Added "thanks" to About
- Added kill anti-attach (for x86 only)
- Olly v1 Plugin: Advanced CTRL+G
- Olly v1 Plugin: Skip "compressed code" message
- Olly v1 Plugin: Ignore bad PE image (WinUPack)
- Olly v1 Plugin: Skip "Load DLL" message

Thanks to MaRKuS-DJM for OllyAdvanced assembler source code.

| Сообщение посчитали полезным: Jaa, v00doo, Maximus


Ранг: 505.2 (!)
Статус: Модератор

Создано: 28 августа 2014 00:55 New!
Цитата · Личное сообщение · #31

Version 1.2
- All Plugins: New attach dialog with crosshair/bullseye window finder.
- All Plugins: Tooltips with information (unfinished). Thanks to UniSoft!
- Olly v1 Plugin: Fix for faulty handle bug
- Olly v1 Plugin: Fix for NT symbol path bug added to "Fix Olly Bugs", thanks to redblkjck

https://bitbucket.org/NtQuery/scyllahide/downloads/ScyllaHide_v1.2.rar

new doc https://bitbucket.org/NtQuery/scyllahide/downloads/ScyllaHidev1.2Doc.pdf

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

<< . 1 . 2 . 3 . >>
 eXeL@B —› Софт, инструменты —› ScyllaHide Anti-Anti-Debug plugin for Olly1&2 and TitanEngine

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS