From 7723f38cd3426b371a16a582b6390e3ddbafdc7d Mon Sep 17 00:00:00 2001 From: AlexWhiter <37855663+AlexWhiter@users.noreply.github.com> Date: Thu, 15 Nov 2018 11:27:55 +0700 Subject: [PATCH] Create parse.php --- echoMAP_7x_9x_Symbols/parse.php | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 echoMAP_7x_9x_Symbols/parse.php diff --git a/echoMAP_7x_9x_Symbols/parse.php b/echoMAP_7x_9x_Symbols/parse.php new file mode 100644 index 0000000..7af5e8d --- /dev/null +++ b/echoMAP_7x_9x_Symbols/parse.php @@ -0,0 +1,67 @@ +<? echo "#include <idc.idc>\n"; ?> + +static SetName_(addr, name) { + auto n, i; + + n=name; + if (MakeNameEx(addr, n, SN_NOWARN) == 0) { + i = 1; + while (MakeNameEx(addr, n + "_" + ltoa(i, 10), SN_NOWARN) == 0) i++; + } +} + +static main(void) { + + +<? + $strs = file('Unknown.bin'); + + while (list ($line_num, $line) = each ($strs)) { + $line = trim($line); + + if (preg_match('/^0x([^,]+),(.+),(.+) Code,(.+)$/i', $line, $mathces)) { + list($dummy, $addr, $name, $type, $size) = $mathces; + $addr = hexdec($addr); + + if ($addr < 0xA0000000) { + if ($type == "Thumb") $addr--; + echo("MakeUnknown($addr, $size, DOUNK_EXPAND); "); + + if ($name != '__switch$$') { + if ($type == "Thumb") { + echo "SetReg($addr, \"T\", 1); "; + } else { + echo "SetReg($addr, \"T\", 0); "; + } + + echo "SetName_($addr, \"$name\"); "; + echo "MakeFunction($addr, BADADDR);"; + } + echo "\n"; + } + } + } + +/* + $strs = array_reverse($strs); + while (list ($line_num, $line) = each ($strs)) { + $line = trim($line); + + if (preg_match('/^0x([^,]+),(.+),(.+) Code,(.+)$/i', $line, $mathces)) { + list($dummy, $addr, $name, $type, $comm) = $mathces; + $addr = hexdec($addr); + + if ($addr < 0xA0000000) { + if ($type == "Thumb") { + $addr--; + } + + echo "MakeFunction($addr, BADADDR); "; + echo "SetFunctionCmt($addr, \"$comm\", 0);\n"; + } + } + } +*/ +?> + +}