Python idaapi.add_segm_ex() Examples
The following are 3
code examples of idaapi.add_segm_ex().
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: wasm_loader.py From WebAssembly with Apache License 2.0 | 5 votes |
def AddWasmSegment(startea, endea, name, cls=None, base=0): s = segment_t() s.start_ea = startea s.end_ea = endea s.sel = setup_selector(base) s.use32 = 0 s.align = saRelByte # saRelDble s.perm = SEGPERM_EXEC | SEGPERM_WRITE | SEGPERM_READ fl = ADDSEG_OR_DIE idaapi.add_segm_ex(s, name, cls, fl) return
Example #3
Source File: evm-loader.py From ida-evm with Apache License 2.0 | 4 votes |
def load_file(li, neflags, format): # Select the PC processor module idaapi.set_processor_type("EVM", SETPROC_ALL|SETPROC_FATAL) # TODO: detect and emulate contract creation code li.seek(0) buf = li.read(li.size()) if not buf: return 0 if buf[0:2] == '0x': print "Detected hex" new_buf = buf[2:].strip().rstrip() buf_set = set() for c in new_buf: buf_set.update(c) hex_set = set(list('0123456789abcdef')) if buf_set <= hex_set: # subset print "Replacing original buffer with hex decoded version" buf = new_buf.decode('hex') # Load all shellcode into different segments start = 0x0 seg = idaapi.segment_t() size = len(buf) end = start + size # Create the segment seg.startEA = start seg.endEA = end seg.bitness = 1 # 32-bit idaapi.add_segm_ex(seg, "evm", "CODE", 0) # TODO: make segments for stack, memory, storage # Copy the bytes idaapi.mem2base(buf, start, end) # check for swarm hash and make it data instead of code swarm_hash_address = buf.find('ebzzr0') if swarm_hash_address != -1: print "Swarm hash detected, making it data" for i in range(swarm_hash_address-1, swarm_hash_address+42): MakeByte(i) ida_bytes.set_cmt(swarm_hash_address-1, "swarm hash", True) # add entry point idaapi.add_entry(start, start, "start", 1) # add comment to beginning of disassembly idaapi.describe(start, True, "EVM bytecode disassembly") # Mark for analysis AutoMark(start, AU_CODE) #setup_enums() return 1