Projects STRLCPY IDAGolangHelper Commits 8e063fdf
🤬
  • ■ ■ ■ ■ ■ ■
    GO_Utils/Gopclntab.py
    skipped 3 lines
    4 4  import ida_bytes
    5 5  import ida_funcs
    6 6  import ida_search
     7 +import ida_segment
    7 8  import Utils
    8 9   
    9 10  info = idaapi.get_inf_structure()
    skipped 16 lines
    26 27   
    27 28   
    28 29  def findGoPcLn():
    29  - pos = idautils.Functions().next() # Get some valid address in .text segment
    30  - while True:
    31  - end_ea = idc.get_segm_end(pos)
    32  - possible_loc = ida_search.find_binary(pos, end_ea, lookup, 16, idc.SEARCH_DOWN) #header of gopclntab
    33  - if possible_loc == idc.BADADDR:
    34  - break
     30 + possible_loc = ida_search.find_binary(0, idc.BADADDR, lookup, 16, idc.SEARCH_DOWN) #header of gopclntab
     31 + while possible_loc != idc.BADADDR:
    35 32   if check_is_gopclntab(possible_loc):
    36 33   return possible_loc
    37  - pos = possible_loc+1
     34 + else:
     35 + #keep searching till we reach end of binary
     36 + possible_loc = ida_search.find_binary(possible_loc+1, idc.BADADDR, lookup, 16, idc.SEARCH_DOWN)
    38 37   return None
    39 38   
    40 39   
    skipped 18 lines
    59 58   name = idc.get_strlit_contents(base + name_offset)
    60 59   name = Utils.relaxName(name)
    61 60   Utils.rename(func_addr, name)
     61 + 
  • ■ ■ ■ ■ ■ ■
    GO_Utils/__init__.py
    skipped 54 lines
    55 55   Gopclntab.rename(gopcln_tab, self.bt_obj)
    56 56   
    57 57   def getVersionByString(self):
    58  - pos = idautils.Functions().next()
    59  - end_ea = idc.get_segm_end(pos)
     58 + # pos = idautils.Functions().next()
     59 + end_ea = idc.get_segm_end(0)
    60 60  
    61  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 31 30", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     61 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 31 33", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     62 + return 'Go 1.13'
     63 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 31 32", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     64 + return 'Go 1.12'
     65 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 31 31", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     66 + return 'Go 1.11'
     67 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 31 30", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    62 68   return 'Go 1.10'
    63  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 39", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     69 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 39", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    64 70   return 'Go 1.9'
    65  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 38", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     71 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 38", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    66 72   return 'Go 1.8'
    67  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 37", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     73 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 37", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    68 74   return 'Go 1.7'
    69  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 36", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     75 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 36", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    70 76   return 'Go 1.6'
    71  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 35", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     77 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 35", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    72 78   return 'Go 1.5'
    73  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 34", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     79 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 34", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    74 80   return 'Go 1.4'
    75  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 33", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     81 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 33", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    76 82   return 'Go 1.3'
    77  - if ida_search.find_binary(pos, end_ea, "67 6f 31 2e 32", 16, idc.SEARCH_DOWN) != idc.BADADDR:
     83 + if ida_search.find_binary(0, end_ea, "67 6f 31 2e 32", 16, idc.SEARCH_DOWN) != idc.BADADDR:
    78 84   return 'Go 1.2'
    79 85   
    80 86   def createTyper(self, typ):
    skipped 45 lines
Please wait...
Page is in error, reload to recover