diff options
Diffstat (limited to 'schulung_tools/mtrace/mtrace.patch')
| -rw-r--r-- | schulung_tools/mtrace/mtrace.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/schulung_tools/mtrace/mtrace.patch b/schulung_tools/mtrace/mtrace.patch new file mode 100644 index 0000000..874388c --- /dev/null +++ b/schulung_tools/mtrace/mtrace.patch @@ -0,0 +1,25 @@ +Patch mtrace to deal with new ASLR issues. +--- a/mtrace 2017-06-15 20:17:14.000000000 +0100 ++++ b/mtrace 2017-12-13 12:09:31.584089486 +0000 +@@ -75,10 +75,10 @@ if ($#ARGV == 0) { + } else { + $prog = "./$binary"; + } +- if (open (LOCS, "env LD_TRACE_LOADED_OBJECTS=1 $prog |")) { ++ if (open (LOCS, "env LD_TRACE_PRELINKING=1 $prog |")) { + while (<LOCS>) { + chop; +- if (/^.*=> (.*) .(0x[0123456789abcdef]*).$/) { ++ if (/^.*=> (.*) .(0x[0123456789abcdef]*),.*/) { + $locs{$1} = $2; + } + } +@@ -111,7 +111,7 @@ sub location { + my $searchaddr; + return $cache{$addr} if (exists $cache{$addr}); + if ($locs{$prog} ne "") { +- $searchaddr = sprintf "%#x", $addr - $locs{$prog}; ++ $searchaddr = sprintf "%#x", hex($addr) - hex($locs{$prog}); + } else { + $searchaddr = $addr; + $prog = $binary; |
