[*] Emulating binary name: busybox
[*] Emulator used: qemu-mipsel
[*] Using root directory: /logs/s115_usermode_emulator/firmware/unblob_extracted/firmware_extract/DIR-600_fw_revb5_214b01_ALL_de_20130122/dir600b_v2.14_d1mg.bin_extract/1179788-3612812.squashfs_v4_le_extract (1/1)
[*] Using CPU config: NONE
[*] Emulating binary: /bin/busybox
[*] Emulating binary ./bin/busybox with parameter NONE
NONE: applet not found
[*] Emulating binary ./bin/busybox with parameter -v
-v: applet not found
[*] Emulating binary ./bin/busybox with parameter -V
[*] Emulating binary ./bin/busybox with parameter -h
-V: applet not found
-h: applet not found
[*] Emulating binary ./bin/busybox with parameter -help
[*] Emulating binary ./bin/busybox with parameter --help
-help: applet not found
BusyBox v1.14.1 (2012-10-10 10:09:46 CST) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as!
Currently defined functions:
[, [[, basename, bunzip2, bzcat, bzip2, cat, chmod, cp, cut, date,
echo, egrep, expr, false, fgrep, free, grep, gunzip, gzip, hostname,
ifconfig, init, insmod, ip, ipaddr, iplink, iproute, iprule, iptunnel,
kill, killall, killall5, ln, ls, lsmod, mkdir, mknod, modprobe, mount,
msh, mv, netstat, ping, ping6, ps, pwd, rm, rmmod, route, sed, sh,
sleep, sysctl, tar, test, top, touch, tr, true, tunctl, umount, uname,
uptime, vconfig, wc, yes, zcat
[*] Emulating binary ./bin/busybox with parameter --version
--version: applet not found
[*] Emulating binary ./bin/busybox with parameter version
version: applet not found
For reproducing the EMBA user-mode emulation mechanism, the following commands could be used as starting point:
- Start EMBA docker container with the firmware directory as log directory:
# EMBA="." FIRMWARE="/home/runner/work/emba/emba/DIR-600_fw_revb5_214b01_ALL_de_20130122.zip" LOG="/absolute/path/to/EMBA/log/directory" docker-compose run emba
- Change your working directory to the root directory of your firmware:
# cd /logs/s115_usermode_emulator/firmware/unblob_extracted/firmware_extract/DIR-600_fw_revb5_214b01_ALL_de_20130122/dir600b_v2.14_d1mg.bin_extract/1179788-3612812.squashfs_v4_le_extract
- Copy the static compiled user-mode emulator to your current working directory
# cp $(which qemu-mipsel) .
- Start the emulation with the following command:
# jchroot . -- ./qemu-mipsel ./bin/busybox <parameters like -v or --help>
WARNING: EMBA is doing some more magic in the background. Probably it is not that easy, but give it a try.