I am trying to disassemble a raw binary with AARCH64:LE:64:v8A​:default (as per below mentioned specs).

Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Vendor ID: Nvidia Model: 0 Model name: ARMv8 Processor rev 0 (v8l) Compiler - aarch64-gnu-linux GCC compiler

Here are the steps I followed:

  1. After importing the bin file, I ran auto analysis with default options selected.
  2. Selected the code (ctrl+A) then pressed d (for manual disassembly).

This ran for around 3 hrs and the disassembled code that it generated still had many bytes as "??". Also, when I try to generate the code flow, it runs into heap memory issue (currently heap size set to 4GB).

typical output and errors

Is there any step that I am missing out? Or if anyone can help me what else I can try further?

  • (Maybe) not enough memory?
    – raspiduino
    Aug 4, 2022 at 9:35
  • Your step 2 is the wrong approach. you can't just do that and expect great results, not everything is an instruction (even if they can decode as instructions)
    – mumbel
    Aug 4, 2022 at 13:20
  • Are you sure you have the right endianness? 90% of the time when I disassemble code and have unidentified instructions, it's because I used the wrong endianness. Aug 5, 2022 at 16:31
  • Are you sure it’s actually Aarch64?
    – Igor Skochinsky
    Aug 7, 2022 at 19:24
  • @mumbel thanks for replying. Does that mean the bytes that have not been disassembled are not instructions and need to be handled differently? How can that be done?
    – sharma21
    Aug 9, 2022 at 8:51


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.