Ir para conteúdo
  • Cadastre-se
Entre para seguir isso  
gzn

winedbg com --gdb [Resolvido]

Posts Recomendados

Vi nessa pergunta no stackexchange que parece ser possível usar o radare no linux e depurar um exe. Mas pra isso precisamos iniciar o winedbg com argumentos como --gdb e --no-start. Eu tentei isso e também não deu certo aqui.

Se você também esta tendo esse problema (testei aí na sua distro linux) comente nessa issue aqui e se inscreva na lista. Quanto mais gente tiver mais chance terá de ser corrigido.

Colaborar com software livre também é assim. Você nem sempre envia códigos, você envia bugs, sugestões, etc. Não tenham receio, participem.

Obrigado.

:D

Editado por gzn
resolvido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atualizei o wine aqui e funcionou!

1º Inicie o winedbg com alguns parâmetros

gzn@note ~/Downloads % winedbg --gdb --no-start crackme_level1.exe
002b:002c: create process 'Z:\home\gzn\Downloads\crackme_level1.exe'/0x110770 @0x45f050 (344064<1386>)
002b:002c: create thread I @0x45f050
target remote localhost:51853
002b:002c: loads DLL C:\windows\system32\KERNEL32.dll @0x7b410000 (0<0>)
002b:002c: loads DLL C:\windows\system32\ntdll.dll @0x7bc10000 (0<0>)
002b:002c: loads DLL C:\windows\system32\msvcrt.dll @0x7ec00000 (0<0>)
0000002b:0000002c: exception code=0x80000003
Unknown or malformed query Xfer:exec-file:read::0,40
No support for verbose packet File:open:2f70726f632f34342f6d617073,0,1c0
No support for verbose packet File:open:2f70726f632f34342f6d617073,0,1c0

2º Abra outro terminal e inicie o radare

gzn@note ~ % r2 -b 32 -D gdb -d gdb://localhost:51853
= attach 44 0
-- Everything up-to-date.

:)

Captura de tela de 2018-03-12 14-23-53.png

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando a motivação dada pelo workshop do Júlio Neves, vamos ao shell para exercitar!

O winedbg com proxy gdb não nos dá sempre o mesma porta. Se sabemos um tiquinho de shell dá pra resolver isso. Veja abaixo um exemplo simples:

 1 #!/bin/bash
 2 
 3 # a gente salva a saída do windbg num arquivo
 4 log=winedbg.log
 5 winedbg --gdb --no-start $1 2> $log&
 6 
 7 # espera ele escrever target
 8 while ! grep -qF target $log
 9 do
10     sleep 1
11 done
12 
13 # pegamos só o que interessa endereço:porta
14 if awk 'NR==3{print $3}' winedbg.log > $0.remote
15 then
16 
17     # 32 ou 64 bits?
18     arch=64
19     if file $1 |grep -qF PE32
20     then
21         arch=32
22     fi
23 
24     # agora chama o radare
25     r2 -b $arch -d -D gdb gdb://$(<$0.remote)
26 fi

Assim a gente não tem que ficar abrindo outros terminais e também não tem que ficar copiando e colando a saída do winedbg manualmente né... B|

Editado por gzn

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×