Jump to content
Sign in to follow this  
gzn

winedbg com --gdb [Resolvido]

Recommended Posts

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

Edited by gzn
resolvido

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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|

Edited by gzn

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...