Python idaapi.add_segm() Examples
The following are 3
code examples of idaapi.add_segm().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
idaapi
, or try the search function
.
Example #1
Source File: ida_loader_drv_vm.py From ida_haru with Apache License 2.0 | 5 votes |
def myAddSeg(startea, endea, base, use32, name, clas): s = idaapi.segment_t() s.start_ea = startea s.end_ea = endea s.sel = idaapi.setup_selector(base) s.bitness = use32 s.align = idaapi.saRelPara s.comb = idaapi.scPub #idaapi.add_segm_ex(s, name, clas, idaapi.ADDSEG_NOSREG|idaapi.ADDSEG_OR_DIE) idaapi.add_segm(base, startea, endea, name, clas)
Example #2
Source File: mclf_loader.py From mclf-ida-loader with GNU General Public License v3.0 | 4 votes |
def load_file(f, neflags, format): f.seek(0) magic = f.read(4); version = struct.unpack("<I", f.read(4))[0]; flags = struct.unpack("<I", f.read(4))[0]; memType = struct.unpack("<I", f.read(4))[0]; serviceType = struct.unpack("<I", f.read(4))[0]; numInstances = struct.unpack("<I", f.read(4))[0]; uuid = struct.unpack("<IIII", f.read(16)); driverId = struct.unpack("<I", f.read(4))[0]; numThreads = struct.unpack("<I", f.read(4))[0]; textVA = struct.unpack("<I", f.read(4))[0]; textLen = struct.unpack("<I", f.read(4))[0]; dataVA = struct.unpack("<I", f.read(4))[0]; dataLen = struct.unpack("<I", f.read(4))[0]; bssLen = struct.unpack("<I", f.read(4))[0]; entry = struct.unpack("<I", f.read(4))[0]; f.seek(MCLF_TEXT_INFO_OFFSET) idaapi.set_processor_type("arm", ida_idp.SETPROC_LOADER) # Set VA for .text and add the segment f.file2base(0, textVA, textVA + textLen, True) idaapi.add_segm(0, textVA, textVA + textLen, ".text", "CODE") # Set VA for .data and add the segment f.file2base(textLen, dataVA, dataVA + dataLen, True) idaapi.add_segm(0, dataVA, dataVA + dataLen, ".data", "DATA") # Add BSS segment after .text and .data idaapi.add_segm(0, dataVA + dataLen, dataVA + dataLen + bssLen, ".bss", "BSS") if entry % 4 == 1: #Thumb address is always +1 to set the T bit idaapi.add_entry(entry-1, entry-1, "_entry", 1) split_sreg_range(entry-1, "T", 0x1, ida_segregs.SR_user) else: idaapi.add_entry(entry, entry, "_entry", 1) split_sreg_range(entry, "T", 0x0, ida_segregs.SR_user) ida_bytes.create_data(tlApiLibEntry, FF_DWORD, 4, ida_idaapi.BADADDR) set_name(tlApiLibEntry,"tlApiLibEntry", SN_CHECK) return 1
Example #3
Source File: mclf_loader.py From tee_research with MIT License | 4 votes |
def load_file(f, neflags, format): f.seek(0) magic = f.read(4); version = struct.unpack("<I", f.read(4))[0]; flags = struct.unpack("<I", f.read(4))[0]; memType = struct.unpack("<I", f.read(4))[0]; serviceType = struct.unpack("<I", f.read(4))[0]; numInstances = struct.unpack("<I", f.read(4))[0]; uuid = struct.unpack("<IIII", f.read(16)); driverId = struct.unpack("<I", f.read(4))[0]; numThreads = struct.unpack("<I", f.read(4))[0]; textVA = struct.unpack("<I", f.read(4))[0]; textLen = struct.unpack("<I", f.read(4))[0]; dataVA = struct.unpack("<I", f.read(4))[0]; dataLen = struct.unpack("<I", f.read(4))[0]; bssLen = struct.unpack("<I", f.read(4))[0]; entry = struct.unpack("<I", f.read(4))[0]; f.seek(MCLF_TEXT_INFO_OFFSET) idaapi.set_processor_type("arm", SETPROC_ALL) # Set VA for .text and add the segment f.file2base(0, textVA, textVA + textLen, True) idaapi.add_segm(0, textVA, textVA + textLen, ".text", "CODE") # Set VA for .data and add the segment f.file2base(textLen, dataVA, dataVA + dataLen, True) idaapi.add_segm(0, dataVA, dataVA + dataLen, ".data", "DATA") # Add BSS segment after .text and .data idaapi.add_segm(0, dataVA + dataLen, dataVA + dataLen + bssLen, ".bss", "BSS") if entry % 4 == 1: #Thumb address is always +1 to set the T bit idaapi.add_entry(entry-1, entry-1, "_entry", 1) SetRegEx(entry-1, "T", 0x1, SR_user); else: idaapi.add_entry(entry, entry, "_entry", 1) SetRegEx(entry, "T", 0x0, SR_user); MakeDword(tlApiLibEntry) MakeName(tlApiLibEntry,"tlApiLibEntry"); return 1