update to ida 7.6, add builds
This commit is contained in:
46
idasdk76/ldr/intelomf/common.cpp
Normal file
46
idasdk76/ldr/intelomf/common.cpp
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
bool is_intelomf_file(linput_t *li)
|
||||
{
|
||||
uchar magic;
|
||||
lmh h;
|
||||
qlseek(li, 0);
|
||||
if ( qlread(li, &magic, sizeof(magic)) != sizeof(magic)
|
||||
|| qlread(li, &h, sizeof(h)) != sizeof(h) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
int64 fsize = qlsize(li);
|
||||
return magic == INTELOMF_MAGIC_BYTE
|
||||
&& h.tot_length < fsize;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
static int read_pstring(linput_t *li, char *name, int size)
|
||||
{
|
||||
char buf[256];
|
||||
uchar nlen;
|
||||
lread(li, &nlen, sizeof(nlen));
|
||||
lread(li, buf, nlen);
|
||||
buf[nlen] = '\0';
|
||||
qstrncpy(name, buf, size);
|
||||
return nlen;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
static uint32 readdw(const uchar *&ptr, bool wide)
|
||||
{
|
||||
uint32 x;
|
||||
if ( wide )
|
||||
{
|
||||
x = *(uint32 *)ptr;
|
||||
ptr += sizeof(uint32);
|
||||
}
|
||||
else
|
||||
{
|
||||
x = *(uint16 *)ptr;
|
||||
ptr += sizeof(uint16);
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user