Projects STRLCPY IDAGolangHelper Commits 201612e0
🤬
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■ ■
    GO_Utils/Types.py
    skipped 305 lines
    306 306   struc_id = idc.GetStrucIdByName("type")
    307 307   offset_kind = idc.GetMemberOffset(struc_id, "kind")
    308 308   kind = idc.Byte(addr + offset_kind) & 0x1f
    309  - print "kind2 %d" % kind
    310 309   return self.settings.typer.standardEnums[0][1][kind]
    311 310   
    312 311   
    skipped 77 lines
    390 389   for i in xrange(size):
    391 390   self.processStructField(addr, i*sz)
    392 391   name = self.getName(offset)
    393  - if True:
    394  - print "Name is %s" % name
    395 392   name = Utils.relaxName(name)
    396 393   name = "ut_" + name
    397 394   self.createUserTypeStruct(addr, name, size, size_new_struct)
    skipped 15 lines
    413 410  
    414 411   def createUserTypeStruct(self, addr, name, size, self_size):
    415 412   fields = []
    416  - #print name
    417 413   sid = idc.GetStrucIdByName("structField")
    418 414   sz = idc.GetStrucSize(sid)
    419 415   sid_type = idc.GetStrucIdByName("type")
    skipped 2 lines
    422 418   idc.MakeComm(addr, name)
    423 419   for i in xrange(size):
    424 420   fieldname = self.nameFromOffset(self.getPtr(sid, addr+i*sz,"Name"))
    425  - #print fieldname
    426 421   type_addr = self.getPtr(sid, addr+i*sz, "typ")
    427 422   typename = self.getType(type_addr)
    428 423   size = self.getPtr(sid_type, type_addr, "size")
    429  - #print typename
    430 424   if fieldname == "" or fieldname is None:
    431 425   fieldname = "unused_"+Utils.id_generator()
    432 426   offset = self.getStructFieldOffset(sid, addr+i*sz)
    433 427   if offset != curr_offset:
    434  - #print name
    435  - #print fieldname
    436 428   print "Offset missmatch.Got %d expected %d. Adding padding..." % (curr_offset, offset)
    437 429   if offset < curr_offset:
    438 430   raise("Too many bytes already")
    skipped 28 lines
    467 459   fields.append(("padding", "char"))
    468 460   curr_offset += 1
    469 461   new_type = [(name, fields)]
    470  - #print new_type
    471 462   self.settings.structCreator.createTypes(new_type)
    472  - #print fields
    473 463   new_type_sid = idc.GetStrucIdByName(name)
    474 464   sz = idc.GetStrucSize(new_type_sid)
    475 465   if sz != self_size:
    skipped 59 lines
    535 525   self.robase = base_type
    536 526   
    537 527   def next(self):
    538  - #print "next type from typelink"
    539 528   if self.pos >= self.end:
    540 529   raise StopIteration
    541 530   value = idc.Dword(self.pos)
    skipped 12 lines
    554 543   return out
    555 544   
    556 545   def getName(self, offset):
    557  - #print "GetName: %x" % offset
    558 546   sid = idc.GetStrucIdByName("type")
    559 547   name_off = self.getDword(sid, offset, "string")
    560 548   string_addr = self.getOffset(name_off) + 3
    skipped 60 lines
    621 609   
    622 610   def parseFuncType(self, offset):
    623 611   return
    624  - # print "func off %x" % offset
    625 612   sid = idc.GetStrucIdByName("funcType")
    626 613   in_size = idc.Word(offset + idc.GetMemberOffset(sid, "incount"))
    627 614   out_size = idc.Word(offset + idc.GetMemberOffset(sid, "outcount"))
    skipped 13 lines
Please wait...
Page is in error, reload to recover