rendered paste body// Search and make code..
#include <idc.idc>
static do_brute(ea, str, end)
{
auto count;
count = 0;
while ((ea = FindUnexplored(ea, SEARCH_DOWN)) != BADADDR && ea < end)
{
if (!isCode(ea) && MakeCode(ea))
{
MakeComm(ea, "Rule '" + str + "'");
if (MakeFunction(ea, BADADDR))
{
count++;
}
}
ea = ea + 4;
}
Message("%s: %d funcs\n", str, count);
}
static do_find(ea, str, offset)
{
auto next1, next2;
auto count;
count = 0;
while ((ea = FindBinary(ea, SEARCH_DOWN, str)) != BADADDR)
{
ea = ea + offset;
if (!isCode(ea) && MakeCode(ea))
{
MakeComm(ea, "Rule '" + str + "'");
if (MakeFunction(ea, BADADDR))
{
count++;
}
}
ea = ea + 4;
}
Message("%s: %d funcs\n", str, count);
}
static main()
{
auto ea;
ea = 0;
do_find(ea,"2d e9", -2); // STMFD = xx xx 2D E9
do_find(ea, "00 C4 E5", -3); // STRB = xx 00 C4 E5
do_find(ea, "00 C4 E1", -3); // STRH = xx 00 C4 E1
do_brute(ea, "brute", 0x00245FF8);
}