[*] Emulating binary name: wps
[*] 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: /usr/sbin/wps
[*] Emulating binary ./usr/sbin/wps with parameter NONE
[*] Emulating binary ./usr/sbin/wps with parameter -v
[*] Emulating binary ./usr/sbin/wps with parameter -V
Using specified config file : /var/run/wps.config
WPS: wps is already running !!
./usr/sbin/wps: invalid option -- V
Usage: wps [OPTIONS]
-h show this help message.
-v verbose mode.
-g generate a device password (PIN).
-c {config file} specify the config file for wps.
-e {event} specify the option string for wps.
-s {usock name} specify the usock name.
Supported events are :
setup do the setup only.
pre_setup do the presetup only.
eap:enrollee An enrollee coming from EAP.
eap:registrar A registrar coming from EAP.
upnp:gdi GetDeviceInfo from UPnP CP.
upnp:ssr SetSelectedRegistrar from UPnP CP.
int:pin Start internal registrar for PIN.
int:pbc Start internal registrar for PBC.
[*] Emulating binary ./usr/sbin/wps with parameter -h
Usage: wps [OPTIONS]
-h show this help message.
-v verbose mode.
-g generate a device password (PIN).
-c {config file} specify the config file for wps.
-e {event} specify the option string for wps.
-s {usock name} specify the usock name.
Supported events are :
setup do the setup only.
pre_setup do the presetup only.
eap:enrollee An enrollee coming from EAP.
eap:registrar A registrar coming from EAP.
upnp:gdi GetDeviceInfo from UPnP CP.
upnp:ssr SetSelectedRegistrar from UPnP CP.
int:pin Start internal registrar for PIN.
int:pbc Start internal registrar for PBC.
[*] Emulating binary ./usr/sbin/wps with parameter -help
[*] Emulating binary ./usr/sbin/wps with parameter --help
Usage: wps [OPTIONS]
-h show this help message.
-v verbose mode.
-g generate a device password (PIN).
-c {config file} specify the config file for wps.
-e {event} specify the option string for wps.
-s {usock name} specify the usock name.
Supported events are :
setup do the setup only.
pre_setup do the presetup only.
eap:enrollee An enrollee coming from EAP.
eap:registrar A registrar coming from EAP.
upnp:gdi GetDeviceInfo from UPnP CP.
upnp:ssr SetSelectedRegistrar from UPnP CP.
int:pin Start internal registrar for PIN.
int:pbc Start internal registrar for PBC.
./usr/sbin/wps: invalid option -- -
Usage: wps [OPTIONS]
-h show this help message.
-v verbose mode.
-g generate a device password (PIN).
-c {config file} specify the config file for wps.
-e {event} specify the option string for wps.
-s {usock name} specify the usock name.
Supported events are :
setup do the setup only.
pre_setup do the presetup only.
eap:enrollee An enrollee coming from EAP.
eap:registrar A registrar coming from EAP.
upnp:gdi GetDeviceInfo from UPnP CP.
upnp:ssr SetSelectedRegistrar from UPnP CP.
int:pin Start internal registrar for PIN.
int:pbc Start internal registrar for PBC.
[*] Emulating binary ./usr/sbin/wps with parameter --version
[*] Emulating binary ./usr/sbin/wps with parameter version
./usr/sbin/wps: invalid option -- -
Usage: wps [OPTIONS]
-h show this help message.
-v verbose mode.
-g generate a device password (PIN).
-c {config file} specify the config file for wps.
-e {event} specify the option string for wps.
-s {usock name} specify the usock name.
Supported events are :
setup do the setup only.
pre_setup do the presetup only.
eap:enrollee An enrollee coming from EAP.
eap:registrar A registrar coming from EAP.
upnp:gdi GetDeviceInfo from UPnP CP.
upnp:ssr SetSelectedRegistrar from UPnP CP.
int:pin Start internal registrar for PIN.
int:pbc Start internal registrar for PBC.
WPS: wps is already running !!
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 ./usr/sbin/wps <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.