Questão:
O programa não trava no estouro de heap
user2835
2013-09-18 00:02:30 UTC
view on stackexchange narkive permalink

Estou tentando aprender sobre estouros de heap para este desafio de exploração que tenho que resolver.

Resumindo, o programa aloca 3 buffers consecutivos no heap e tenho acesso para escrever o que quiser para todos eles. Mesmo que eu escreva sobre os ponteiros usados ​​pelo gerenciador de heap, que estão localizados no final de cada buffer, nenhuma exceção é gerada quando os buffers são HeapFree () d.

Por que isso acontece? Uma exceção não deveria ser levantada? Como posso verificar isso mais adiante?

Obrigado

você poderia adicionar mais informações à sua pergunta, como plataforma / sistema operacional (percebi que é o Windows, mas qual), compilador usado, código-fonte ...
haha desculpe.Estou executando-o no Windows XP SP3 com DEP desabilitado.Eu não tenho o código-fonte porque deveria explorar o programa. Não tenho ideia de qual compilação foi usada (não posso dizer pelas strings). Estou usando ollydbg para depuração - pode ser essa a razão pela qual nenhuma exceção está sendo lançada? por outro lado, olly também não pega nada.
Diga-nos o programa e o código que você está enviando para ele. Pelo texto, não podemos ver o que você sobrescreveu etc., etc. Resposta curta: "Mais informações necessárias" Apenas dizendo: "http://area51.stackexchange.com/proposals/58554/exploit-development"
Um responda:
Vitaly Osipov
2013-09-18 18:02:03 UTC
view on stackexchange narkive permalink

O AFAIR Windows XP não necessariamente trava na corrupção de heap, você precisa ativar especificamente esse comportamento usando gflags.exe (das ferramentas de depuração)

  gflags / p / full / enable foo. exe  

Pageheap.exe também pode funcionar, consulte http://support.microsoft.com/kb/286470

Em qualquer caso, o ponto de exploração não é travar o processo, mas fazer com que ele execute seu código, então você não precisa se preocupar porque ele não travou.



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...