2017-10-04 21 views
2

IDA Python을 사용하여 이진 지침을 추출합니다. 그러나 불행히도 일부 명령은 완전히 인쇄되지 않습니다. 예를 들어 BCC, BCS, BEQ가 B로 인쇄됩니다.이 문제를 해결할 방법이 있습니까? 여기 내 코드가 있습니다!추출 명령에 대한 IDA python을 사용하여 해체

for function_ea in idautils.Functions(): 
    for ins in idautils.FuncItems(function_ea): 
     if idaapi.isCode(idaapi.getFlags(ins)): 
      print idc.GetMnem(ins) 

답변

1

그런 걸 (I는 ARM 내 데이터베이스에 체크를) 시도

가져 오기 명령 니모닉

개를 - 명령

의 선형 주소를

반환 : 0 - 지정한 위치에 명령어가 없음

참고 :이 함수는 과 똑같은 니모닉을 화면에 표시하지 않을 수 있습니다.

완전한 니모닉 이름을 보려면 외부 dissasembler/plugin 또는 parse disassembly 행을 사용해야합니다.

2

BCC, BCSBEQ 조건부 분기 명령이다, 따라서 동일한 연산 코드가 있습니다.

  • EQ가 동일한
  • CC입니다

자세한 내용은 12를 참조 설정 수행 분명

  • CS되는 휴대 경우 : B 후 모든 조건 코드입니다. IDA 설명서에서

    import idautils 
    
    for function_ea in idautils.Functions(): 
        for ins in idautils.FuncItems(function_ea): 
         if idaapi.isCode(idaapi.getFlags(ins)): 
          cmd = idc.GetDisasm(ins) 
          mnem = cmd.split(' ')[0] 
          print mnem 
    

    :