Cyberdeck on a table

2023 Cyberdeck Challenge: Modular Cyberdeck Creation Kit

We were fortunate to run into [Sp4m] at DEFCON31 and see his Modular Cyberdeck Creation Kit in person. In fact, he was wearing it around the hallways like a rogue decker in search of fellow runners. Holding the unit feels like a serious tool because of its weight, mainly from the battery. Everything hangs from a single-point sling on a metal handle, probably from the cabinetry aisle, and we could move silently and comfortably. The sling is firearm-rated, which is appropriate since he has a printed Weaver rail on top. It just needs a flashlight/laser combo.

[Sp4m] aims to create printable parts that combine any on-hand materials into a usable cyberdeck. In this iteration, he uses a wired Apple keyboard and trackpad he found in the trash, so we have to assume he works in IT. Most of the trackpad is covered, but enough is accessible to scroll and maneuver the mouse, saving almost six inches. The Steam deck is the current head but is removable so that this hardware collection can work for many USB-C tablets without fuss.

The eye-catching white/orange is no accident and may earn it a top spot in the Icebreaker category of the 2023 Cyberdeck Contest. The judges are currently deliberating, so keep an eye out for an announcement about the winners shortly.

Decompiling Sonic Runners

Usually, when you hear about games being decompiled and rebuilt, the games are often decades-old relics, loving and saved from the ravages of time. [MattKC] recently set out to decompile the 2015 game Sonic Runners.

The game was a 2D endless runner released on mobile platforms. Despite getting praise for the gameplay, it received mixed reviews for the pop-up ads and pay-to-play elements. A little over a year later, the game was discontinued. However, the game required a constant online connection, so once the servers were offline, it rendered the over five million downloads unplayable.

A team of developers worked to reverse engineer the server, and with a little bit of binary hacking, the client could be patched to connect to a community-hosted server instead. However, as phones with notched displays came out and suggestions for improvements stacked up, the community realized a new client would bring immense benefits. Compared to many decompilation projects, Sonic Runners was pretty easy as it uses Unity, which means most of the code is in C#. Unfortunately, the build of Unity used by the game is from 2012, meaning many of the tools designed for much later versions of Unity were inoperable.

However, one native code library called UnmanagedProcess was designed to confuse reverse engineering efforts. The library handled AES encryption and communication with the server. Luckily, the library was a later addition, and earlier versions of its functions still lingered in the C# code. Since an open source server already existed, it was trivial to validate the changes. Additionally, all the shaders were in OpenGL Shading Language (GLSL), which meant rewriting them in High-Level Shading Language (HLSL) and checking that they matched the original GLSL when building for Android.

Now the client has new game modes, no ads, and a proper offline mode. The community continues adding new features and refining the game, which is very satisfying. If you’re curious about reverse engineering, [Matthew Alt] can help you get started.

Continue reading “Decompiling Sonic Runners

Liberté, égalité, Fraternité: France Loses Its Marbles On Internet Censorship

Over the years we’ve covered a lot of attempts by relatively clueless governments and politicians to enact think-of-the-children internet censorship or surveillance legislation, but there’s a law from France in the works which we think has the potential to be one of the most sinister we’ve seen yet.

It flew under our radar so we’re grateful to [0x1b5b] for bringing it to our attention, and it concerns a proposal to force browser vendors to incorporate French government censorship and spyware software in their products. We’re sure that most of our readers will understand the implications of this, but for anyone not versed in online privacy and censorship  this is a level of intrusion not even attempted by China in its state surveillance programme. Perhaps most surprisingly in a European country whose people have an often-fractious relationship with their government, very few French citizens seem to be aware of it or what it means.

It’s likely that if they push this law through it will cause significant consternation over the rest of the European continent. We’d expect those European countries with less liberty-focused governments to enthusiastically jump on the bandwagon, and we’d also expect the European hacker community to respond with a plethora of ways for their French cousins to evade the snooping eyes of Paris. We have little confidence in the wisdom of the EU parliament in Brussels when it comes to ill-thought-out laws though, so we hope this doesn’t portend a future dark day for all Europeans. We find it very sad to see in any case, because France on the whole isn’t that kind of place.

Header image: Pierre Blaché CC0.

Random Access Memory From A Rotating Drum In A Bendix G15

When it’s the 1950s and you are tasked to design a computer system that features not only CPU registers but also a certain amount of RAM, you do not have a lot of options. At this point in time, discrete logic was the rule, and magnetic core memory still fairly new and rather expensive. This is where the rotating drum comes in, which is somewhat like a cross between an old-style cylinder record and a hard drive. In a recent [Usagi Electric] video, a 1950s Bendix G15 system is demonstrated, which features such a rotating drum device, alongside both tube-based circuits and newfangled diode-based circuitry.

Simplified diagram of a rotating drum random access memory unit, showing the read-erase-write process as the drum spins.
Simplified diagram of a rotating drum random access memory unit, showing the read-erase-write process as the drum spins.

This particular unit was borrowed from the System Source museum, with the intent to restore it to a working condition. Part of this process involved figuring out the circuitry, which was made easy by the circuit schematic drawings that came with the original machine. According to the official brochure by the manufacturer, the ‘short lines’ that are intended for the CPU registers, the access time was less than 1 millisecond, which is pretty darn fast considering the era and the discrete CPU’s clock speed.

For the drum itself, however, popping the cover off the unit showed that it had suffered some damage that had resulted in the multiple heads contacting the surface. Despite this disappointment, it’s not the end of the restoration, however. The museum has one more Bendix G15 standing around, with a rotating drum unit that looks to be in mint condition. The damaged magnetic coating on the other rotating drum may conceivably be resurfaced, which if successful could provide new hope to a lot of retro systems out there that also use magnetic media, whether in drum or disk format.

Continue reading “Random Access Memory From A Rotating Drum In A Bendix G15”

Where Did Your PCB Go Wrong? KiRI Knows

When working on a PCB design in KiCad, it’s helpful that the files are all text and can easily be checked into Git or other source control. However, stepping back through the revisions to determine where precisely a trace got routed wrong can be tricky. [Leandro] started with a simple script that exported the KiCad project to an image for inspection — over time it grew into a full-blown visual diff tool named KiCad Revision Inspector (KiRI).

The primary mechanism exports the revisions of a KiCad 5, 6, or 7 project to SVG, which can then be compared via a handy onion skin view. As this is a tool written for those using KiCad, shortcuts are a huge part of the experience. A command line interface generates artifacts to view the diff in any web browser. As these outputs have the KiRI tooling baked in, it is relatively easy to archive the output as a build artifact and allow easy access to review design changes.

For the long-time reader, you might remember back in 2018 talked about another diffing tool called plotgitsch (which this KiRI uses for KiCad 5 projects). KiCad has grown significantly in the last five years. It might be time to update our tips to utilize Git better for your PCB designs.

Continue reading “Where Did Your PCB Go Wrong? KiRI Knows”

Debian Buzz (1.1) running under Bochs. (Credit: Thomas Stewart)

Looking Back On 30 Years Of Debian

The early history of Linux is a rather murky period to most, long before the era of glitzy marketing and proclamations of ‘the Linux desktop’ being the next hot thing. This was also the era when the first Linux distributions were born, as the Linux kernel never came as a whole OS package – unlike the BSDs – which necessitated others to package it with the elements that make up kernel and user space, such as the GNU tools.

One of these original distributions was Debian, which this month celebrates its 30th birthday. Its entire history, starting with the initial 0.01 release is covered in great detail on the Debian website. After the first release of the Linux kernel in 1991, it would take until August of 1993 when [Ian Murdock] embarked on the Debian project, sponsored by the GNU Project of the Free Software Foundation. This was a pretty rough period, with much of 1994 spent figuring out the basics of the system, the package manager and establishing a release system. Continue reading “Looking Back On 30 Years Of Debian”

A Mainframe Computer For The Modern Age

The era of mainframe computers and directly programming machines with switches is long past, but plenty of us look back on that era with a certain nostalgia. Getting that close to the hardware and knowing precisely what’s going on is becoming a little bit of a lost art. That’s why [Phil] took it upon himself to build this homage to the mainframe computer of the 70s, which all but disappeared when PCs and microcontrollers took over the scene decades ago.

The machine, known as PlasMa, is not a recreation of any specific computer but instead looks to recreate the feel of computers of this era in a more manageable size. [Phil] built the entire machine from scratch, and it can be programmed directly using toggle switches to input values into registers and memory. Programs can be run or single-stepped, and breakpoints can be set for debugging. The internal workings of the machine, including the program counter, instruction register, accumulator, and work registers, are visible in binary lights. Front panel switches let you control those same items.

The computer also hosts three different microcodes, each providing a unique instruction set. Two are based on computers from Princeton, Toy-A, and Toy-B, used as teaching tools. The third is a more advanced instruction set that allows using things like emulated peripherals, including storage devices. If you want to build one or just follow along as the machine is constructed, programmed, and used, [Phil] has a series of videos demonstrating its functionality, and he’s made everything open-source for those more curious. It’s a great way to get a grasp on the fundamentals of computing, and the only way we could think of to get even more into the inner workings of a machine like this is to build something like a relay computer.

Continue reading “A Mainframe Computer For The Modern Age”