Fråga:
Hur hittar jag en symbol i en binär med radare2?
api pota
2017-06-23 22:02:14 UTC
view on stackexchange narkive permalink

Jag vill hitta en adress till en symbol (t.ex. strcpy ) i en binär med radare2. Jag försökte använda kommandot f för att lista alla flaggor som känns igen av r2 men listan är enorm och det är inte bekvämt att hitta adressen till en specifik symbol på det sättet.

Vad är det bästa sättet, om det finns något, att göra det.

Ett svar:
Megabeets
2017-06-23 22:24:35 UTC
view on stackexchange narkive permalink

Kommandot f används för att lista alla flaggor från det valda flaggområdet. Som standard är alla tillgängliga flaggplatser valda. För att välja flaggutrymmet "symboler" och endast lista flaggorna inuti det, använd:

  [0x004049a0] > fs symboler [0x004049a0] > f0x00402a00 261 main0x004049a0 41 entry00x0061e600 8start__00 ._fini0x0061e610 4 obj.optind0x004022b8 26 sym._init0x0061e620 8 obj.program_invocation_name0x0061e600 0 loc .__ bss_start0x0061f368 0 loc._end0x00412960 38 sym._obstack_memory_used0x0061e5f8 8 obj.obstack_alloc_failed_handler0x00412780 17 sym._obstack_begin0x0061e640 8 obj.stderr0x004128f0 106 sym._obstack_free0x004128c0 48 sym._obstack_allocated_p0x0061e618 8 obj.optarg0x004127a0 21 sym._obstack_begin_10x004127c0 245 sym._obstack_newchunk0x0061e608 8 obj.stdout  

Men mitt föredragna sätt att lista alla symboler är att använda kommandot i som faktiskt använder ' rabin2 '( man rabin2 ) för att hämta information om binären. Använd i? för att få hjälp med kommandot.

För att lista alla symboler som körs är . Om du vill "grep" för en specifik symbol använder radares interna grep ~:

  [0x004049a0] > är ~ strcpyvaddr = 0x004023c0 paddr = 0x000023c0 ord = 013 fwd = INGEN sz = 16 bind = GLOBAL typ = FUNC-namn = imp.strcpy  

Och om du bara vill ha adressen, använd:

  [0x004049a0] > är ~ strcpy [1] 0x004023c0  

Mer information om flaggor och flaggplatser finns här
Mer information om symboler finns här



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...