Exemple #1
0
def test_pck_idb_raw():
    name, tp, flds = idc.ParseType("struct { int a, b; char x[5];};", 0)
    o = a.obj(a=15, b=17,x="hi")
    idaapi.pack_object_to_idb(o, idaapi.cvar.idati, tp, flds, WRITE_AREA, 0)

    ok, obj = idaapi.unpack_object_from_idb(idaapi.cvar.idati, tp, flds, WRITE_AREA, 0)
    if obj.a != 15 and obj.b != 17 and obj != "hi":
        return -2
    return 1
Exemple #2
0
def test_pck_bv_raw():
    name, tp, flds = idc.ParseType("struct { int a; char x[5]; int b;};", 0)
    va,vb,vx = 15,17,"hi"
    o = a.obj(a=va, b=vb,x=vx)
    ok, s = idaapi.pack_object_to_bv(o, idaapi.cvar.idati, tp, flds, WRITE_AREA, 0)
    if not ok:
        return -1
    ok, obj = idaapi.unpack_object_from_idb(idaapi.cvar.idati, tp, flds, WRITE_AREA, 0)
    if obj.a != va and obj.b != vb and obj.x != vx:
        return -2
    return 1
Exemple #3
0
def test_unpack_raw():
    name, tp, flds = idc.ParseType("IMAGE_DOS_HEADER;", 0)
    ok, obj = idaapi.unpack_object_from_idb(idaapi.cvar.idati, tp, flds, 0x400000, 0)
    if obj.e_magic != 23117 and obj.e_cblp != 144:
        return -1

    name, tp, flds = idc.ParseType("struct abc_t { int a, b;};", 0)
    ok, obj = idaapi.unpack_object_from_bv(idaapi.cvar.idati, tp, flds, "\x01\x00\x00\x00\x02\x00\x00\x00", 0)
    if obj.a != 1 and obj.b != 2:
        return -2

    return 1