1
0

Create parse.php

This commit is contained in:
AlexWhiter 2018-11-15 11:27:55 +07:00 committed by GitHub
parent 0325feb26b
commit 7723f38cd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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";
}
}
}
*/
?>
}