Проблема Как в radare2 найти путь от функции к функции?

xverizex

Green Team
29.12.2022
28
15
BIT
265
Не могу найти в документации информацию о такой возможности, но может знает кто-нибудь из вас. Возможно придется скрипт написать, но тем не менее, например я нахожусь в такой-то функции, 0x000001 и хочу узнать через какие функции можно дойти до функции 0x00010000. Это интересная задачка, думаю здесь надо от конца искать. Пока жду вашей помощи, попробую на python сделать скрипт и выложу его сюда, правда я в python не профи.
 
Написал скрипт, только он учитывает один путь, но можно разработать такой скрипт, который будет искать по всем вхождениям, но мне сложновато размышлять как это сделать на python.

Python:
#!/usr/bin/env python3
import r2pipe
import sys

if (len (sys.argv) <= 3):
    print ("./script [app_name] [start_address in hex] [end_address in hex]")
    exit (0)

name_app = sys.argv[1]
start_offset = int (sys.argv[2], 16)
end_offset = int (sys.argv[3], 16)

r = r2pipe.open (name_app)
r.cmd ('aaaa')
r.cmd ('s ' + str(end_offset))

while True:
    func = r.cmd ('afo')
    func = func.strip ()
    cur_func = func
    print ('[' + str(func) + ']')
    array = r.cmd ('/r ' + str(func))
    func = array.split (' ')
    if (int(cur_func, 16) == start_offset):
        break
    r.cmd ('s ' + str(func[0]))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!