Browsed by
Category: Technical

Blue-screen Windows on purpose

Blue-screen Windows on purpose

I wrote awhile back on how to crash Linux/cause a Linux kernel panic in order to test how your program can handle a crash – but can you cause a Windows blue-screen programmatically?

Raymond Chen of the New Old Thing describes a variety of methods to crash Windows purposefully. He also cautions against ad-hoc methods like killing winlogin.

Methods you can use to cause a Windows Blue-screen:

  1. Windows allows you to configure a specific keyboard combination to cause a crash. You set some registry keys and then can crash a system by holding right CTRL then pressing scroll lock key twice. You can also customize the key sequence via registering custom keyboard scan codes. If you have a kernel debugger attached it will trigger the kernel debugger after the crash dump is written.
  2. The best way to trigger an artificial kernel crash is to use NotMyFault, which is part of the Microsoft Windows SysInternals tools.
nVidia’s CPU stacks up respectably against the AMD Threadripper 7980X

nVidia’s CPU stacks up respectably against the AMD Threadripper 7980X

More eyes are nVidia’s GH200 Grace Superchip. The GH200 Superchip is the combination of a Grace CPU and a Hopper-based H200 GPU. While the results aren’t definitive, they should raise eyebrows.

In 39 individual Linux-based benchmark tests, Grace (the CPU side) beat the AMD Threadripper 7980X in 17 tests and the 7995WX in 15. It even stacks up well against Intel Sapphire Rapids.

Sapphire Rapids and Threadripper enjoy many advantages. Far more apps are optimized for x86 than for Arm. Threadripper has much more aggressive clock speeds than the efficiency-focused Grace chip and far more L3 cache (7980X has more than double, and the 7995WX more than triple).

But raw performance may not be the only consideration. There is speculation that Grace Hopper is more energy efficient – but there is no real data on TDP outside the whole package requirement of 500w. Also, for tasks that are more GPU bound than CPU bound, the combination may provide higher effective processing power than a faster CPU paired with a discrete GPU. Time will tell.

It shows that nVidia’s Grace entry is not to be ignored. Paired with the Hopper GPUs, it might offer a very viable alternative to x86 stacks – if your software can run on Arm.

Links:

Reconstructing a binary GameBoy game just from the sound of it dying

Reconstructing a binary GameBoy game just from the sound of it dying

ZZAZZGlitch has successfully reverse-engineered a Game Boy Advance game’s data solely from the sound made when a GBA game experiences a hard crash. The per-game crash ‘songs’ that happen when a GBA game crashes actually contains the entire cartridge’s ROM data and every sound in the game played back in raw audio in sequential order. In theory, with the correct tools and know-how, any GBA game should be recoverable from recording that audio.

ZZAZZGlitch shows us how in his video. Wow. He even made the source code is available on his personal site, labeled “gbacrashsound_dumper.zip”. It still took a LOT of hacking and manual fix-ups; but he got a bootable game in the end.

Reminds me of the guy that tried to reconstruct the Yars Revenge source from the explosions shown onscreen.

Demo scenes are not dead

Demo scenes are not dead

Massive in the 90’s, Demoscenes are not dead. Revision 2024 demo party just took place March 29th to April 1st in Saarbrücken Germany.

There was music, seminars, videos, livestreams, a 5k run, and of course – amazing code demos. This included some competing 256-byte demos here. One of the best was a post-apocalyptic black-and-white city created with just 256 bytes of Gopher code running on DOS.

Don’t pay for a VPN, make your own

Don’t pay for a VPN, make your own

There’s been some trouble lately in which free VPN services have been collecting and selling your data. Others have had major leaks or hacks (such as the new TunnelVision attack). So why not set up your own VPN and avoid those issues?

A few important reminders. VPN’s do not make you anonymous. They only create a secure pipe between you and that server. From that point on, your traffic can be collected and used – and many free VPN services do exactly that. Anonymity comes only if you use things like the TOR network.

But instead of paying a VPN service fee or potentially having your data collected and sold, you might set up your own VPN server on a Rasberry Pi.

  1. Create an account on a cloud hosting provider like DigitalOcean
  2. Download Algo VPN on your local computer, unzip it
  3. Install the dependencies with the command lines on this page
  4. Run the installation wizard
  5. Double click on the configuration profiles in the configs directory

It’s important to note that there are some limitations. This setup is good if you need a secure connection from where you are to the location of the server (ex: You’re in China and need access to US services that are blocked). Again, this doesn’t make you anonymous as your data exits the VPN and becomes public again.

Paid VPN services also often offer servers in different countries so you can spoof being in specific countries. This will not do that unless you have paid for hosting in those countries.

Articles:

DREM – MFM/RLL hard drive and Floppy emulators

DREM – MFM/RLL hard drive and Floppy emulators

Connecting old floppy disk drives to modern hardware is not easy. Resurrecting old MFM and RLL hard drives is even harder. The primary method would simply be to get an old PC with the legacy hardware to read the hard drives. But now there’s a few soltuions.

DREM:

DREM is based on the high performance FPGA platform and does not require the use of a PC for any file encoding operations. DREM is equipped with an VGA output, PS/2 keyboard input and file manager software. A user can browse the SD card and insert DSK images into virtual drives.

DREM uses DSK disk image files, which contain the raw dump of a disk. The raw image consists of a sector-by-sector binary copy of the source medium.

If you’re just looking for floppy emulation, I recommend GreaseWeazle or other solutions.

https://www.drem.info/drem

MFM Board Emulator:

Also available, but doesn’t seem quite as well baked, is the pdp8online MFM board emulator.

Holodeck flooring

Holodeck flooring

Lanny Smoot is a Disney Research Fellow that is being inducted into the National Inventors Hall of Fame.

Here he is showing off his holo-tile floor that allows multiple people to walk on it in any direction and it automatically keeps you centered on the floor. Definitely something that could be used for VR.

Admitting your mistakes

Admitting your mistakes

Speaking at QCon back in 2009, Tony Hoare admitted to probably one of the biggest mistakes of his career – one that every programmer knows all too well. The invention of NULL because ‘it was so easy to implement’.

I call it my billion-dollar mistake. It was the invention of the null reference in 1965.

At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.

Extracting Bitlocker keys in just a few seconds

Extracting Bitlocker keys in just a few seconds

Stacksmashing demonstrates that the communication between the CPU and TPM is unencrypted and can be snooped by attaching wires to the traces between them. This is not new, but now has all the source/board design to make it easier – on old systems with a long known security flaw of exposed traces.

This isn’t really new info. It requires numerous things to be right: physical access to the device and non-integrated TPM with a design flaw. Modern CPUs don’t have this easily exploitable design given the TPM is integrated into the die now. This was somewhat common in early days. At one point just connecting a firewire cable into a Mac let you read the encryption keys out of memory from a sleeping or running Apple.

Additionally, Bitlocker using TPM without pin was cracked years ago using fairly common electronic components. Any secure Bitlocker deployment has long been understood to be using TPM and a pin.

A reminder that security is only as good as its weakest link

Links:

  • https://www.tomshardware.com/pc-components/cpus/youtuber-breaks-bitlocker-encryption-in-less-than-43-seconds-with-sub-dollar10-raspberry-pi-pico
  • https://www.zdnet.com/article/new-bitlocker-attack-puts-laptops-storing-sensitive-data-at-risk/
  • https://github.com/stacksmashing/pico-tpmsniffer
Reverse engineering game code from Yar’s Revenge explosion

Reverse engineering game code from Yar’s Revenge explosion

It’s long been known that the graphical explosions and safe zone graphical glitchy area in Yars Revenge was the game binary code. Retro Game Mechanics Explained wondered if it was possible to reverse-engineer what the code was from this display.

He does an AMAZING job analyzing and dissecting the graphical patterns to determine not only how it works, but what the underlying code might have been.

It’s a wonderful bit of reverse engineering and definitely worth a watch.