I came into a problem, where I am unable to use a hardware due to a firmware incompatibility. As I have multiple sources and proofs that the hardware is indeed supported on the hardware level, and it is only a software incompatibility, and I gave up all hope on getting help in other forums, I came to the conclusion I have to reverse engineer myself the code and find the if statement that fucks with me. (Edit : It is an NVME disk in an AHCI slot that I am able to access if that is not the boot disk. There is a dxe module that allows it to be bootable, however I have a very strong feeling that there is an if statement that defacto denies it to be booted from nvme for planned obsolescence)

I have an UEFI file that I managed to get with an SPI programmer from the motherboards MX25l12873F chip, and thats where my knowledge stops.

I know that I am looking for a display output of "2103: Detection error on SSD0 (M.2)" and all information related to NVME.

UEFITool 0.25 is able to find 8 instances of nvme and 1 instance of Detection error in separate dxe modules.

However I feel like I am going so deep that there is no forum specific for my kind of project, and I ran into a few problems: I don't know which disassembler, reverse engineer tool to use, and how to use them. I was trying to go with IDA, but when I searched for nvme, I could find nothing. Another post here mentioned that GHidra is better for these kinds of tasks, but I could not figure out how to correctly load the raw binary. This whole environment is new to me, but what should I do to correctly load in the whole image so I could just go and backtrack from the errors or get a control flow graph that I can follow around and maybe modify that if statement?

  • Have you looked into this ghidra plugin? github.com/al3xtjames/ghidra-firmware-utils
    – mumbel
    Oct 26 '20 at 15:27
  • Who thanks! No, I did not, as I only downloaded ghidra today morning (except when I first heard about it when it came out). I have spent around 4 hours trying to figure out IDA, but somehow it did not feel like the right tool. I'm really interested about what others say about it
    – Fawkes
    Oct 27 '20 at 0:09
  • See also efiXplorer for IDA/Hex-Rays: github.com/binarly-io/efiXplorer Oct 27 '20 at 1:37

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.