gzn Posted March 5, 2018 at 03:21 PM Share Posted March 5, 2018 at 03:21 PM 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. Link to comment Share on other sites More sharing options...
gzn Posted March 12, 2018 at 05:25 PM Author Share Posted March 12, 2018 at 05:25 PM 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. Link to comment Share on other sites More sharing options...
gzn Posted March 12, 2018 at 09:23 PM Author Share Posted March 12, 2018 at 09:23 PM 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é... Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.