Skip to content

Commit 0d1367a

Browse files
committed
initial commit
1 parent 56dcc91 commit 0d1367a

File tree

3 files changed

+57
-1
lines changed

3 files changed

+57
-1
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
# ctfrun
1+
# ctfrun
2+
3+
# usage
4+
./ctfrun debug|d)|(run|r) BINARY

ctfrun.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
3+
GDB_CMD_FILE="gdb_cmds.gdb"
4+
5+
pkill socat
6+
7+
# Be verbose
8+
set -e
9+
10+
function usage {
11+
echo "Usage: $0 (debug|d)|(run|r) BINARY"
12+
exit 1
13+
}
14+
15+
if [[ $# -ne 2 ]]; then
16+
usage
17+
fi
18+
19+
# Get absolute address
20+
BINARY="$(readlink -f "$2")"
21+
BIN_DIR="$(dirname "${BINARY}")"
22+
BIN_NAME="$(basename "${BINARY}")"
23+
24+
# Change working directory to binary's dir
25+
ORIGINAL_WD="$(pwd)"
26+
cd "${BIN_DIR}"
27+
28+
CMD="socat TCP4-LISTEN:2600,bind=127.0.0.1,fork,reuseaddr EXEC:./${BIN_NAME}"
29+
GDB_CMD_FILE=${ORIGINAL_WD}/${GDB_CMD_FILE}
30+
31+
case "$1" in
32+
d|debug)
33+
gdb -x ${GDB_CMD_FILE} --args $CMD
34+
;;
35+
r|run)
36+
$CMD
37+
;;
38+
*)
39+
echo "Invalid command"
40+
usage
41+
;;
42+
esac

gdb_cmds.gdb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
catch exec
2+
r
3+
4+
# Hit exec catchpoint
5+
6+
# Set breakpoints
7+
8+
break main
9+
10+
# Continue executing (until we hit a breakpoint)
11+
c

0 commit comments

Comments
 (0)