This reminds me the old days of Windows 95 when I found a software to burn CDs that had a trial version which was limited to 150MB of data or so. If you tried to create a CD bigger than that it would refuse to burn and it would instead open a popup and tell you that the image exceeded the limit of XYZ blocks allowed by the trial version.

So I first decompressed the executable program (Windows executable were often packed at that time [0]), then I opened a binary editor, looked for that specific number in hexadecimal notation in the binary and changed to something much higher. I was than able to burn CDs without limitation.

[0] https://en.wikipedia.org/wiki/Executable_compression

My grandma used to be playing casual games from a certain publisher on her PC. They were all trial versions, though, limited to 30 minutes or so. Turns out, the time left was stored in the registry, and didn’t have any validation – so when a 10 y.o. me made a quick edit, she was left with 4294967295 minutes of trial left.

Hope she knows she still only has 3million trial days left

Grandson was naive to his grandmother's mortality.

Yep – she died a couple years ago.

Hope she enjoys the full version of life better than the trial we live in :’)

I used to patch games for my mom that had a different mechanism but also 30 min of trial. got 5 bucks for each one and mom didn't have to pay 15-30. good times and the easiest money ever

back in the mid to late 90s, I got a trial for compuserve that was a free 2 month trial. I liked it as as they provided dialup PPP access so was able to use it as full time internet access. It wasn't quite "2 months" of access though. It was 1500 hours of access (which in practice > 24*62).

However, their usage accounting software wasn't great. I had it setup to reconnect if the connection dropped, and they didn't do a great job seeing this, so they accused me of using 2-3k hours during those 2 months (should be impossible if always coming from the same #) and sent me a large bill (for the hours used over 1500). They eventually gave in when I showed them it was impossible and they could validate that the calls were coming from the same line due to the connection dropping and being simple reconnections.

Back in the same era, an enterprising young hacker of my acquaintance obtained unmetered access to another of those pay-by-the-hour dialup services by messing with window Z-order. The dialup service's GUI client had a free tech support area; billing stopped once you opened its window, and did not start again until you closed it. The rest of the system was all still there and running as usual - you just couldn't click on any of it while the support-area window was active.

So... this kid whipped up a little bit of code which let you force the topmost window to the back, and proceeded to spend impressive quantities of time online doing apparently nothing in the online service's free support area.

Heh there was some ad supported dial up Internet I found. you were supposed to download their browser and it'd dial in and work normal enough.

I noticed it created a windows dial up connection. When you launched the browser the login info worked on this. I could just dial their server and save the username and password and use any browser or game normally.

Was this NetZero? I kind of recall their CDs would do something similar, launch an Ad supported version of Netscape--but if you just copied the Dial-Up connection it made, you could recreate it without the need for the Browser.

Eventually NetZero forced you to use their own dialer to ensure you kept the ads running… but you could spy on the ppp connection by just opening the COM port of your modem in terminal and watching. The password was encrypted (xor?) but you could just copy and paste the value into a regular dialer lol

you were lucky it was an unsigned var..

otherwise you could have gifted a very nasty trial time of -1 minute! a pretty nice anti-addiction feature :-)

Hahaha. On a second thought I think it was a bit trickier and did some weird math to obfuscate the value (probably something simple, like XOR).

So yeah, my actual fix was to mash buttons until I got a big enough number :D