Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import print_function
- import idc
- from ida_kernwin import jumpto, get_screen_ea
- import ida_bytes
- import ida_idaapi
- import idautils
- import ida_funcs
- import ida_gdl
- import ida_nalt
- info = ida_idaapi.get_inf_structure()
- def find_end_array_passwd(ea_start):
- start = block.start_ea
- end = info.max_ea
- while start <= end:
- # TODO: loop over head until first xref to find
- start = ida_bytes.next_head(start, end)
- def treat_array_passwd_line(ea):
- #TODO
- pass
- def treat_first_ldr(ea, ins):
- array_passwd_start = list(idautils.DataRefsFrom(list(idautils.DataRefsFrom(ea))[0]))[0]
- array_passwd_end = find_end_array_passwd(array_passwd_start)
- for idx in range(array_passwd_start, array_passwd_end, 0x8):
- treat_array_passwd_line(idx)
- for entry in idautils.Entries():
- ith, ord, ea, name = entry
- if name == "getpwuid":
- f = ida_funcs.get_func(ea)
- for ea in idautils.Heads(f.start_ea, f.end_ea):
- ins = idautils.DecodeInstruction(ea)
- if ins.itype == 0x1e:
- treat_first_ldr(ea, ins)
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement