Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Защита ОС: вирусы, антивирусы, файрволы. (https://forum.antichat.xyz/forumdisplay.php?f=80)
-   -   Как в radare2 найти путь от функции к функции? (https://forum.antichat.xyz/showthread.php?t=584502)

xverizex 09.01.2025 03:42

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

xverizex 09.01.2025 05:02

Написал скрипт, только он учитывает один путь, но можно разработать такой скрипт, который будет искать по всем вхождениям, но мне сложновато размышлять как это сделать на 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
]
)
)



Время: 18:55