-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathr2g
executable file
·74 lines (69 loc) · 1.94 KB
/
r2g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
ROOT=$(dirname `readlink $0` 2> /dev/null)
if [ -n "${ROOT}" ]; then
cd "${ROOT}"
fi
if [ -z "$R2PIPE_IN" ]; then
echo "This program must be run from r2 using #!pipe r2g"
exit 1
fi
if [ -z "$1" ]; then
echo "Usage: r2ghidra [command]"
echo "Commands:"
echo " r2 .!r2g r2 # import r2ghidra into cmd.pdc"
echo ' dec [addr] !r2g dec `?v $$` # decompile function at given address'
echo " pull # pull changes from ghidra into r2"
echo " push # push comments and functions names from r2 to ghidra"
echo " client [addr] # call the server to request the decompilation"
echo " server [file]"
# exit 1
fi
TESTBIN=${R2_FILE}
FCNADDR=${R2_XOFFSET}
TESTBIN=/bin/ls
case "$1" in
r2)
#echo '"(pdcg,!r2g client `?v $FB`>.a,. .a,rm .a)"'
#echo 'e cmd.pdc=.(pdcg)'
#echo 'e cmd.pdc=$ghidra-dec'
echo '"$pddg*=#!pipe r2g pdd*"'
echo '"$pddg=#!pipe r2g pdd"'
echo 'e cmd.pdd=pddg'
;;
headless)
echo "Headless r2ghidra is WIP"
TESTBIN="$2"
if [ -z "${TESTBIN}" ]; then
echo "Usage: r2g server /path/to/file"
else
rm -rf Test.*
analyzeHeadless . Test.gpr -import ${TESTBIN} \
-postScript GhidraDecompilerR2.java -deleteProject
fi
;;
dec)
TESTBIN=/bin/ls
FCNADDR=$2
echo "FCNADDR=$2"
echo
rm -f decompiled.c
rm -rf Test.*
analyzeHeadless . Test.gpr -import ${TESTBIN} -postScript GhidraDecompiler.java ${FCNADDR} -deleteProject > /dev/null 2>&1
indent decompiled.c
cat decompiled.c
;;
import|pull)
TESTBIN=/bin/ls
FCNADDR=$2
echo "Assuming you have r2 http server on port 9090"
echo "r2 -e http.port=9090 -c'& =h' /bin/ls"
rm -rf Test.*
analyzeHeadless . Test.gpr -import ${TESTBIN} -postScript ghidra2radare.py -deleteProject > /dev/null 2>&1
cat ghidra-output.r2
;;
*)
curl "http://localhost:8002/cmd/$@"
;;
esac
#analyzeHeadless . Test.gpr -import $(TESTBIN) -postScript ghidra/GhidraDecompiler.java $(FCNADDR) -deleteProject
exit 0