This was a great learning tool to understand how programs actually allocate and use memory. Long before I had taken an architecture class and understood big endian and little endian, I had learned all about it by searching for values in memory. From there you could basically deconstruct the C structs used to handle the memory and then write a pretty simple TSR to cheat the heck out of DOS games. If I recall correctly, at least some of the time I was even able to use it to cheat at APCIDoom - which was a specialized launcher for Doom that let you play four player deathmatches through your local multi-line BBS.
Then it was cracking copy protection. A couple of NOP's and a JMP to the correct place (for the easy ones).
#cracking4newbies on EFnet. +ORC (Old Red Cracker), +Fravia and everyone in +HCU (High Cracking University). Wow.. I remember I used to have dreams.
Then win32 came along, and made everything much more complicated.
Which reminds me...I never figured out that hash-maze but back in the day I thought it was the coolest thing ever. Maybe current-day me will fare better.
I don’t remember a hash maze, all I remember is that I got stuck for weeks on some puzzle related to wiring schematics, and eventually gave up.
+orc and fravia +hcu stuff ate up loads of my free time in the late 90s and definitely helped later on once I got a formal computer science and engineering degree.
Thanks for the memories SoftICE!
So yes, thank you very much for literally changing my life, SoftICE!
Ha ha, yeah me too. It was interesting to see how cracking affected software development too. Paintshop Pro 2(?) was the easiest "Hello, world" crack, but the next version was really difficult. I never got to the bottom of it. Their registration verification code seemed to be littered throughout a load of their initialisation functions instead being the simple `if isValid(userCode) unlock()` it once was.
That said, it would no doubt have been easier to reverse engineer if I could have forward engineered at the time... QBasic wasn't really a good gateway to assembler :-D
I used SoftIce to crack some blowfish licensing scheme of a company that went under.
It was eye opening to be able to pause Windows 95 completely. That sometimes I’d be stepping through code and all of a sudden the code style, memory locations and format all changed because the OS had interrupted and was doing something like painting the mouse.
You got it backwards. The PC version was known as X-COM: UFO Defense in North America and UFO: Enemy Unknown outside North America.
SoftICE was awesome.
Pretty much the intro to cracking software and hacking games for 90s kids.
> I wish I would’ve been knowledgeable to do something more useful than making myself invincible in Mortal Kombat or giving my characters super powers in UFO: Enemy Unknown (aka: X-Com outside North America).
Or maybe you were too busy owning noobs to do anything else.
Enter Soft-ICE. Within a week I found that Soft ICE wouldn't interrupt in the hung state. That started making us suspicious that it might not be just our code.
What do you know -- both test machines (though otherwise completely different) had the same cheap $5 ripoff network card. These were causing the crashes.
Replaced those and the software worked perfectly -- ran 24/7 for 3 years without a hitch. The one time it did stop, was the NetWare stack crashing underneath.
So that's my SoftICE story :)
There was also in-SoftICE tetris.
I used SoftICE extensively from 96-00'-ish ... to the extent that as a teenager I had single-step dreams and dreams where I tried to hit CTRL-D.
wrt everything stopping while using SICE, I remember looking at the windows clock and seeing 02:00AM , and thinking "I'm still on schedule", turning my head and seeing the sunrise from my window. Look at my watch: 06:20AM. Woops!
I was equally impressed with OllyDBG later on, it was more convenient (if less powerful but always seemed like amazing software for just one author.
Can't say I've done any low level debugging or attempts at reverse engineering since long ago though. Most work these days is abstracted so far above these layers you don't have to go down nearly as deep to muck around. Plus as an adult, many tasks these tools are useful for aren't in business interests (outside of security and driver development). It goes to show how much development has sort of shifted in the past 20 years.
>As of April 3, 2006 the DriverStudio product family has been discontinued because of "a variety of technical and business issues as well as general market conditions". Maintenance support was offered until March 31, 2007.
From reading about SoftICE, it seems to have been doing what other debuggers could not. So how could they not find enough customers to keep it going? Does anyone know what actually happened?
SoftIce was one of those "magical software" that made things possible. Before, you would need two computers connected via a serial port to do actual kernel debugging.
When VMWare arrived, SoftIce was becoming less useful, because a virtual machine offers better isolation and you can quickly revert to a previous state. When doing, for example, file system development, trashing a computer would not be rare.
By then, I know my setup was VMWare machines + MSFT WinDbg. Also, I could stop my VM and inspect the VM with a hex editor. Potent combo.
In parallel, during that time, I suspect the cost of developing SoftIce exploded: more updates from MSFT, a lot of security features that would prevent SoftIce from working, new features from the CPU like hardware protection of the RAM, etc.
Last, the most significant user base of SoftIce was broke hackers who would use it to crack protections. Unsurprisingly, those guys didn't have a license.
Awesome product, but makes sense it faded out.
It helped that when I was a teen one of the reasons I got interested in programming, and assembly language, wasn't so much to create new "things", as it was to cheat at games.
The first step was always removing the copy-protection stuff, so you could access the game code. Then you could explore and patch the binaries for infinite lives, health, & etc.
I've still got some printed magazines from the 90s where my POKEs were printed for ZX Spectrum games.
Either way RIP to both of them, I was genuinely shocked when I learned of Fravia's death:
We also used the mono monitor when developing games in the 90s. We were able to display log messages and stats on a separate screen. It was a super useful trick.
edit: The herc being the MDA compatible card that I had to debug on.
Although I heard they stopped the development, a little google -ing found a page with fresh release and win10 support claim, but I have no idea, how the legitimate is it
also there is rewriting project on github, with last commit from 5th June, 2019
Would appreciate to hear any info about current status of Syser
Just FYI, after lurking a bit over the github repo and associated links, found that gihub repo maintainer seems to be a pretty qualified reverse engineer, for example, he made his own independent skype protocol reconstruction
(https://marakew.github.io) and the README.md in gihub repo say, that Syser sources were lost due to the corrupt flash drive, so I guess he was one of the (author?) developers of Syser.
Still would be happy to hear more, if somebody know the full story.
It had a kernel-mode mp3 player so that you could shred software protections while listening to your favorite music (among other cool features of course)
https://qpdownload.com/syser-debugger/ (I am not sure how much is this link legitimate, so please be careful)
I had a problem because a company snuck their encryption scheme into their device driver. No problem with softice, today/now, it might be harder.
As a debugger you could automate everything and catch any error in existence. It made myself hundreds of times more productive.
I maintained a Windows partition just for using it. I used Linux and mac but I usually debuged my programs on SoftIce under Windows. I had to port all my programs to use it. It was that good.
I learned how to use it from a cracking group. It took a long time to be proficient at it, but even to this day lldb or gdb or anything in Windows can't come close of what SoftIce could do.
I've always felt like I have neglected debuggers to my own detriment. Print debugging is just very convenient and once you get in that habit it's hard to stop. On rare occasions where I didn't know where in the code or in the system to start they've always shined.