gzn Postado Março 5, 2018 em 15:21 Compartilhar Postado Março 5, 2018 em 15:21 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 para o comentário Compartilhar em outros sites More sharing options...
gzn Postado Março 12, 2018 em 17:25 Autor Compartilhar Postado Março 12, 2018 em 17:25 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 para o comentário Compartilhar em outros sites More sharing options...
gzn Postado Março 12, 2018 em 21:23 Autor Compartilhar Postado Março 12, 2018 em 21:23 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 para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.