
O Hyperdbg Debugger é um depurador de código aberto, orientado a comunidade, assistido por hipervisor, modo de usuário e Windows no modo de kernel, com foco no uso de modernas tecnologias de hardware. É um depurador projetado para analisar, prender e reverter.
Você pode seguir o HyperDBG no Twitter ou Mastodon para ser notificado sobre novos lançamentos ou ingressar em qualquer um dos grupos HyperDBG, onde você pode pedir aos desenvolvedores e entusiastas de reversão de código aberto para obter ajuda para configurar e usar o HYPERDBG.
O HyperDBG foi projetado com foco no uso de tecnologias modernas de hardware para fornecer novos recursos ao mundo dos depuradores. Ele opera no topo do Windows, virtualizando um sistema já em execução usando o Intel VT-X e o EPT. Esse depurador pretende não usar nenhum mecanismos de APIs e depuração de software, mas, em vez disso, usa a tabela de página de segunda camada (também conhecida como tabela de página estendida ou EPT) extensivamente para monitorar as execuções de kernel e usuário.
Usando a divisão de TLB e ter recursos como medir a cobertura do código e o monitoramento de todos os moves para/para/da memória por uma função, faz do HyperDBG um depurador exclusivo.
Embora tenha novos recursos, o HyperDBG tenta ser o mais furtivo possível. Ele não usa nenhuma API de depuração para depurar o Windows ou qualquer aplicativo, portanto, os métodos clássicos anti-debutação não o detectam. Além disso, resiste à exploração dos métodos delta do tempo (por exemplo, RDTSC/RDTSCP) para detectar a presença de hipervisores, tornando-o muito mais difícil para aplicações, empacotadores, protetores, malware, mecanismos anti-travessuras etc. para descobrir o depurador.
Você pode baixar os últimos arquivos binários compilados de lançamentos ; Caso contrário, se você deseja criar hiperdbg, deve clonar hiperdbg com o sinalizador --recursive .
git clone --recursive https://github.com/HyperDbg/HyperDbg.git
Visite Build & Install e Start Rick para obter uma explicação detalhada de como começar com o HyperDBG . Você também pode ver as perguntas frequentes para obter mais informações ou, se usou anteriormente outros depuradores nativos como GDB, LLDB ou Windbg, poderá ver o mapa de comando.
O tutorial "revertendo com hyperdbg (dbg3301) do OpenSecurityTraining2 , disponível no site da OST2 ( preferido ) e o YouTube é a maneira recomendada de começar e aprender hyperdbg. Ele o guia através das etapas iniciais do uso do HyperDBG, cobrindo conceitos essenciais, princípios e funcionalidades de depuração, juntamente com exemplos práticos e numerosos métodos de engenharia reversa exclusivos do HyperDBG.
Se você estiver interessado em entender o design e a arquitetura internos de hipervisores e hiperdbg, poderá ler o hipervisor dos tutoriais do zero .
Caso você use um dos componentes do HyperDBG em seu trabalho, considere citar nossos papéis.
1. Hyperdbg: Reinventando a depuração assistida por hardware (CCS'22) [Arxiv]
@inproceedings{karvandi2022hyperdbg,
title={HyperDbg: Reinventing Hardware-Assisted Debugging},
author={Karvandi, Mohammad Sina and Gholamrezaei, MohammadHosein and Khalaj Monfared, Saleh and Meghdadizanjani, Soroush and Abbassi, Behrooz and Amini, Ali and Mortazavi, Reza and Gorgin, Saeid and Rahmati, Dara and Schwarz, Michael},
booktitle={Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},
pages={1709--1723},
year={2022}
}
2. A máquina de reversão: reconstruindo suposições de memória [arxiv]
@article{karvandi2024reversing,
title={The Reversing Machine: Reconstructing Memory Assumptions},
author={Karvandi, Mohammad Sina and Meghdadizanjani, Soroush and Arasteh, Sima and Monfared, Saleh Khalaj and Fallah, Mohammad K and Gorgin, Saeid and Lee, Jeong-A and van der Kouwe, Erik},
journal={arXiv preprint arXiv:2405.00298},
year={2024}
}
Você também pode ler este artigo, pois ele descreve a arquitetura geral, dificuldades técnicas, decisões de design e internos do Depurador Hyperdbg, este artigo sobre nossos esforços sobre a transparência da EXEXIT VM e este artigo sobre perseguir bugs nos hipervisores. Mais artigos, postagens e recursos estão disponíveis no Awesome Repo e, além disso, o repositório de slides fornece slides de apresentação para referência adicional.
Você pode ler sobre o design interno do HyperDBG e seus recursos na documentação. Aqui está um diagrama de nível superior que mostra como o HyperDBG funciona:
Você pode escrever seus scripts para automatizar sua jornada de depuração. O HyperDBG possui um mecanismo de script implementado do lado poderoso, rápido e totalmente do lado do kernel.
Contribuir para o HyperDBG é super apreciado. Fizemos uma lista de tarefas em potencial para as quais você pode estar interessado em contribuir.
Se você deseja contribuir com o HyperDBG, leia o guia de contribuição.
O HyperDBG e todos os seus submódulos e repositórios, a menos que uma licença seja especificada de outra forma, são licenciados pela licença GPLV3 .
As dependências são licenciadas por si.