https://github.com/wrongbaud/hackaday-u
  • I tried Gidra on two firmware images I had: an esp32 and STM32 dev board. Since it&apos;s a binary blob, it did not provide the ELF info on architecture, so I had to fill it out by hand, and there are many ARM options. I chose ARM Cortex, but it didn&apos;t seem to work that well. How do you pick arch from the many ARM options? What would be the right one for this firmware?</li><ul><li>In order to determine the proper CPU architecture, you should start with any applicable datasheets. A lot of the MCUs in those series&#x2019; that were mentioned use Cortex cores, but analysis will fall short if you do not properly define the appropriate memory regions, which can be acquired from the relevant datasheet.&#xA0;</li></ul><li>Why arent functions like main() for c++ automatically set to the right parameters?<ul><li>The decompiler tries not to make too many assumptions for these function prototypes and uses the context that is provided by the instructions in use - this allows things to be more generic and causes fewer failures, but"> https://github.com/wrongbaud/hackaday-u
  • I tried Gidra on two firmware images I had: an esp32 and STM32 dev board. Since it&apos;s a binary blob, it did not provide the ELF info on architecture, so I had to fill it out by hand, and there are many ARM options. I chose ARM Cortex, but it didn&apos;t seem to work that well. How do you pick arch from the many ARM options? What would be the right one for this firmware?</li><ul><li>In order to determine the proper CPU architecture, you should start with any applicable datasheets. A lot of the MCUs in those series&#x2019; that were mentioned use Cortex cores, but analysis will fall short if you do not properly define the appropriate memory regions, which can be acquired from the relevant datasheet.&#xA0;</li></ul><li>Why arent functions like main() for c++ automatically set to the right parameters?<ul><li>The decompiler tries not to make too many assumptions for these function prototypes and uses the context that is provided by the instructions in use - this allows things to be more generic and causes fewer failures, but">
    Close

    Class 2: Q&A

    A course class for Introduction to Reverse Engineering with Ghidra

    Learn how to reverse engineer software using Ghidra! This four-session course will walk you through the basics.

    wrongbaudwrongbaud 07/03/2020 at 15:180 Comments

    Discussions