Wiimmfi-Team

How to setup mkw-ana on windows

Wiimms "mkw-ana" has got some new features in the last versions - including an improved glitching and item cheat detection (Wiimmfi-moderators can also auto-ban cheaters). Sadly, there are not many people using mkw-ana.

This tutorial explains how to setup mkw-ana on Windows without needing a special router or hub to capture the network traffic.
After doing this tutorial, you'll be able to use mkw-ana on your computer and routing your wii's traffic through your computer.

Wireshark gets installed like any other program (remember to also install the WinPcap driver). Mkw-ana and WinDump are just being copied into any folder you'd like.

Step 2: Second IP Address

Open the start menu and type "View network connections". Open that and then open the settings of your NIC. Choose "Internet Protocol Version 4" and open the "Properties".

You need to assign your computer a static IP address. If you don't know what to enter there, run "ipconfig" in cmd.exe and write down your IP address, your gateway and the subnet mask.
Enter "8.8.8.8" and "8.8.4.4" as DNS servers (or the IP of your router if it has a DNS server).

Then click "Advanced" and click "Add" at "IP addresses". Add the IP "172.18.84.1" with subnet mask "255.255.255.0". This additional address will be used for the wii to connect to your computer.

Step 3: Enable routing

Open the registry editor (regedit.exe) and go to. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters
Change "IPEnableRouter" to 1 and "EnableICMPRedirect" to 0.
Close the editor and reboot your computer.

Step 4: Configuring the Wii

Now you need to configure the wii so it sends data to your computer and not to the router. Open the network settings, create a new connection and enter the IP "172.18.84.2", the subnet mask "255.255.255.0" and the gateway "172.18.84.1". Enter 8.8.8.8 / 8.8.4.4 as DNS servers.

(EDIT: The connection test will probably fail until you've configured the same thing in your router [Step 5]).

Step 5: Configuring the router

In the last step, you've configured your wii to send outgoing packets to your computer instead of the router. Now you need to configure your router to make it send wii packets to your computer and not to the wii.

Open the web interface of your router and search for "static (IPv4) route".
If you have a FRITZ!Box, you'll find that at Network -> network settings -> IPv4 routes.

Create a new route for network "172.18.84.0" with subnet mask "255.255.255.0". Enter your computer's IP address (the static one. Not 172.18.84.1!) as gateway and save the route.

Step 6: Testing

Start Mario Kart Wii, connect to Wiimmfi and join a global race. Open Wireshark on your computer, go to "Capture" -> "Start" and enter the following as "Filter": ip.addr == 172.18.84.2

During the race, you should now see some packets having a "source" of 172.18.84.2 and some having a "destination" of 172.18.84.2.

Step 7: Using mkw-ana

Open up two command line interfaces and navigate to the mkw-ana folder in both of them. Start "windump -D" in one of them and remember the number of your network interface (mostly it's 1). You can now start the recording with the following command (you may put that in a batch file so you don't need to enter it every time). Enter your network interface's number for X. You may also choose a different file name than "file.eth". The file "a.socket" is a temporary file for connecting the two commands (just stay with that name and ignore the file).

Now mkw-ana should start and display details about the current race. When mkw-ana detects enough cheats for one player (there might be some false positives, so one or two "cheats" for a player are not enough) you can also use the dump file "file.eth" as a proof instead of a video.

mkw-ana for Wiimmfi moderators

If you are a Wiimmfi moderator (or have the AUTOBAN right), you can go to the Wiimmfi page ( wiimmfi.de/status ) to create a config file for mkw-ana. Copy the lines displayed at "mkw-ana setup" to a new file "mkw-ana.config.txt" and put that in the same folder as mkw-ana. To make mkw-ana auto-ban cheaters, add the following parameter: --autoban all,enabled
Do not set the item cheat level lower than 5 because there might be some false-positives due to lag.

Reset routing

If you want to remove all those modifications to make your wii connect to your router directly, just switch your Wii back to DHCP in the network settings and remove the static route from your router.

Wiimmfi-Team

"--width" does not exist. And "--height" does not set the terminal height X, but tells mkw-ana that the terminal is X lines heigh (in case the automatic detection fails). You'll need to set the size manually by clicking on the cmd.exe icon and "Settings" (or maybe "defaults"?).

Homebrew-Fortgeschrittener

Nice tutorial @Leseratte Im assuming I can also use something like this through a VM (its using a bridged connection with my built in ethernet port on my Mac) by following the same steps as if I were doing it from a physical PC

Wiimmfi-Team

I was perfectly able to run that in a Windows 7 VM (Virtual Box) on my Ubuntu PC. Just make sure the virtual PC software doesn't do NAT, but instead really connects the virtual PC directly to the router.

Wiimmfi-Team

You may already setup the network things and test with wireshark and mkw-ana, but the current release version of mkw-ana has currently some bugs when used in this network setup (packets are recorded twice - mkw-ana is confused). Wiimm will probably release an update today.

Wiimmfi-Team

"Metric" in your router's interface is a route setting indicating a priority.
If there are two or more routes for the same subnet, the router usually uses the route with the smaller metric value.

The parameter "-s 60000" in the windump statement is to not make windump cut the packets after the header. Without that, windump would only capture the header and not the actual data needed by mkw-ana. And the parameter "-U" (which I forgot in the tutorial, I've added it now) makes windump to not fill any buffers but write out each packet instantly so the mkw-ana output has no delay.

Also, I've noticed you were using mkw-ana version 2344 in the video. This one has some bugs when you capture the data the way it ws described in this tutorial. You need to use version 2351 or newer.

Homebrew-Profi

The parameter "-s 60000" in the windump statement is to not make windump cut the packets after the header. Without that, windump would only capture the header and not the actual data needed by mkw-ana. And the parameter "-U" (which I forgot in the tutorial, I've added it now) makes windump to not fill any buffers but write out each packet instantly so the mkw-ana output has no delay.

It's not wrong to put the negation between to and the verb but "not to" is the common way that most people use. An old teacher of mine would have called it wrong.

Wiimmfi-Team

Well, it's not "the common way", but in my opinion it's a good way to distinguish between
"I make X to not do Y" -> X is not able / allowed to do Y. I make him "not to do Y".
and
"I do not make X do Y" -> I do not force X to do Y but if he wants he can do. I do not make him "do Y".

Wiimmfi-Team

Well, after setting up this tutorial your computer is basically a router. On a router, a packet goes in on one interface and goes out on one.

Even when both routing interfaces are the same, this results in every packet existing twice in a packet dump. And when mkw-ana compared some data to the previous packet, it always returned "0" because a difference between two exact same packets is 0. Thats why there were wrong cheat warnings and a driving speed of 0.0 with the old version.