75 comments
@nil To be fair I'd have probably done the same ... I imagine you did something along the lines of grepping all the binaries for that string and trying to patch them with ghidra (which is what I'd have probably done) @philpem i tried a quick grep for the string in the binaries and couldn't find it, so i instead wrote a shell script that just prints it out. even if i did find it, at this point i wasn't feeling like putting in the effort to hack a binary just for a funny screenshot ok now i'm curious. i'm opening up the program in ghidra, and it turns out there's a check for the future and the past?? and there's debug symbols too, so that's nice... i'll try to clean up the decompilation of validate_system_time and show what it does the majority of this function is just parsing a hardcoded string ("Mar 1 2004") to convert it to year, month, and date integers. this isn't the future limit date, btw. the program also checks if the date is too far in the *past*. looks like the hardcoded last allowed time you can run this program is midnight on December 31, 2009 so if it makes anyone feel better i just got the actual real code to print out the message. i had to nop out everything before the time validation function so it would run (the sunpci hardware isn't emulated on qemu), but indeed this program does check the date and exit if it's too far in the future @nil what point in time does Solaris consider to be too far into the future?
@nil I think I ran into the past check back in the day, because the system came up with epoch as boot time, or something like that. @nil there is this project. Called NsCDE: https://github.com/NsCDE/Nscde I like it. #nscde #unixporn @nil holy shit now _that_ is a warning message! does it use the time despite not believing it? as in, does it behave correctly? @moira this is an edited screenshot since the program (SunPCi) depends on hardware that as far as i know isn't emulated yet. but from what i know, the program will refuse to run in this situation @nil @moira many thanks for looking into this. I won't be able to try it soon, but when I do and run into this, I'll be sure to reach out!! You seem to be using the program for the SunPCi III whereas I have a SunPCi II. Possibly they are different. I still had the Ultra 5 on my desk in 2010-2011, so possibly the check isn't in that version or I indeed didn't boot up the card after 2009. There is relatively little point in emulating that card btw. (A 2nd QEMU x86 instance will help more.) @jschwart @moira for sure, i only emulated it since i wanted to get this error message and don't have a sun workstation of my own, let alone a SunPCi. if i wanted to run old x86 software i'd use 86Box or DOSBox. but it would be nice for the sake of preservation, if really impractical, if someone could implement an emulator for the SunPCi. @timjclevenger @jschwart @moira maybe it's something they added later on, then... i can't think of why they would, if it works just fine without the date check @timjclevenger @jschwart @nil @moira This check seems to only have been present in the 3.x versions for the SunPCI 2 and 2+ cards. Apparently there was a patch published in Jan 2010 that removes that check, but the old SunSolve patch repos are long gone, thanks to Oracle. @moira it's exactly what the program would look like if you ran it, as i was able to hack the program to bypass other checks and jump right to the date check @nil congrats, you just inspired this lmao: https://forge.katzen.cafe/katzen-cafe/iowo/commit/d9ef86387d4dd129e51111d7f984d84f9d922ba6 anyway, may I also include a screenshot of this in the source tree for potential far future reference? @nil More proof that there's no such thing as test code; all code is production code. You never know if your "hack" will be running on a computer/VM/nuclear reactor/starship/tardis at some unknown date in the future (or the past). Though with some systems, you can be reasonably sure you're that the time is always somewhere between 1970 and 2038 π @nil Never hat this message, but reminds me of my good old pal end of the 90s. After too many years with DOS and WIN Iβve been proud running my Sparc Workstation to manage a set of Sun and Linux servers. As far as I'm concerned, the time has stopped in early 2020 and hasn't resumed yet. @nil Planned obsolescence ... This workstation was not meant to be used for so long ... @nil #WhatIfItoldYou that I know some #Solaris 7 Systems that are still up and running in production? - Sadly I can't tell you where exactpy, but the company that does have them pays very well for anyone able and willing to upkeep those. @drscriptt @nil it's not wrong... - I'll just not violate NDAs though... So sorry to not feed your curiousity m8... @kkarhan @nil I once got an offer to maintain some software running on Solaris 9 systems. @dmbaturin @nil yeah, #Oracle ruined #OpemSolaris... - #Illumos as successor prokect hosever seems to still be up and running tho. And yes, you ain't the only ones disappointed. - Been at places that did #HPC computing for #science and they were originally like #Sun fanboys who still had millions in #SPARC & #Solaris invested until Oracle backstabbed them. Nowadays they run #Linux... @kkarhan @dmbaturin @nil $dayjob migrated desktops from Solaris thin desktops to Linux about 1-2 years ago. Still a few Solaris machines in the background I think, though not sure how many left. @dmbaturin @kkarhan @nil We are always looking for contributors, hit me up when you need help I am a maintainer with OpenIndiana. What package would you like to do? now im feeling old :thisisfine: the last time on Solaris was 2010 .... to shutdown the system 4 ever @nil Hi there, howβre you doing today? I hope youβre good though. Your name sounds familiar can you send me a dm? @nil This proofs that programmers often have "great" ideas that simply are bullshit. @nil that might explain why the Los Angeles Police Department systems shut down because their systems won't work beyond 2024... |
i spent hours trying to get this program to run for the bit and then gave up and just faked it with a shell script. why am i like this :)
edit: i did a bit of hacking to bypass parts of the code that weren't working in the emulator, and confirmed that the program will behave exactly like the screenshot: https://furry.engineer/@nil/113755546111532838