Skip to content

Update communication_protocol.md#4

Open
professor-jonny wants to merge 2 commits into
agarmash:mainfrom
professor-jonny:new-method
Open

Update communication_protocol.md#4
professor-jonny wants to merge 2 commits into
agarmash:mainfrom
professor-jonny:new-method

Conversation

@professor-jonny

@professor-jonny professor-jonny commented Jan 13, 2026

Copy link
Copy Markdown
Contributor

major update from re of firmware and fuzzing interface.

The firmware is very telling as the c struct 's are there in plain view.

@professor-jonny professor-jonny force-pushed the new-method branch 9 times, most recently from 15c93cd to 2850c68 Compare January 18, 2026 09:25
Comment thread communication_protocol.md Outdated
Comment thread communication_protocol.md Outdated
@agarmash

Copy link
Copy Markdown
Owner

An absolutely colossal work, hats off @professor-jonny !

What I'd really love is to have a bit more structure in this document. I believe it makes sense to first list the general info about the different packets in the "Packet Types" section, and for example, list that the payload of the " NETWORKS_LIST_RESPONSE" has an array of the network slots. The structure if the network slot can be described in a subsequent section and be cross-referenced. Also, having a bit more granular TOC would also be quite helpful, I believe there's a VSCode plugin that does that automatically.

Please let me know if I can help you with anything! Cheers!

@professor-jonny

Copy link
Copy Markdown
Contributor Author

you are right it needs a refactor, for the time being while I'm still trying to decipher more stuff ill leave it as is and do a formal final, when I think I'm in a better place to do so.

I'm trying to make my c code statefull with structs so responses can be dynamic as I plan to port this to OpenWrt or esp32 but the Xbox hand shake throws a spanner in the works being as you connect to a network and the response alters and bam the xbox bumps you.

I have made my c program a four in one with:
Xbox emulator
(interactive shell to control adaptor)

Adaptor emulator
(emulate a semi stateful response system)

Bridge mode where Xbox and adaptor plugged into separate network ports.
(listen only no port mirroring required):

Hex upload to Xbox or adaptor
(This depending on direction uses the real xbon nounce and re calcs the hex payload as valid packet)

My code needs a refactor too as it has been altered chopped and changed lots of times every time i find out something new.

New Bitmap Image (2)
New Bitmap Image (7)

@professor-jonny professor-jonny force-pushed the new-method branch 2 times, most recently from 299afe7 to e8da288 Compare January 22, 2026 01:52
@professor-jonny

professor-jonny commented Jan 25, 2026

Copy link
Copy Markdown
Contributor Author

An absolutely colossal work, hats off @professor-jonny !

What I'd really love is to have a bit more structure in this document. I believe it makes sense to first list the general info about the different packets in the "Packet Types" section, and for example, list that the payload of the " NETWORKS_LIST_RESPONSE" has an array of the network slots. The structure if the network slot can be described in a subsequent section and be cross-referenced. Also, having a bit more granular TOC would also be quite helpful, I believe there's a VSCode plugin that does that automatically.

Please let me know if I can help you with anything! Cheers!

If you could look over my work it would be great!!!, I think I have finished now, but some of it needs a second pair of eyes over it.
I have formatted the document better now as you suggested and now i think it is in a much more presentable state.
With the disassembly Ill export that and likely put in a pull request for that but for the time being I'm still getting enjoyment from unlocking it's secrets :-).

if i can figure out how of flash the device Ill try and enable the webpage and figure out the serial port connections as debug output will likely be handy going off the string table.

I have also sent you a pm on discord and sent some ghidra stuff to ponder over, I'm slowly continuing to onlock a bit more.

@professor-jonny professor-jonny force-pushed the new-method branch 7 times, most recently from fa72dfc to 67d54d2 Compare January 31, 2026 10:30
@professor-jonny professor-jonny force-pushed the new-method branch 3 times, most recently from 2555ac7 to bae04c5 Compare February 6, 2026 14:18
@professor-jonny

Copy link
Copy Markdown
Contributor Author

I'm finished with adding protocol information now the info is complete to the point I have a working emulator in windows that is able to use your pc as an Xbox wireless adaptor and control the radio and preform site surveys attach to networks passing the info on to the Xbox for signal strengths etc....

The documentation, needs someone else to look over and review it and it for sure needs a tidy up.

There are referenced logs of all the captures, Ghidra xml's for the adaptor firmware and I have updated the xonlinedash xml's quite a bit so I could see the tag enum and values and confirm stuff not able to be confirmed from the adaptor disassembly alone such as values direct from radio vtables, dash rssi scaling etc...,

Madwifi source is not available for this SOC so I have cross referenced and worked out as much of the radio structs etc to give me reliable and accurate data to build the manual and build an emulator.

I went far over kill with the adaptor disassembly way more than needed every function is named and all the important stuff and stuff that is used a lot has had structs and datatypes created to make it easily readable.

@professor-jonny professor-jonny force-pushed the new-method branch 2 times, most recently from 4178b09 to 5669c4d Compare May 17, 2026 13:09
Update communication protocol document with findings from reverse engineering, and log capture and fuzzing.

Add full capture logs for verification of sources from manual this serves as a great source for verification across hundreds of packets.

add TFTP update log to show discover and update protocol.

Add Ghidra XML for the following used in the disassembly:

SG2.bin    (WGA54g firmware binary)
MSBN update tool (firmware update tool)
NML.bin (MN740 adaptor firmware)
MSBNUpdate.exe (TFTP Firmware update tool)

Note: SG2 firmware is a multi ISA codebase based on ThreadX RTOS.
it has mips32be/ mips16e and arm code for the radio binaries.

Ghidra has problems with delay slots and ISA switching and it would be better to use an alternative tool than Ghidra that suits mips 32/ 16 switching correctly.

plate comments have been placed in the code for the key functions in the mn740 firmware with all the points that need patching to enable WPA, HTTP and fix TFTP RRQ and WRQ functions.

Signed off by Jonathan Brophy <Professor_jonny@hotmail.com>

Update communication_protocol.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants