Submitted:
05 January 2026
Posted:
06 January 2026
You are already at the latest version
Abstract

Keywords:
1. Introduction
2. Literature Review
2.1. White Box Testing
2.2. Reverse Engineering and Firmware Analysis
2.3. Static and Dynamic Analysis
2.4. Emulation and Code Analysis
2.5. The Role of EMBA in Firmware Security Analysis
3. Materials and Methods
3.1. Firmware Selection and Size Categories
3.2. Experimental Environments
3.3. EMBA Configuration and Test Execution
3.3.1. EMBA Versions and Execution Order
3.3.2. Scan Profile Configuration
3.3.3. System and Platform Setup
3.3.4. System Limitations
4. Results
4.1. EMBA Version 1.4.1 and 1.4.2 Comparison
4.2. EMBA Version 1.4.2 and 1.5.0 Comparison
4.3. EMBA Version 1.5.0 and Azure VM Comparison
4.4. EMBA Version 1.4.1 with Different Firmware Samples
4.5. Module-Level Performance Analysis of EMBA v1.5.0 on PC2 and Azure VM
5. Discussion
5.1. Platform Level Implications of EMBA Deployment
5.2. Future Research
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| IOT | Internet of Things |
| IIOT | Industrial Internet of Things |
| VM | Virtual Machine |
| PC | Personal Computer |
| SAST | Static Application Security Testing |
| SBOM | Software Bill of Materials |
| TCO | Total Cost of Ownership |
| SSH | Secure Shell |
| AMZ | Amazon Web Service |
| GCP | Google Cloud Platform |
| CGI | Common Gateway Interface |
Appendix A
| WR940 | T8705 | R8000 | ||||
|---|---|---|---|---|---|---|
| Module Name | PC2 Duration | Azure VM Duration | PC2 Duration | Azure VM Duration | PC2 Duration | Azure VM Duration |
| P02_firmware_bin_file_check | 0:00:04 | 0:00:05 | 0:00:12 | 0:00:21 | 0:00:07 | 0:00:07 |
| P40_DJI_extractor | 0:00:00 | 0:00:00 | 0:00:00 | 0:00:00 | 0:00:00 | 0:00:00 |
| P55_unblob_extractor | 0:00:22 | 0:00:18 | 0:01:59 | 0:01:58 | 0:01:08 | 0:00:37 |
| P60_deep_extractor | 0:00:00 | 0:00:00 | 1:24:15 | 1:31:44 | 0:00:00 | 0:00:00 |
| P61_binwalk_extractor | 0:00:00 | 0:00:01 | 0:00:00 | 0:04:05 | 0:00:00 | 0:00:00 |
| P65_package_extractor | 0:00:01 | 0:00:00 | 0:00:00 | 0:00:00 | 0:00:01 | 0:00:01 |
| P99_prepare_analyzer | 0:00:28 | 0:00:35 | 0:05:01 | 0:04:45 | 0:01:59 | 0:01:02 |
| S26_kernel_vuln_verifier | 0:00:51 | 0:00:36 | 0:08:29 | 0:17:25 | 0:03:17 | 0:02:30 |
| S24_kernel_bin_identifier | 0:00:48 | 0:00:32 | 0:08:26 | 0:17:22 | 0:03:13 | 0:02:27 |
| S12_binary_protection | 0:09:44 | 0:09:55 | 0:08:24 | 0:13:09 | 0:47:31 | 0:23:03 |
| S09_firmware_base_version_check | 0:48:45 | 0:57:18 | 10:42:58 | 21:15:18 | 3:37:27 | 2:02:43 |
| S02_UEFI_FwHunt | 0:00:01 | 0:00:00 | 1:01:41 | 1:46:37 | 0:00:01 | 0:00:00 |
| S03_firmware_bin_base_analyzer | 0:00:21 | 0:00:16 | 10:53:07 | 7:02:49 | 0:01:18 | 0:00:39 |
| S04_windows_basic_analysis | 0:00:01 | 0:00:02 | 0:00:03 | 0:00:01 | 0:00:09 | 0:00:13 |
| S05_firmware_details | 0:00:07 | 0:00:08 | 0:00:58 | 0:00:39 | 0:00:07 | 0:00:09 |
| S06_distribution_identification | 0:00:04 | 0:00:03 | 0:00:30 | 0:00:16 | 0:00:05 | 0:00:05 |
| S07_bootloader_check | 0:00:11 | 0:00:06 | 0:00:43 | 0:21:18 | 0:00:16 | 0:00:11 |
| S08_package_mgmt_extractor | 0:00:08 | 0:00:03 | 0:07:14 | 0:11:58 | 0:00:09 | 0:00:04 |
| S10_binaries_basic_check | 0:02:03 | 0:02:16 | 0:01:40 | 0:00:54 | 0:09:41 | 0:06:50 |
| S13_weak_func_check | 0:12:19 | 0:13:35 | 0:08:50 | 0:11:17 | 2:09:45 | 1:06:04 |
| S14_weak_func_radare_check | 0:29:48 | 0:32:54 | 0:36:08 | 0:09:48 | 2:46:59 | 1:20:15 |
| S15_radare_decompile_checks | 1:42:50 | 2:04:56 | 2:38:05 | 1:20:17 | 16:29:21 | 15:11:15 |
| S16_ghidra_decompile_checks | n/a | n/a | n/a | n/a | n/a | n/a |
| S17_cwe_checker | 0:01:25 | 1:29:16 | 0:00:27 | 1:25:56 | 0:10:31 | 6:47:38 |
| S18_capa_checker | 0:02:18 | 0:03:46 | 0:21:02 | 1:03:31 | 0:11:55 | 0:12:29 |
| S19_apk_check | 0:00:02 | 0:00:03 | 0:00:04 | 0:00:05 | 0:00:01 | 0:00:03 |
| S20_shell_check | 0:00:43 | 0:01:01 | 0:31:29 | 0:21:06 | 0:02:13 | 0:02:28 |
| S21_python_check | 0:00:02 | 0:00:03 | 0:13:37 | 0:07:43 | 0:00:02 | 0:00:04 |
| S22_php_check | 0:00:38 | 0:00:58 | 0:02:25 | 0:01:33 | 0:00:41 | 0:01:01 |
| S23_lua_check | 0:00:21 | 0:00:22 | 0:17:20 | 0:07:47 | 0:01:10 | 0:00:49 |
| S25_kernel_check | 0:02:26 | 0:04:16 | 0:03:04 | 0:01:53 | 0:03:10 | 0:03:54 |
| S27_perl_check | 0:00:04 | 0:00:04 | 0:00:06 | 0:00:05 | 0:00:02 | 0:00:05 |
| S35_http_file_check | 0:04:24 | 0:06:56 | 0:06:04 | 0:05:51 | 0:06:19 | 0:10:45 |
| S36_lighttpd | 0:00:04 | 0:00:09 | 0:00:08 | 0:00:10 | 0:00:03 | 0:00:09 |
| S40_weak_perm_check | 0:00:09 | 0:00:18 | 0:00:18 | 0:00:14 | 0:00:04 | 0:00:10 |
| S45_pass_file_check | 0:00:07 | 0:00:16 | 0:00:57 | 0:01:22 | 0:00:14 | 0:00:30 |
| S50_authentication_check | 0:00:26 | 0:00:49 | 0:01:07 | 0:00:57 | 0:00:12 | 0:00:22 |
| S55_history_file_check | 0:00:03 | 0:00:06 | 0:00:11 | 0:00:06 | 0:00:03 | 0:00:04 |
| S60_cert_file_check | 0:00:03 | 0:00:05 | 0:01:08 | 0:01:03 | 0:07:36 | 0:00:19 |
| S65_config_file_check | 0:00:14 | 0:00:25 | 0:01:31 | 0:01:46 | 0:00:37 | 0:00:31 |
| S75_network_check | 0:00:05 | 0:00:08 | 0:00:19 | 0:00:15 | 0:00:07 | 0:00:06 |
| S80_cronjob_check | 0:00:02 | 0:00:04 | 0:00:13 | 0:00:10 | 0:00:03 | 0:00:04 |
| S85_ssh_check | 0:00:05 | 0:00:08 | 0:00:22 | 0:00:15 | 0:00:09 | 0:00:07 |
| S90_mail_check | 0:00:02 | 0:00:02 | 0:00:05 | 0:00:04 | 0:00:03 | 0:00:02 |
| S95_interesting_files_check | 0:00:13 | 0:00:24 | 0:00:31 | 0:00:28 | 0:00:18 | 0:00:12 |
| S99_grepit | 0:55:15 | 1:06:06 | 11:03:09 | 21:23:05 | 5:02:12 | 3:49:06 |
| S100_command_inj_check | 0:00:02 | 0:00:06 | 0:00:07 | 0:00:09 | 0:03:06 | 0:02:15 |
| S106_deep_key_search | 0:00:29 | 0:00:44 | 0:02:11 | 0:04:21 | 0:00:39 | 0:00:53 |
| S107_deep_password_search | 0:00:59 | 0:00:49 | 0:18:12 | 0:12:16 | 0:02:46 | 0:01:12 |
| S108_stacs_password_search | 0:00:22 | 0:00:30 | 0:07:19 | 0:09:21 | 0:01:09 | 0:01:00 |
| S109_jtr_local_pw_cracking | 1:07:24 | 1:10:03 | 0:11:41 | 0:10:01 | 0:00:24 | 0:00:07 |
| S110_yara_check | 0:02:56 | 0:03:28 | 0:55:44 | 1:36:16 | 0:25:33 | 0:28:57 |
| S115_usermode_emulator | 0:06:53 | 0:08:05 | 0:00:04 | 0:00:05 | 0:31:47 | 0:29:38 |
| S116_qemu_version_detection | 0:05:12 | 0:09:20 | 0:00:02 | 0:00:02 | 0:05:14 | 0:19:33 |
| S118_busybox_verifier | 0:19:30 | 0:03:24 | 9:04:40 | 18:58:56 | 1:31:57 | 0:26:35 |
| L10_system_emulation | 1:12:02 | 7:16:48 | 0:00:00 | 0:00:01 | 0:36:37 | 0:41:56 |
| L15_emulated_checks_nmap | 0:01:07 | 0:02:03 | n/a | n/a | 0:05:11 | 0:03:13 |
| L20_snmp_checks | 0:00:01 | 0:00:00 | n/a | n/a | 0:00:01 | 0:00:01 |
| L22_upnp_hnap_checks | 0:00:04 | 0:00:06 | n/a | n/a | 0:00:01 | 0:00:04 |
| L23_vnc_checks | 0:00:00 | 0:00:00 | n/a | n/a | 0:00:00 | 0:00:01 |
| L25_web_checks | 0:00:01 | 0:31:37 | n/a | n/a | 0:00:02 | 0:00:01 |
| L35_metasploit_check | 0:01:24 | 0:19:42 | n/a | n/a | 0:14:15 | 0:19:08 |
| L99_cleanup | 0:00:02 | 0:00:01 | n/a | n/a | 0:00:01 | 0:00:01 |
| F02_toolchain | 0:00:03 | 0:00:02 | 0:00:04 | 0:00:03 | 0:00:04 | 0:00:05 |
| F05_qs_resolver | 0:00:14 | 0:00:47 | 0:00:12 | 0:00:27 | 0:00:44 | 0:00:52 |
| F10_license_summary | 0:00:05 | 0:00:05 | 0:00:05 | 0:00:15 | 0:00:13 | 0:00:12 |
| F15_cyclonedx_sbom | 0:00:04 | 0:00:14 | 0:00:05 | 0:00:07 | 0:00:05 | 0:00:06 |
| F20_vul_aggregator | 0:30:49 | 0:30:23 | 0:29:47 | 0:35:01 | 0:35:57 | 0:32:00 |
| F50_base_aggregator | 0:00:16 | 0:00:19 | 0:00:16 | 0:00:19 | 0:00:27 | 0:00:29 |
| Overall Scan Time | 3:30:56 | 10:48:48 | 14:20:35 | 25:45:17 | 18:09:40 | 16:53:55 |
| Total Module Time | 8:08:06 | 17:18:00 | 52:04:49 | 81:25:06 | 36:16:32 | 34:57:32 |
References
- Vailshery, L.S. Internet of Things (IoT) – Statistics & Facts. Statista 2024. Available online: https://www.statista.com/topics/2637/internet-of-things/#topicOverview (accessed on 4 July 2024).
- EMBA. People in EMBA Organization. GitHub 2025. Available online: https://github.com/orgs/e-m-b-a/people (accessed on 19 January 2025).
- CyberNoz. EMBA: Open-Source Security Analyzer for Embedded Devices. CyberNoz 2023. Available online: https://cybernoz.com/emba-open-source-security-analyzer-for-embedded-devices/ (accessed on 11 October 2024).
- EMBA. SBOM Environment. GitHub Wiki 2025. Available online: https://github.com/e-m-b-a/emba/wiki/SBOM-environment (accessed on 11 October 2024).
- EMBA. AI-Supported Firmware Analysis. GitHub Wiki 2025. Available online: https://github.com/e-m-b-a/emba/wiki/AI-supported-firmware-analysis (accessed on 11 October 2024).
- Eckmann, P. EMBA: An Open-Source Firmware Analysis Tool. Medium 2021. Available online: https://p4cx.medium.com/emba-b370ce503602 (accessed on 21 October 2024).
- EMBA. Feature Overview. GitHub Wiki 2024. Available online: https://github.com/e-m-b-a/emba/wiki/Feature-overview (accessed on 11 October 2024).
- EMBA. EMBA Releases. GitHub 2025. Available online: https://github.com/e-m-b-a/emba/releases/ (accessed on 11 October 2024).
- EMBA. EMBArk: Graphical Interface for Firmware Analysis. GitHub 2025. Available online: https://github.com/e-m-b-a/embark (accessed on 19 October 2024).
- Conti, M.; et al. Internet of Things Security and Forensics: Challenges and Opportunities. arXiv 2018. [CrossRef]
- TechTarget. White-Box Testing Definition. TechTarget 2025. Available online: https://www.techtarget.com/searchsoftwarequality/definition/white-box (accessed on 11 November 2024).
- Verma, A.; Khatana, A.; Chaudhary, S. A Comparative Study of Black Box Testing and White Box Testing. Int. J. Computer Sciences and Engineering 2017, 5, 301–304.
- Shwartz, O.; et al. Reverse Engineering IoT Devices: Effective Techniques and Methods. IEEE Internet Things J. 2018, 5, 4965–4976. [CrossRef]
- Tamilkodi, R.; et al. Exploring IoT Device Vulnerabilities Through Malware Analysis and Reverse Engineering. In Proceedings of the 5th International Conference on Data Intelligence and Cognitive Informatics (ICDICI), IEEE, 2024; pp. 1–10.
- Votipka, D.; et al. An Observational Investigation of Reverse Engineers’ Processes. arXiv 2019. [CrossRef]
- EMBA. The EMBA Book—Chapter 2: Analysis Core. GitHub Wiki 2025. Available online: https://github.com/e-m-b-a/emba/wiki/The-EMBA-book-%E2%80%90-Chapter-2%3A-Analysis-Core (accessed on 22 October 2024).
- Anonymous. Leveraging Automated Firmware Analysis with the Open-Source Firmware Analyzer EMBA. Medium 2024. Available online: https://medium.com/@iugkhgf/leveraging-automated-firmware-analysis-with-the-open-source-firmware-analyzer-emba-46d30d587a87 (accessed on 19 November 2024).
- Aggarwal, A.; Jalote, P. Integrating Static and Dynamic Analysis for Detecting Vulnerabilities. In Proceedings of the 30th Annual International Computer Software and Applications Conference (COMPSAC’06), IEEE, 2006; Vol. 1.
- Ferrara, P.; et al. Static Analysis for Discovering IoT Vulnerabilities. Softw. Tools Technol. Transfer 2021, 23, 71–88.
- EMBA. The EMBA Book—Chapter 3: Analysis Core. GitHub Wiki 2025. Available online: https://github.com/e-m-b-a/emba/wiki/The-EMBA-book-%E2%80%90-Chapter-3%3A-Analysis-Core (accessed on 29 November 2024).
- EMBA. The EMBA Book—Chapter 4: System Emulation. GitHub Wiki 2025. Available online: https://github.com/e-m-b-a/emba/wiki/The-EMBA-book-%E2%80%90-Chapter-4%3A-System-Emulation (accessed on 8 November 2024).
- Goseva-Popstojanova, K.; Perhinschi, A. On the Capability of Static Code Analysis to Detect Security Vulnerabilities. Inf. Softw. Technol. 2015, 68, 18–33.
- Zhou, W.; Shen, S.; Liu, P. IoT Firmware Emulation and Its Security Application in Fuzzing: A Critical Revisit. Future Internet 2025, 17, 19. [CrossRef]
- Komolafe, O.; et al. Reverse Engineering: Techniques, Applications, Challenges, Opportunities. Int. Res. J. Modernization Eng. Technol. Sci. 2024, 6.
- EMBA. EMBA GitHub Main Repository. GitHub 2024. Available online: https://github.com/e-m-b-a (accessed on 8 November 2024).
- Müller, T. Internet of Vulnerable Things. Technical Report 2022. Available online: https://raw.githubusercontent.com/otsmr/internet-of-vulnerable-things/main/Internet_of_Vulnerable_Things.pdf (accessed on 18 November 2024).
- De Ruck, D.; et al. Linux-Based IoT Benchmark Generator for Firmware Security Analysis Tools. In Proceedings of the 18th International Conference on Availability, Reliability and Security (ARES ’23), 2023; Article No. 19, pp. 1–10. [CrossRef]
- Al-Said Ahmad, A.; Andras, P. Scalability Analysis Comparisons of Cloud-Based Software Services. J. Cloud Comput. 2019, 8, 10.
- Bouras, C.; et al. Techno-Economic Analysis of Cloud Computing Supported by 5G: A Cloud vs. On-Premise Comparison. In Advances on Broadband Wireless Computing, Communication and Applications; Springer: Cham, Switzerland, 2023; Vol. 570, pp. 1–12.
- Fisher, C. Cloud versus Standalone Server Computing. Am. J. Ind. Bus. Manag. 2018, 8, 1991–2006.
- EMBA. Default Scan Profile. GitHub 2024. Available online: https://github.com/e-m-b-a/emba/blob/master/scan-profiles/default-scan.emba (accessed on 1 November 2024).
- EMBA. Installation Guide. GitHub Wiki 2024. Available online: https://github.com/e-m-b-a/emba/wiki/Installation (accessed on 8 November 2024).


| Firmware Name | Firmware Size | PC1-EMBA 1.4.1 4 Cores 32 GB RAM |
PC2-EMBA 1.4.2 8 Cores 32 GB RAM |
|---|---|---|---|
| T8516.bin | 7.04 MB | 3 days, 13 hrs., 1 min., 36 sec. | n/a |
| T8705.bin | 25.5 MB | 2 days, 20 hrs., 22 min., 12 sec. | 1 day, 11 hrs., 11 min., 31 sec. |
| S3008.bin | 40.8 MB | 13 hrs., 20 min., 41 sec. | n/a |
| Firmware Name | Firmware Size | PC2-EMBA 1.4.2 8 Cores with 32 GB RAM |
PC2-EMBA 1.5.0 8 Cores with 32 GB RAM |
|---|---|---|---|
| WR940.bin | 3.87 MB | 17 min., 47 sec. | 3 hrs., 30 min., 56 sec. |
| T8705.bin | 25.5 MB | 1 day, 11 hrs., 11 min., 31 sec. | 14 hrs., 20 min., 35 sec. |
| R8000.chk | 30.2 MB | 20 hrs., 32 min., 4 sec. | 18 hrs., 9 min., 40 sec. |
| Firmware Name | Firmware Size | PC2 - 8 Cores - 32 GB RAM | AZURE VM - 8 Cores - 32 GB RAM | ||
|---|---|---|---|---|---|
| Run Time | # of Findings | Run Time | # of Findings | ||
| WR940.bin | 3.87 MB | 3 hrs., 30 min., 56 sec. | 2537 | 10 hrs., 48 min., 48 sec. | 2536 |
| T8705.bin | 25.5 MB | 14 hrs., 20 min., 35 sec. | 2198 | 1 day 1 hr., 45 min., 17 sec. | 2198 |
| R8000.chk | 30.2 MB | 18 hrs., 9 min., 40 sec. | 2901 | 16 hrs., 53 min., 55 sec. | 3012 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).