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 and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.