4/16/2026 at 11:47:30 AM
I had truly good “hacking” session with Codex. It’s not hacking, I wasn’t breaking anything, just jumping over the fences TP-Link put for me, owning the router, inside the network, knowing the admin password. But TP-Link really tried everything so you cannot access the router you own via API. They really tried to be smart with some very very broken and custom auth and encryption scheme. It took some half a day with Codex, but in the end I have a pretty Python API to access my router, tested, reliable, and exporting beautiful Prometheus metrics.I’m sure there is some over eager product manager sitting in such companies, trying to splits markets into customer and enterprise sections, just by making APIs not useable by humans and adding 200% useless “security by obscurity”.
by alfanick
4/16/2026 at 12:31:17 PM
Many eons ago I wrote a Python version of tmpcli for this exact reason. Made some minor improvements a few years ago but haven’t touched it since. Curious what methodology Codex came up with, I haven’t revisited it since models got really good.The idea is that tmpServer listens on localhost, but dropbear allows port forwarding with admin creds (you’ll need to specify -N). That program has full device access and is the API the Tether app primarily uses to interact with the device.
by ropbear
4/16/2026 at 12:34:35 PM
Ha kudos! I went across this project - thanks for your work :) It didn't work on the specific model I own (Archer NX600).My solution is really just using their pseudo-JWT over their obscured APIs (with reverse-engineered names of endpoints and params). Limitation is that there is still only one client allowed to be authenticated at one moment, so my daemon has priority and I need to stop it to actually access Admin panel.
by alfanick
4/16/2026 at 2:00:54 PM
We’re splitting this across two threads, but if you give Codex access to jadx and the Archer android app you might be able to get something without that problem. The TPLink management protocol has a few different “transport” types - tmpcli uses SSH, but your device might only support one of the other transports.by mtud
4/16/2026 at 1:42:45 PM
Of course! Happy to contribute. As is the case with your device, there's a lot of weird TP-Link firmware variants (even an RTOS called TPOS based on VxWorks), so no guarantee it'll work all the time. Glad there's more research being done in the space!by ropbear
4/16/2026 at 2:13:53 PM
Would be amazing if it worked with decos, these are locked down so much you don’t even get an admin interface inside your own network.by baq
4/16/2026 at 6:27:52 PM
I have one of these Smiirl flip counters. It runs a version of OpenWrt without the web UI, but has a uhttpd to serve an api. I'm hoping Mythos can help me find an exploit to get into it and enable ssh since they have now disabled the simple api switch that would let you turn it on.by qingcharles
4/16/2026 at 12:37:44 PM
I've had good success doing something similar. Recording requests into an .har file using the web UI and providing it for analysis was a good starting point for me, orders of magnitude faster than it would be without an assistant.by 0x_rs
4/16/2026 at 11:11:20 PM
> It’s not hacking, I wasn’t breaking anythingThat's a very narrow read of the word "hacking".
We're literally on a website called "Hacker News". We're not all trying to break things.
by gilgoomesh
4/17/2026 at 4:22:39 AM
https://www.catb.org/jargon/html/H/hacker.htmlDefinition 7 would be the relevant one here.
by vermilingua
4/17/2026 at 4:31:04 PM
I did something similar with an LED display on my computer case. The display required a proprietary UI program from the manufacturer to display GPU/CPU temps which unfortunately only worked on Windows.Since it needs sensor data, WINE would not work here and I didn't want to do something funky with editing WINE or granting non-typical permissions.
I was able to reverse engineer the software using Claude, some Python, and a few hours of probing sensor data to understand how it worked and what was available.
I wrote most of the code myself (it was dead simple), but Claude was extremely useful in understanding what byte packets were being sent to the USB controller, what they meant, and what the controller was expecting.
I was able to make it into a service so now it Just Works(tm).
Probably the first time I've used it to "hack" something, but now I have a service that works great, I understand it, and I learned a ton about how Linux controls some low-level hardware.
by Wojtkie
4/16/2026 at 5:43:25 PM
If you're into it, you could always re-flash your TP-Link hardware with some open-source firmware that is more automation friendly. I used to be intimidated by it, but a friend showed me how to do it and it's remarkably simple and pain-free (provided it's a commonly supported router of course).by _doctor_love
4/16/2026 at 5:45:13 PM
ofc I could, but no project supports this specific hardware (Archer NX600) - I'm very happy with my solution :)by alfanick
4/16/2026 at 5:57:10 PM
I wonder what the effort would be to port openwrt to it? It might be easy if there are adjacent routers on the same chipset.by m463
4/16/2026 at 6:52:35 PM
Generally, if the device is compatible and not new to the market, openwrt has been ported or is in the process (though it may not be the latest version of openwrt). You can search for your device in the compatibility drop downs and get the current status. If it's not listed, searching the device on the openwrt forums may tell you why (which is almost always the chipset).by c420
4/16/2026 at 12:18:31 PM
Would definitely be interested in this. Moved to TP Link at the start of the year and I am generally very happy with it, but would like to be able to interact with my router in something other than their phone app.by tclancy
4/16/2026 at 12:21:37 PM
That was actually my first thought, to go through TP-Link cloud (ZERO DOCS), but it was too much effort :)by alfanick
4/16/2026 at 6:49:20 PM
> Moved to TP Link at the start of the yearCan’t understand buying them or Netgear today.
by DANmode
4/17/2026 at 1:34:22 AM
Not to worry, I bought them in January.by tclancy
4/16/2026 at 10:25:34 PM
It's a shame that you can't share how you did that without running afoul of DMCA Section 1201 and risking years in federal prison.by stronglikedan
4/16/2026 at 10:28:02 PM
... in exactly one of this planet's countriesby bedstefar
4/17/2026 at 9:01:18 AM
[dead]by juanani
4/16/2026 at 12:10:40 PM
Any tips to share? I tried to do something similar but failed.My router has a backup/restore feature with an encrypted export, I figured I could use that to control or at least inspect all of its state, but I/codex could not figure out the encryption.
by srcreigh
4/16/2026 at 12:14:44 PM
It's on my long list of projects "to-opensource" (but I need to figure out licensing, for those things CC-BY-SA I think is the way to go), I don't want a random lawyer sitting on my ass though.I started with a simple assumption: if I can access the router via web-browser, then I can also automate that. From that the proof-of-concept was headless Chrome in Docker and AI-directed code (code written via LLM, not using it all the time) that uses Selenium to navigate the code. This worked, but it internally hurt me to run 300MiB browser just to access like 200B of metrics every 10s or so. So from there we (me + codex) worked together towards reverse engineering their minimised JS and their funky encryption scheme, and it eventually worked (in the end it's just OpenSSL with some useless paddings here or there). Give it a shot, it's a fun day adventure. :)
Edit: that's the end result (kinda, I have whole infra around it, and another story with WiFi extender with another semi-broken different encryption scheme from the same provider) - https://imgur.com/a/VGbNmBp
by alfanick
4/16/2026 at 2:18:33 PM
For what it's worth, the Creative Commons organization recommends against using CC licenses on software: https://creativecommons.org/faq/#can-i-apply-a-creative-comm...by TurkTurkleton
4/16/2026 at 12:31:01 PM
You should give codex access to the mobile app :) The app, for a lot of routers, connects via an ssh tunnel to UDP/TCP sockets on the router. Would probably give you access to more data/control.by mtud
4/16/2026 at 1:47:15 PM
Made a comment up above, but that's tdpServer and tmpServer (sometimes tdpd and tmpd) and it's what I use in my python implementation of tmpcli, the (somewhat broken) client binary on some TP-Link devices.You're correct, it gives you access to everything the Tether app can do.
by ropbear
4/16/2026 at 1:57:53 PM
I had been trying to find that again! It was instrumental in some RE/VR I did last year on tmp and the differences between the UDP socket (available without auth) and the TCP socket. Thanks for making that.I can't remember the details of the scheme, but it also allows you to authenticate using your TPLink cloud credential. If my memory is correct, the username is md5(tplink_account_email) and the password is the cloud account password. If you care, I can find my notes on that to confirm.
by mtud
4/16/2026 at 6:32:00 PM
Why not just use the GPL? It basically covers the same stuff Creative Commons Share-alike does.by JTbane
4/16/2026 at 7:42:56 PM
I don't feel like I own the code itself (hey, GPT wrote 99.5% of it), I own the product and the thought process and everything that lead to it - do whatever you want, just don't forget my name somewhere in the process. Feels more like art project than coding project hence CC license.by alfanick
4/16/2026 at 1:50:08 PM
I had fun “hacking” my router that turned out to be just unzipping the file with slight binary modifications, it was so simple in fact I just implemented it in a few lines of js, even works in the browser :-Dby seer
4/16/2026 at 12:15:00 PM
that could make a for a nice blog / gistby jack_pp