Snažím se na to přijít už nějakou dobu a opravdu bych potřeboval pomoc. Nejprve úvod:
Používám nejnovější verzi radare2 z Github na 64bitovém Ubuntu 16.04 a mám následující ukázkový program r2_test.cpp
:
#include <cstdio>int main (int argc, char * argv []) {int num; while (1) {printf ("Zadejte číslo:"); scanf ("% d", &num); printf ("Zadali jste:% d \ n", num); } návrat 0;}
To, co se snažím dosáhnout, je ladění tohoto programu pomocí radare2 a dvou terminálů tak, že spustím radare2 v okně terminálu T1
a mít vstup / výstup programů v okně terminálu T2
. Po nějakém výzkumu jsem zjistil, že by to mělo být pravděpodobně provedeno pomocí nástroje rarun2
.
Takže při mém prvním pokusu jsem si přečetl manuálovou stránku pro rarun2, konkrétně část s přesměrováním IO na jiný terminál a po identifikaci terminálu T2
jako / dev / pts / 17
jsem vytvořil následující soubor test.rr2
:
#! / usr / bin / rarun2stdio = / dev / pts / 17
V terminálu T2
jsem pak spustil sleep 999999
a v terminálu T1
Spustím r2 -R test.rr2 -d a.out
a při provádění příkazu dc
uvnitř radare2 je vstup / výstup programů v terminálu T1
což není to, co jsem chtěl. Zkoušel jsem také varianty, jako je test.rr2
rovný
#! / Usr / bin / rarun2stdin = / dev / pts / 17stdout = / dev / pts / 17
nebo
#! / Usr / bin / rarun2stdio = / dev / pts / 17stdin = / dev / pts / 17stdout = / dev / pts / 17
ale výsledek byl vždy stejný.
Při mém druhém pokusu jsem se po nějakém výzkumu a čtení pokusil spustit radare2 následujícím způsobem: r2 -d rarun2 program = a.out stdio = / dev / pts / 17
. S tímto jsem dosáhl přesměrování IO na terminál T2
, ale proces, který je laděn uvnitř radare2, je nástroj rarun2 a protože moje znalost Linuxu a reverzního inženýrství na něm není tak dobrá, ne Opravdu nevím, jak přistoupit k ladění procesu a.out
.
Takže abych to shrnul, opravdu bych ocenil, kdyby zde někdo mohl sdílet, pokud lze tento druh ladění hotovo s radare2 a pokud je to možné, jak toho dosáhnout? Zkoušel jsem to také s použitím nc
, ale s tímto tématem jsem nijak nepokročil.