back
419 comments
Decades ago, my partner used Google Voice for texting -- really handy, texts just showed up in the gmail inbox, and could be replied to from there. She didn't like cellphones, but usually carried one of the old "Kindle Keyboard" models with unlimited 3G data. The Kindle had simple web browser that could load the low-spec gmail interface, so in essence she had a fully functional SMS device, with no monthly charges.

Notification of incoming texts was the only problem. I jailbroke the thing and started trying to schedule network requests, thinking I'd add some kind of new message counter on the home screen. This proved hard. But it occurred to me that the best place for the counter would be right next to the Kindle's device name, at the top of the screen. And the device name could be updated from her Amazon account.

So I automated a web browser on the home server to log into Amazon and update the device name to "My Kindle (x)" where x was the number of unread Google Voice texts. The Kindle would update the name on the home screen in less than a minute. This worked for years!

(Eventually that Kindle was stolen. I wanted to update its name to something foul but the device disappeared from her account too quickly.)

The AT&T bill (IIRC it was all under a single account) for the 3G Kindles was eye-watering. I recall a few byte-shavings yielding something like a million dollars of savings.
I loaned my kindle keyboard to a coworker for a trip and it was stolen from them in mexico. The joke was at the time it was probably the oldest working kindle possible, so I assume the thief just took whatever was in the bag.

Later I found another kindle keyboard for $20 in a flea market but it only worked for 6 months before the battery died. I still have the body around - I wonder how much it would cost to get a replacement battery.

Oh that 'free' 3g was amazing! I was able to hobble through gmail through the browser, and even wrote a kindle-friendly Zork website so one could play text games on it allowing you to choose from a bunch of zmachine roms. Had some traction getting mentioned on a few news websites.
Oh my god! I did this too!!! I didn't have the clever Kindle name change integration but I did use a keyboard Kindle with infinite 3G to text for a while.
Years ago before I got a smart phone I used my kindle keyboard to navigate on a long road trip. It could just barely run the Google Maps website.
I still use Google Voice for texting, but only from their dedicated web page. I never heard about being able to text from Gmail. I assume this feature is gone?
Google Voice has only existed since 2009, so it couldn't have been "decades" ago. That's how i know your story is fake.
I was on a ~20 hour ferry ship from Italy to Greece once. They had paid wifi using sattelite internet, which I did not want to pay. But for payments to work, they allowed access to stripe. Turns out, everything on stripe.com was accessible, even dev docs etc. So I started to waste their bandwidth by downloading gigabytes of images from the stripe website over and over again.

But that's quite unproductive. As it turned out, in order for stripe to work, it needs access to fastly CDN. And then I remembered that reddit also uses fastly. By connecting to stripe and changing the Host HTTP header to reddit.com, I could browse reddit! Images didn't work though (i.redd.it is not on fastly). I could edit my /etc/hosts and associate old.reddit.com with stripe's fastly IP address. After ignoring scary TLS errors, I could even log in.

I presume the only people you're hurting by downloading gigabytes of docs are the people on the plain that paid for the service. Maybe the company providing the service because those people experiencing the slow connection might never buy again. You're probably a also costing stripe for their upload bandwidth.

And here I am, avoiding downloading things on cell service because it might negatively impact other people around me.

Couple weeks ago, I took my kids to a class at the mall, then decided to use their free wifi. I logged in successfully with my laptop, but it said no Internet.

I checked the default gateway and it took me to a cisco modem. It had all sort of diagnostic tooling including the list of devices connected to the modem. However, it showed no Internet connection. I googled the model on my phone, and the admin is supposed to be the serial number with blank password and there was an example of the pattern. Surprisingly, one of the devices connected to the modem had a name that looked like said pattern.

And just like that, I was in. I toggled the Internet button, 15 seconds later it turned green. I set a new password on the device.

This is awesome and I love hacks[1] like this. On the other hand, if I remember correctly, I've checked recently and global DNS in skywifi seemed to resolve fine without paying. So I think - at least in the plane I was in - just a regular iodine [2] tunnel would work

[1] in the original meaning of the word. [2] https://github.com/yarrick/iodine

"I’d forgotten to charge my headphones so Limp Bizkit started playing out of my laptop speakers. Fortunately no one else on the plane seemed to mind so we all rocked out together."

People like this lack basic civility. I'm sure a lot of the people around Robert did mind, they were just too polite to ask him to stop imposing his gratuitous noise on them.

Am I the only one who is always tired in the plane no matter what and cannot anything but close my eyes and wait til the flight is over?

The idea of pulling out my laptop or even a book is just… tiring. There’s a lot of noise as well (airbus anyone?) and I don’t have noise cancel headphones, so concentration is difficult. Without taking into account that I have spent at least 2h away from home among trains, trams and security controllers. The bad (unhealthy) food available in airports doesn’t help either. Half the year the weather doesn’t help either(it’s either too hot or too cold). Plus the 10 kilos backpack I have on my back is making me sweat no matter what.

So, basically, I’m never in the mood of doing anything in a plane.

Sending stock quotes, scores, weather, etc. reminds me of a service that Google used to offer via text message. I used that a ton before I got my first smartphone: text W[ZIP code] to 46645 (GOOGL) and it would text back the weather. Same for stock:[symbol] and many other things I've since forgotten. Of course Google killed it, but it was neat while it lasted!
Interesting to see how close the author got to producing an abstract "TCP-over-shared-editable-fields", which in itself would make a really cool tool.

Imagine a proxy where all you did was design at a high-level a way to write/read to a shared resource from two sides, and then it handled all the rest for you as a SOCKS proxy.

Few years ago, dean of our college decided to block lan network after 10PM because of “gaming impact attendance” blah blah.

Anyway, the way they implemented this is by blocking all traffic from/to ip addresses but not blocking tcp and completely forgot about ipv6 as it was not pretty new. So, I created a simple p2p chat Application which will work with ipv6. Only problem is that we had to share our ipv6 addresses with our friends which they have to maintain in contacts. It worked great until we figured tunneling to computer which is outside the network was much easier.

This reminds me, and perhaps a perfect example of writing useless software[1] and the subsequent HN discussion[2].

Is it a life changer? Probably not. Was it fun to write and explore? Most likely!

We definitely need to make more stuff like this.

[1]: https://ntietz.com/blog/write-more-useless-software/

[2]: https://news.ycombinator.com/item?id=37911900

A long time ago (2011) when I was teaching the networking course at Brown, the final assignment in the course was to create the equivalent of iodine, IP-over-DNS tunneling [1]. Being a course assignment, the handout only outlines the solution. We provided a set of domain names and DNS servers on VMs for students to use.

After the course ended, one student going home did manage to use his assignment to get Internet access from the airport, as we had forgotten to turn off the DNS server nodes.

Over the years we had a lot of fun with creative final projects in the course besides IP-over-DNS, including web-based phone tethering, DNS spoofing, openflow-based SDN routing, LT (Erasure) Coding, a BitTorrent client, and a DNS-redirection-based CDN with leaderboard.

[1] https://cs.brown.edu/courses/cs168/s11/handouts/dtun.pdf

Hacker: Those stupid website makers, they didn't think of this hole.

Website makers: There's a hole here, but we make it super slow so nobody in their right mind would use it and even if they do then there's no problem whatsoever. It would only waste their time.

Reminded of using Iodine to break out of captive portals using DNS TXT/SRV etc records https://github.com/yarrick/iodine
Most flight WiFi networks don't block DNS traffic, so if you set up a custom DNS server, you can tunnel everything through DNS. It's slow, but it's free internet!
It's been a long time since I audibly laughed out loud at a network diagram. Possibly never. There is a first time for everything.
A lot of cruise ships will let you pay for a messaging tier which unblocks messaging apps, but blocks everything else. I found this repo that uses whatsapp messages as a form of proxy. [1] It's pretty cool as a PoC, but in reality is much too slow to use for more than maybe checking the news.

[1]https://github.com/aleixrodriala/wa-tunnel

> Several co-workers were asking me to review their PRs because my feedback was “two weeks late” and “blocking a critical deployment.” But my ideas are important too so I put on my headphones and smashed on some focus tunes. I’d forgotten to charge my headphones so Limp Bizkit started playing out of my laptop speakers. Fortunately no one else on the plane seemed to mind so we all rocked out together.

He's not serious, right? Right?

I needed to get a message to my misses while on a long flight home. It wasn't an emergency but it would have been a total bummer to let her know after I had landed.

The problem was I had packed my wallet into my check-in like a dumbass. I couldn't figure out a way to sign up for in flight wifi. Plenty of apps and services have my credit card number on my phone but none of them would show the entire number without me signing on.

The flight however had Alipay as one of the apps to pay, which would have been great except it wasn't working. It still allowed connections to alipay. I figured out I could cancel the payment through a button hiding in a transaction details page and be dumped out to the alipay home screen.

The alipay chat feature wasn't working though, they'd must have thought about that. But some of the mini-apps did work, including the mini-app for my home automation.

It let me send a message to the terminal thingy at the door of my place where you buzz people in (there was a feature to send mail to other rooms, I just sent it to myself).

This took up about 40 minutes of the 11 hour flight.

Reminds me of the "Bob Wehadababyitsaboy" GEICO commercial:

https://www.youtube.com/watch?v=9JxhTnWrKYs

In the early nineties, before logging into work from home was a thing, my friend created an email based terminal tunnel: he'd send emails with Unix commands to this account, executed the command, and returned an email with the result.

There were no security checks whatsoever: everyone who know the magic word that triggered the start of the commands could do whatever they wanted on the Alcatel servers.

Along the same lines, there are some programming contests that use a web based system for submitting solutions. They often restrict internet access to just the contest website, but a motivated user could use the same trick with the user profile fields to sneak information in/out.

As a bonus one of those contest systems allows users to upload a profile photo, which would greatly increase the bandwidth!

This is bonkers and I love it. A great hack in spirit but also a good primer on how a fundamental protocol like TCP kinda-if-you-squint-sorta powers everything else.

I wish I thought of it on my last trans-atlantic!

KLM, specially on long flights, has a free tier wifi where you can use major instant messaging without charge. If you want to surf the web, it’s pretty cheap. If i recall around 30-40 euro for a 9-10hours flight. Or pay less for an hour.

Was considering to “hack” my way out of the free tier. But paying was just too easy and it’s affordable.

Sorry for boring addition/story.

What's an airmiles account? I guess it's some kind of frequent flyer thing?

By the way, many many paid WiFi networks leak DNS requests like a sieve when not logged in or paid and you can tunnel through it easily. There's a piece of software for that, iodine I think it was called. Never really needed it but it's there and it works.

I “hacked” free WiFi on a very long flight to Beijing about 10 years ago when I was in my 20s. I was visiting my girlfriend’s family and didn’t actually have more than $20 to my name at the time.

It was a simple matter of joining the network, and then dumping the traffic in monitor mode. I could log MAC addresses of other devices on the network.

I made a list of addresses and then spoofed someone else’s address that must have paid, and blamo, I’m online.

I would rotate to another address when Internet access deteriorated: this meant the other guy was trying to use the Internet at the same time.

Yeah, I know I’m awful.

Recently I found Cloudflare's WARP app let me bypass the chat-only restriction on some long-haul airlines. You'd get like 5kbps bandwidth, but it was enough to read HN.
Brilliant! I love stories like this. This is real hacking :)

Am disappointed though to have reached the end of the article only to find no mention of stats regarding max speed, efficiency etc vs the paid-for wifi.

Also, not sure why you wouldn’t just use Base64 encoding for which optimised versions already exist instead of rolling your own conversion to/from base 26 (or 52).

I pay for WiFi on long-haul flights because I am bit scared of flying and it keeps me distracted and connected to the world and friends and relatives (maybe I am scared because I feel isolated?).

Anyway, on my last flight I tried WiFi Hotspot and I was able to give WiFi to my girlfriend and dad, just paying for one account on my device. It isn't free but at least it allows everyone on my party to be connected.

ZeroTier, Tailscale, and several other UDP based mesh protocols will sometimes work in “free” mode on planes, but it tends to be horrifically slow.
I was recently on a cruise ship in the Caribbean, and they sold "Starlink powered" internet service for $40 a day. Interestingly, they seemed to let notification service traffic through. Any data delivered through a platform based notification made it through just fine, including large images in a youtube notification.

I assume it was to entice you to buy the wifi for some important notification. Or just so you would GET that important notification in the first place. Either way, probably eminently abusable on android at least.

That said, who the hell buys overpriced internet connectivity on a 7 day cruise? I have an addictive personality and spend pretty much all my free time on Youtube or Reddit, and it was refreshing to be without. I especially felt sad about all the young teens who were obviously scrolling tiktok or instagram. What parent buys their child a $3000 cruise ticket and then also pays an additional $300 per child for them to completely not do it? Cheaper than a week of babysitting maybe.

This is exactly the sort of post that gives me a ray of hope that the Internet still has some of its old magic in it.

Thank you for this. Very well done.

The lengths that people will go to to avoid paying $10-20 for onboard WiFi is nuts.
I vaguely recall a story from a long time ago when companies like AOL and CompuServe sent you CDs in the mail with demo versions of their products. You could dial up using them and access a subset of their services before purchasing full access. Someone figured out that although the rest of the internet was firewalled, they still relayed DNS requests to the original DNS servers (maybe needing a low TTL) and used this to tunnel via a custom DNS server. Et voilà! Free ISP :)
It's all fun and games until they shut down your frequent flyer program account. That seems to be the way airlines prefer to dish out punishment.
At a company I used to work for long ago locked the network down pretty good, so a coworker used ping requests and a server at home to get around it.
> At first I thought that I’d write them using Go, but then I realised that if I used Python then I could call the final tool PySkyWiFi.

Hmm, GoFlyWiFi? GoHighWifi?

>> my feedback was “two weeks late” and “blocking a critical deployment.”

>> I’d forgotten to charge my headphones so Limp Bizkit started playing out of my laptop speakers. Fortunately no one else on the plane seemed to mind

Talent or not, managers commonly say that 10% of people cause 90% of the headaches. I guarantee the others on the plane minded very much, but were just to polite to say anything.

I have used iodine, which though isn't the easiest to setup works on every airline I have tried, to bypass airline Internet firewalls. DNS packets are one of the few things they don't seem to even try to filter. I wouldn't be surprised if you could just run wireguard over UDP/22.
Cool hack aside this part really grates me

> Limp Bizkit started playing out of my laptop speakers. Fortunately no one else on the plane seemed to mind so we all rocked out together.

No they were just being too polite to speak up and say this is inconsiderate AF.

It’s bad enough when people do this on public transport, but on a fuckin plane?!?