• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

xverizex

Green Team
29.12.2022
28
15
Не могу найти в документации информацию о такой возможности, но может знает кто-нибудь из вас. Возможно придется скрипт написать, но тем не менее, например я нахожусь в такой-то функции, 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]))
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD