Tutorial  Updated

Using "smashhax" with Linux

If you can use the browser, I suggest that you use the new browserhax (up to 11.0.0-33!) in the meantime.

Try out Ubuntu 15.04: http://old-releases.ubuntu.com/releases/15.04/

This requires a New 3DS. The demo version doesn't work and is patched. If you have 1.1.3 or newer delete/disable the update data.

officially called smashbroshax sometimes smashax
Here is a new tool I call smashbroshax-helper. It is a graphical interface for the exploit which simplifies most of the process of broadcasting the packet. It requires almost no setup outside of creating a bootable Linux USB/DVD.

Important notes:
  • This does not work on Fedora or Red Hat-based distributions because aircrack-ng needs to be compiled on it (and I can't figure out how to install the needed things).
  • Don't use a virtual machine!
  • This probably will never work on Old 3DS.
Download smashbroshax-helper beta

It is recommended that you use a live Ubuntu 15.04 image. Versions 15.10+ have issues. http://old-releases.ubuntu.com/releases/15.04/
  1. Create a bootable USB/DVD with a Linux distribution (there are various guides online).
  2. If possible, get a second USB/SD card/storage device, download and save the above .zip to it.
    • Don't extract the contents of it to the USB device, as it might cause problems. Just save the .zip file to it.
    • If you can't do this, you'll have to connect to the Internet while in Linux to download it.
    • If using a bootable USB, make sure you can use two ports at a time. Don't take out the Linux USB while it is being used!
  3. Restart your computer and run the bootable USB/DVD you created.
  4. Extract the contents of the .zip to the Desktop.
  5. Open the smashbroshax-helper folder and double click "smashbroshax.sh".
  6. Follow the on-screen prompts.
  7. If everything goes well, you should now have homebrew!
Video demonstration, from boot to shutdown:

from https://gbatemp.net/threads/tutorial-using-smashhax-with-linux.397194/page-9#post-5842512


If you would like the full tutorial, involving terminal usage and compiling:
To reverse the changes to your wireless interface and remove issues connecting to networks after, rebooting your system or changing it to "Managed" instead of "monitor" should fix it. How to do that is in the second to last section.



@Cydget made a script that condenses most of this into a script. I have not tried it myself yet but it seems to work for others.
So, I made a little script for this. If anybody wants it, then unzip this file and read the readme. And yes, I like to pipe things. http://www.mediafire.com/download/oulnubnzkk9g3i0/smashhaxEZ.zip

Requirements
  • Any Linux distribution should do (this has only been tested with Debian-based distributions). Windows and OS X users should wait or find a method for now, sorry!
    • Please do not use Linux in a virtual machine, it likely won't give direct access to your wireless card. Dual boot or use a live USB/disk.
    • The recommended distro to use is Ubuntu 15.04 (link to Ubuntu MATE 15.04).
  • A Wi-Fi-capable wireless card.
  • Super Smash Bros. for Nintendo 3DS Full or Demo.
  • New 3DS. This does not work on Old 3DS.
  • Patience. The hax is sort-of unreliable so your game will most likely crash a few times.
  • Recommended: Another device to access the internet (phone, tablet, computer, console).
Preparing
  • Install these packages using your package manager. For example, "apt-get" for Debian-based distributions (including Ubuntu).
    Code:
    openssl libssl-dev libnl-genl-3-200 libnl-genl-3-dev libnl-3-200 libnl-3-dev pkg-config
  • Find your wireless card's interface by opening a terminal and using the command "ip link". It would be something like wlan0 or wlp3s0.
    Code:
    ian@ian-VPCEG34FX:~/Desktop/aircrack-ng-1.2-rc2/src$ ip link
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
        link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    3: wlan0: <NO-CARRIER,BROADCAST,ALLMULTI,PROMISC,NOTRAILERS,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT mode DORMANT group default qlen 1000
        link/ieee802.11/radiotap xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
  • You probably already have it, but get the homebrew starter kit and place it on your SD card.
  • Download the smashhax .pcap files from the releases section of the smashbroshax repository.
  • Determine the .pcap file to use. This should be straightforward using the file names.
    The built beacon-hax pcaps are located under "pcap_out/". In the filenames, "vXYZ" means game-version "vX.Y.Z". Full-game filenames for USA include "gameusa", while the other regions filenames include "gameother".
  • Get the "Otherapp payload" from the Homebrew Launcher site and save it to "smashpayload.bin" at the root of your SD card.
  • Download and extract aircrack-ng's latest release source.
  • Save aireplay-ng.patch from the smashbroshax repository in the folder "aircrack-ng-1.2-rc2".
Compiling aircrack-ng/aireplay-ng
  • Open a terminal and go to the "aircrack-ng-1.2-rc2" folder.
  • Use the command "patch src/aireplay-ng.c < aireplay-ng.patch". If you get the following then it has succeeded.
    Code:
    patching file src/aireplay-ng.c
    Hunk #1 succeeded at 560 (offset 1 line).
    Hunk #2 succeeded at 573 (offset 1 line).
  • Run "make" and wait. The program should be compiled with the patch now. If you get the following as the last line then it has succeeded.
    Code:
    make[1]: Leaving directory '/path/to/aircrack-ng-1.2-rc2/src'
The moment of truth
  • Run these 3 terminal commands in order, using the wireless interface (from "ip link") you found earlier.
    sudo ifconfig wireless_interface down
    sudo iwconfig wireless_interface mode monitor
    sudo ifconfig wireless_interface up
    sudo iwconfig wireless_interface channel 6​
    (the last line was suggested by @difool. and might make the payload trigger faster)
  • Enter the "src" folder in your terminal.
  • Run the following command to start broadcasting the packet: "sudo ./aireplay-ng --interactive -r /path/to/smashbros_version_beaconhax.pcap -h 59:ee:3f:2a:37:e0 -x 10 wireless_interface"
    Use the .pcap file and wireless interface you found out earlier.
  • On the 3DS system, start the game, then choose Smash and Group. Wait for the magic to happen.
Encountering errors? Something confusing?
  • Does running aireplay-ng end with "End of file"? You might be running your installed version of aircrack-ng. Don't forget the ./ for "sudo ./aireplay-ng ..."!
  • Please tell me the distribution you are using and the error you've encountered. This will help me fix your issue faster.
  • If you don't get something, don't hesitate to point it out! I want to help anyone I can.
  • Did you spot an inaccuracy or mistake I made? It would be great if you can tell me that too.
  • This was before the Otherapp payload selector was added to the HBL site. This is kept here for legacy reasons or something.
    • Determine what file you need to get from the Homebrew Launcher Payload section:
      With the release builds, the hax loads the payload from SD "/smashpayload.bin". This should contain the hb-launcher(https://smealum.github.io/3ds/) otherapp payload. Until there's a proper otherapp payload selector on the hb-launcher site, the payload can be downloaded from the following URL(see also https://github.com/smealum/sploit_installer):
      FIRMVER values(without quotes):
      • "POST5" = non-New3DS
      • "N3DS" = New3DS
      REGION values(without quotes):
      • "U" = USA
      • "E" = EUR
      • "J" = JPN
      MENUVER values(without quotes):
      • "11272": Non-JPN, system-version v9.0.
      • "12288": System-version v9.2.
      • "13330": System-version v9.3.
      • "14336": System-version v9.4.
      • "15360": System-version v9.5.
      • "16404": System-version v9.6.
      • "17415": System-version v9.7.
      • "20480_usa": USA, system-versions v9.9-v10.0.
      • "19456": Non-USA, system-versions v9.8-v10.0.
      MSETVER values(without quotes):
      • "8203": System-versions below v9.6.
      • "9221": System-versions starting with v9.6.
      For example, the payload URL for New3DS USA 9.9.0-X - 10.0.0-X is:https://smealum.github.io/ninjhax2/Pvl9iD2Im5/otherapp/N3DS_U_20480_usa_9221.bin
      The end result is a file named "smashpayload.bin" at the root of your SD card.

You are allowed to reproduce/reprint this tutorial, as long as a link back to this page (https://gbatemp.net/threads/tutorial-using-smashhax-with-linux.397194/) is included.
 
Last edited by ihaveahax,

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
Got it to work on my Raspberry Pi B+ with Raspbian Jessie!! Awesome!
So, my raspberry pi just arrived two days ago, so Im not an experienced raspbian user. I tried the tutorial like I have done before using my laptop, but instead of it working, it freezes at 75 packets and than exits. The weird thing is that it is the same usb wifi adapter I used with my laptop, so I know it should work. My question is, Did you have this problem, and if so how did you fix it?
 

Deleted member 376647

New Member
Newbie
Joined
Dec 6, 2015
Messages
1
Trophies
0
Age
29
XP
22
Country
United States
Nothing happens for me. I have the correct 'payload.bin' and 'boot.3dsx' in my microsd card's root. I load up Ubuntu Mate form a flash drive on my macbook air, run the provided helper and then start sending packets. Then I go and open my eshop smashbros and go to group and nothing happens. If i'm connected to the internet before I start sending the packets the helper will eventually, after a variable amount of sent packets, fail saying: "write failed: Network is down\n wi_write(): Network is down". I've tried both with and without internet multiple times.

Using: 'wlp2s0b1' interface and USA 1.1.2 version.
N3DS version: 10.3.0-28U
SSB version: 1.1.2 full game

I got it to do something briefly the first time i tried it but it crashed and restarted my console and I haven't been able to get anything since.
 

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
This is just a hunch, but could you try renaming/deleting your you wpa_supplicant file or forgetting your wifi passwords in settings. I have not tested this at all, so I have no idea if it will fix it.
 

maddpiratekidd

Member
Newcomer
Joined
Apr 6, 2009
Messages
22
Trophies
0
XP
197
Country
United States
So, my raspberry pi just arrived two days ago, so Im not an experienced raspbian user. I tried the tutorial like I have done before using my laptop, but instead of it working, it freezes at 75 packets and than exits. The weird thing is that it is the same usb wifi adapter I used with my laptop, so I know it should work. My question is, Did you have this problem, and if so how did you fix it?
i kinda used a mix of this tutorial and a script written by someone else, i can link you to it. what you would do is follow this scrip all the way through the patching process then copy the src folder from this tutorial into the folder and overwrite all the files from the one ill link. then chmod +x smashhax.sh and run it in terminal.





The src files that come with the tutorial i linked don't seem to work right on the Pi but the patched ones from the one in this thread do. so i just combined them.
 
Last edited by maddpiratekidd,

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
i kinda used a mix of this tutorial and a script written by someone else, i can link you to it. what you would do is follow this scrip all the way through the patching process then copy the src folder from this tutorial into the folder and overwrite all the files from the one ill link. then chmod +x smashhax.sh and run it in terminal.





The src files that come with the tutorial i linked don't seem to work right on the Pi but the patched ones from the one in this thread do. so i just combined them.

Lol, I was the one who made that script and tutorial. Ill try again tomorrow when I get my bigger sd card in the mail.
 

Practicum

Member
Newcomer
Joined
Sep 2, 2015
Messages
24
Trophies
0
Age
54
XP
84
Country
I seem to be able to make it all work except it doesn't get connected to my Wi-fi. Here's the error message that I get:

ioctl(SIOCSIWMODE) failed: Operation not supported

ARP linktype is set to 1 (Ethernet) - expected ARPHRD_IEEE80211,
ARPHRD_IEEE80211_FULL or ARPHRD_IEEE80211_PRISM instead. Make
sure RFMON is enabled: run 'airmon-ng start eth0 <#>'
Sysfs injection support was not found either.

I am working on a virtual machine.
Could anyone please help me? I'm desperate!
Thanks in advance!
 
Last edited by Practicum,

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,823
Country
United States
I seem to be able to make it all work except it doesn't get connected to my Wi-fi. Here's the error message that I get:

ioctl(SIOCSIWMODE) failed: Operation not supported

ARP linktype is set to 1 (Ethernet) - expected ARPHRD_IEEE80211,
ARPHRD_IEEE80211_FULL or ARPHRD_IEEE80211_PRISM instead. Make
sure RFMON is enabled: run 'airmon-ng start eth0 <#>'
Sysfs injection support was not found either.

I am working on a virtual machine.
Could anyone please help me? I'm desperate!
Thanks in advance!
you shouldn't be using this in a virtual machine. creating a bootable Linux USB and using that is what you want. I should put this back in the first post...
 

Practicum

Member
Newcomer
Joined
Sep 2, 2015
Messages
24
Trophies
0
Age
54
XP
84
Country
I have created a bootable Linux USB with livelinuxusb.com and Universal USB Installer but when I try to boot it (I have modified the BIOS) it always says there isn't an operating system. Why is that?
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,823
Country
United States
I have created a bootable Linux USB with livelinuxusb.com and Universal USB Installer but when I try to boot it (I have modified the BIOS) it always says there isn't an operating system. Why is that?
I'm not sure. does your BIOS have external device boot or something similar enabled? are you sure you properly made the USB?

you could try UNetbootin. make sure to pick Ubuntu 15.04 (or a variation like Ubuntu MATE 15.04). http://unetbootin.github.io/
 

Practicum

Member
Newcomer
Joined
Sep 2, 2015
Messages
24
Trophies
0
Age
54
XP
84
Country
I have used my old laptop and now there is a connection but everytime I try to connect it says there has been an error and it has to reboot. Why is that?
On my desktop I have only the smashhaxhelper file. Do I have to download something else?

EDIT: I have updated the game and it has worked at first time! Thank you all for your help!
 
Last edited by Practicum,

Metalliguitare

Active Member
Newcomer
Joined
Dec 1, 2015
Messages
26
Trophies
0
Age
37
XP
82
Country
France
Hey there

Just wanted to report that it works perfectly with the SmashBrosHax-helper :D

New3DS 10.3.0-28J (yeah JPN version)
Mid-2010 27" Imac

Installed starter kit and the smashpayload.bin into the sd card
Installed Ubuntu-mate on a 8GB USB drive using "Mac Linux USB Loader" app (also installed the EFI tools - the 1st checkbox before clicking install)
Launched Ubuntu
Downloaded the helper
Launch the .sh

Done and working !
i even installed the euro OOThax for my Euro old3DS so i can hax both my 2 consoles \o/
the old3ds with OOThax
the new JP N3ds with Smashhax (don't have secondary hax, can't launch EU oot on JP 3DS)
only minus point, i have to lauched ubuntu each time i need to boot on the launcher or change games on the N3DS.

Anyway. It worked !!!

Thanks a lot.
 
  • Like
Reactions: ihaveahax

Einzbern

Well-Known Member
Newcomer
Joined
Oct 9, 2008
Messages
45
Trophies
0
XP
207
Country
United States
Okay, so I ended up finding Smash3ds for cheap and that came in today. Spent the past few hours trying to get this to work, only to finally realize my smash 3ds is 1.0.1 and not 1.0.0 like I thought. Unfortunately this hax doesn't seem to work on 1.0.1 so this brings me to my dilemma. If this isn't the correct place to ask, I apologize.

I can install smashhax on 10.3.0-28U, correct?

As a followup, can I install Ironhax (I have 1.0, or maybe 1.1) on 10.3? I've heard conflicting reports on this. I've seen some say to install Ironhax 10.3 BEFORE I update to 10.3. I assume they say that since (I imagine) most people don't have one of the entry points that works on 10.3. Since smashhax will be mine, will I be okay?
 

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,823
Country
United States
Okay, so I ended up finding Smash3ds for cheap and that came in today. Spent the past few hours trying to get this to work, only to finally realize my smash 3ds is 1.0.1 and not 1.0.0 like I thought. Unfortunately this hax doesn't seem to work on 1.0.1 so this brings me to my dilemma. If this isn't the correct place to ask, I apologize.

I can install smashhax on 10.3.0-28U, correct?
try the one for 1.0.0 anyway. and yes it works on 10.3.
OAs a followup, can I install Ironhax (I have 1.0, or maybe 1.1) on 10.3? I've heard conflicting reports on this. I've seen some say to install Ironhax 10.3 BEFORE I update to 10.3. I assume they say that since (I imagine) most people don't have one of the entry points that works on 10.3. Since smashhax will be mine, will I be okay?
since you have ironfall before 1.2 you can use this to fix ironhax. make sure to get the new installer from the latest starter pack.
 

Einzbern

Well-Known Member
Newcomer
Joined
Oct 9, 2008
Messages
45
Trophies
0
XP
207
Country
United States
Did end up trying 1.0.0 for those few hours. Easily had 30+ attempts, every time crashing back to the home menu.

Only reason I wasn't updating was out of fear that I wouldn't be able to install smash/ironhax, so I think I will. Thanks for the help!
 

SeerUK

New Member
Newbie
Joined
Feb 13, 2014
Messages
3
Trophies
0
Age
32
XP
101
Country
Having a bit of trouble with this - I initially tried to compile everything myself, as I didn't know about smashbroshax-helper, it seemed to compile fine, I ended up with the all the right files in the right places, and the right output from aircrack, yet absolutely nothing happened on my N3DSXL when going into group.

I've tried smashbroshax-helper, got Ubuntu Mate set up on a USB with persistence, booted it, USB network adapter (TP Link TL-WN823N) works out of the box and apparently supports this, run smashbroshax-helper and followed all the instructions, got to it sending packets, and again absolutely nothing happens in the game.

The 3DS SD card has the boot.3dsx file in, along with the smashpayload.bin which is for my N3DSXL (10.3.0.28E), and the rest of the homebrew starter kit, I'm using the EUR/JPN 1.1.2 version, and have chosen that in smashbroshax-helper.

About ready to give up on this one :(, I have a copy of Cubic Ninja coming in a couple of days, but was hoping I could juts make a start with homebrew early. Anyone know what's going on?
 

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
So, I got my raspberry pi 2 to work, and also set it to run on boot, so I dont need a keyboard/monitor to start it. In the process of learning how to get it to auto run, I found out you can run it with:
yes | sudo ./src/aireplay-ng --interactive -r ./pcap_out/usa112.pcap -h 59:ee:3f:2a:37:e0 -x 10 wlan0
and that will make it so you dont have to type yes and enter each time you run it. This will be useful to know if you ever plan on updating your helper
 
  • Like
Reactions: ihaveahax

ihaveahax

Well-Known Member
OP
Member
Joined
Apr 20, 2015
Messages
6,069
Trophies
2
XP
7,823
Country
United States
So, I got my raspberry pi 2 to work, and also set it to run on boot, so I dont need a keyboard/monitor to start it. In the process of learning how to get it to auto run, I found out you can run it with:
yes | sudo ./src/aireplay-ng --interactive -r ./pcap_out/usa112.pcap -h 59:ee:3f:2a:37:e0 -x 10 wlan0
and that will make it so you dont have to type yes and enter each time you run it. This will be useful to know if you ever plan on updating your helper
i'll try this out tomorrow.

I was also considering creating "profiles" or "saves"; that is, ability to create a .sh file that has the settings for SSB version + wireless interface so you can skip all the dialogs.
 

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
The great thing about it working on a raspberry pi is that soon the pi zero will come out for $5, so soon enough people can buy a $5 "portable" entry point(N3ds/smashgame not included). Also, about my one usb adapter not working on the pi but working on my laptop. I think it is driver related, becasue my second usb adapter is working on both. This could be related to the packets stopping at 93 because on my usb that doesnt work it stops at 74. I wouldn't be shocked, because we all know that Linux has shit driver support for wireless adapters.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Veho @ Veho: Thank you based Dinoh.