Ir para conteúdo
Faça parte da equipe! (2024) ×

c Explorando IsDebuggerPresent


DarkShade
 Compartilhar

Posts Recomendados

INTRODUÇÃO

 

Hoje em dia muitos programadores começaram a se preocupar com o quesito proteção contra as práticas da RCE (Reverse Code Engineering), mas muitos deles ainda utilizam de conhecimento simples e limitado, o que em grande maioria, contam com o uso de algo muito comum, do qual irei abordar hoje, falo da API (Application Programming Interface) IsDebuggerPresent.

Os exemplos a seguir serão baseados nas linguagens C e Assembly e no disassembler OllyDbg.

Assuntos a serem abordados:

  1. Usabilidade;
  2. Visão geral no disassembler;
  3. Como contornar com alterações físicas da memória estática do processo;
  4. Como contornar sem alterações físicas da memória estática do processo.

 

1. Usabilidade

IsDebuggerPresent trata-se de uma função sem parâmetros de entrada cujo retorno é do tipo bool onde irá retornar true caso haja a presença de um depurador na aplicação e false caso não haja, exemplo:

É necessário se cadastrar para acessar o conteúdo.

 

2. Visão geral no disassembler

f476064feb.png

1. Função IsDebuggerPresent vista pelo depurador OllyDbg.

 

Como podem ver, ela é uma função bem simples e pequena da qual irá apenas obter o valor de uma flag (BeingDebugged) com o tamanho de 1 byte localizado dentro da estrutura PEB (Process Environment Block) do processo.

 

 

3. Como contornar com alterações físicas da memória estática do processo

 

e0e56b7413.png

2. Função IsDebuggerPresent vista pelo depurador OllyDbg.

 

O que foi feito não foi nada menos do que forçar o retorno false de todas as chamadas para essa API.

Lógica:

É necessário se cadastrar para acessar o conteúdo.

 

 

4. Como contornar sem alterações físicas da memória estática do processo

 

Forçamos assim o valor false diretamente no PEB.

É necessário se cadastrar para acessar o conteúdo.


CONCLUSÃO

 

Apesar das falhas e simplicidade, essa é uma das APIs mais usadas quando o assunto é Anti RCE, porém é claro, o uso de tal hoje em dia é praticamente obsoleto, pois não se é preciso de muito para contorná-la.

Créditos

Nytex

Darkness is a part of my soul

5de5ae31e8.jpg

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.