gzn 38 Posted March 5, 2018 Share Posted March 5, 2018 (edited) 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. Edited March 12, 2018 by gzn resolvido Quote Link to post Share on other sites
gzn 38 Posted March 12, 2018 Author Share Posted March 12, 2018 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. 1 Quote Link to post Share on other sites
gzn 38 Posted March 12, 2018 Author Share Posted March 12, 2018 (edited) 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é... Edited March 12, 2018 by gzn Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.