Topic created on: May 12, 2011 08:37 CDT by
Nadya 
.
Hi,
I need to memset allocated memory during debugging, I'd like to do this using IDAPython so I'd like to ask whats the function to write byte back to database?
I have some IDC functions which I downloaded and collected from internet. You can port them to IDA python
static memset(ea, v, len)
{
auto vvvv;
vvvv = (v) | (v << 8) | (v << 16) | (v << 24);
while (len && (ea&3))
{
PatchByte(ea++, v);
--len;
}
while (len >= 4)
{
PatchDword(ea, vvvv);
ea = ea + 4;
len = len - 4;
}
while (len--)
{
PatchByte(ea++, v);
}
}
static memcpy(dst, src, len)
{
if ((dst&3) == (src&3))
{
while (len && (dst&3))
{
PatchByte(dst++, Byte(src++));
--len;
}
while (len >= 4)
{
PatchDword(dst, Dword(src));
dst = dst + 4;
src = src + 4;
len = len - 4;
}
while (len--)
{
PatchByte(dst++, Byte(src++));
}
}
else if ((dst&1) == (src&1))
{
while (len && (dst&1))
{
PatchByte(dst++, Byte(src++));
--len;
}
while (len >= 2)
{
PatchWord(dst, Word(src));
dst = dst + 2;
src = src + 2;
len = len - 2;
}
while (len--)
{
PatchByte(dst++, Byte(src++));
}
}
else
{
while (len--)
{
PatchByte(dst++, Byte(src++));
}
}
}
static memcmp(eal, ear, len)
{
while (len && Byte(eal) == Byte(ear))
{
--len;
++eal;
++ear;
}
if (len == 0)
return 0;
else if (Byte(eal) < Byte(ear))
return -1;
else if (Byte(eal) > Byte(ear))
return 1;
else
return 0;
}
|