Skip to content
Michael Messner edited this page Aug 20, 2024 · 90 revisions

Welcome to the wiki of EMBA


tl;dr

EMBA is an incredibly versatile and easy-to-use firmware analyzer. Clone it, install it with the installer script: sudo ./installer.sh -d and then run it with sudo ./emba -f ../firmware.bin -l ../log_dir -p ./scan-profiles/default-scan.emba. After the scan has gone through, just look at the ../log_dir/html_report/index.html in the browser. Have fun.


To find out more about the individual functions of EMBA, installation instructions or user instructions, use the wiki menu on this page. If you still have questions, then open an issue with the label Question.

Motivation

There is a wide range of software that can analyze firmware, with a focus on Linux-based firmware, but none of them have lived up to our expectations. That's why we combined the best open-source tools from our community here into one simple application and built a framework for it so that EMBA can give you the best result in the end. The main focus of EMBA is to be easy to use, easy to customize and still be able to identify all possible weak points. In the beginning of this project, we decided, that EMBA should be able to run with as few parameters as possible. Using EMBA should improve your workflow and not take hours to learn how to use. During the development, we added many new features without compromising the simplicity. This is also why we use bash and have no plans to rewrite EMBA in another language. As a pentester, you use your terminal on a daily basis and normally you should find it very easy to adapt and extend EMBA to your needs.

Publications, Talks and Live demos

  • Leveraging Automated Firmware Analysis with the Open-Source Firmware Analyzer EMBA - Medium.com [EN]
  • EMBA - Black Hat Arsenal - Asia 2024 (April 2024 - Virtual) Schedule [EN]
  • EMBA - BSides Las Vegas - USA 2023 (August 2023) Schedule/Recording [EN]
  • EMBA - Black Hat Arsenal - USA 2023 (August 2023) Schedule [EN]
  • EMBA - DEF CON 31 - ICS Village - USA 2023 (August 2023) Schedule [EN]
  • EMBA - Black Hat Arsenal - Europe 2022 (December 2022) Schedule/Slides/Recording [EN]
  • EMBA - DEF CON 30 Demo Labs - USA 2022 (August 2022) Schedule/Slides [EN]
  • EMBA - Black Hat Arsenal - USA 2022 (August 2022) Schedule/Slides/Recording [EN]
  • EMBA - TROOPERS22 (June 2022) Schedule/Slides/Recording [EN]
  • EMBA - Black Hat Arsenal - Asia 2022 (May 2022 - Virtual) Schedule/Slides/Recording [EN]
  • EMBA - Security Forum 2022 (May 2022) - Schedule [DE]
  • EMBA - CCC - rC3 now/here 2021 (December 2021 - Virtual) Fahrplan/Slides [DE/EN]
  • EMBArk - AMOS project presentation (July 2021) - Youtube [EN]
  • EMBA - Article on medium.com (March 2021) - Medium.com [EN]

Black Hat sessions

Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal

[Languages: DE = German / EN = English]

Disclaimer

We try our best to keep this documentation up to date. However, we're only human (although the whole project is written in Bash) and sometimes we overlook something. If you're missing something in the wiki, just open an issue and we'll add it if it fits. You are also welcome to add missing content directly in the newly opened issue; we are always happy to receive external contributions to EMBA. The images in particular can deviate from the actual output of EMBA, as we are constantly optimizing it and do not want to adapt it every time. In any case, they are enough to get the idea across.