Windows security problems due to insecure drivers is nothing new, but this one is kinda special. Plug in a Razer mouse, tell the install dialog you want to install to a non-standard location, and then shift+right click the Explorer window. Choose a powershell, and boom, you now have a SYSTEM shell. It’s not as impressive as an RCE, and it requires hands-on the machine, but it’s beautiful due to the simplicity of it.
The problem is a compound one. First, Windows 10 and 11 automatically downloads and starts the install of Razer Synapse when a Razer device is plugged in. Note it’s not just Razer, any branded app that auto installs like this is possibly vulnerable in the same way. The installation process runs as system, and because it was started automatically, there is no admin account required. The second half of the issue is that the installer itself doesn’t take any precautions to prevent a user from spawning additional processes. There isn’t an obvious way to prevent the launch of Powershell from within the FolderPicker class, so an installer running as SYSTEM would have to go out of its way to drop privileges, to make this a safe process. The real solution is for Microsoft to say no to GUI installers bundled with WHQL signed drivers. Continue reading “This Week In Security: Through The Mouse Hole, Zoom RCE, And Defeating Defender”→
If you’ve got a collection of classic game consoles, finding the space to set them all up can be a challenge. But the bigger problem is figuring out how to hook them all up to a TV that, at best, might only have two or three inputs. [odelot] recently wrote in to tell us how he solved both problems with his voice-controlled wall of gaming history.
To mount the systems to the wall, [odelot] designed and printed angled brackets that attach to specially shaped pieces of 3 mm MDF. They do a pretty good job of holding the systems at a visually interesting angle while making themselves scarce, with only the notoriously slick-bottomed Wii needing some extra clips on the front to keep it from sliding off. He also printed up a series of blocks and pipes, no doubt a reference to Mario Bros., to hold the power and video cables for each system.
As to connecting them all up to his TV, [odelot] picked up an eight-device Extron VGA switch that features a serial port for remote control. After getting all the systems adapted over to the appropriate video standard, he then wired an ESP8266 to the switch and wrote some code that ties it into Amazon’s Alexa voice assistant.
By just saying the name of the system he wants to play, the microcontroller will flick the switch over to the appropriate input and turn on a ring of blue LEDs under the appropriate shelf to signify which console has been selected. There’s even an array of solid state relays that will eventually control the mains power going to each system, though [odelot] hasn’t fully implemented it yet. Currently the electronics for this project live on a fairly packed breadboard, but it looks like he’s in the early stages of designing a proper PCB to clean it all up.
Theoretically, ambisonic microphones allow you to perfectly encode the soundscape around you and recreate it from the focal point of any direction. To do this, you need at least four microphone capsules and some math. Ambisonic microphones have been around for 50 years, but [DJJules] wanted to bring ease of use to these tools and push them into the open source fold.
As you’ll see in the video below, there were a few iterations before this one. Everything changed for the better when [DJJules] found out about TSB25905 capsules. These are electret condenser mics with 1″ diaphragms and built-in EMI/RFI-suppressing capacitors. Another big help was deciding to color code everything from the XLR cable boots to the cable sleeves to the electrical tape that’s protecting each of the P48 resistor-capacitor pairs inside the XLR plugs.
[DJJules]’ buddy [Tom] designed and printed a single piece that holds the four capsules in a perfect tetrahedral array, and an elegant two-piece basket that protects the mics and provides a base for a one of those furry windscreens. The mics and the basket are separated with four silicone plugs designed for quadcopters that provide both isolation and vibration dampening.
If you want to make one of these yourself, [DJJules] has STLs for both a normal microphone stand and another for GoPro mounts. Check out the build video after the break and the sound demos on Instructables.
Being able to track down a bug in a mountain of source code is a skill in its own right, and it’s a hard skill to learn from a book or online tutorial. Besides the trial-by-fire of learning while debugging your own project, the next best thing is to observe someone else’s process. [Uri Shaked] has given us a great opportunity to brush up on our debugging skills, as he demonstrates how to track down and squish a bug in the Wokwi Arduino simulator.
A user was kind enough to report the bug and include the offending Arduino sketch. [Uri]’s first step was to reduce the sketch to the smallest possible program that would still produce the bug.
Once a minimal program had been produced, it was time to check whether the problem was in one of the Arduino libraries or in the Wokwi simulator. [Uri] compiled the sketch, loaded it onto a ATtiny85, and compared the behavior of the simulator and the real thing. It turns out the code ran just fine on a physical ATtiny, so the problem must have been in the Arduino simulator itself.
To track down the bug in the simulator, [Uri] decided to break out the big gun—GDB. What follows is an excellent demonstration of how to use GDB to isolate a problem by examining the source code and using breakpoints and print statements. In the end, [Uri] managed to isolate the problem to a mis-placed bit in the simulation of the timer/counter interrupt flag register.
3D printing has made it incredibly easy to produce small runs of plastic parts, but getting rid of the 3D printed look can be tricky and time-consuming. When you need a smooth and polished finish, or you want to make exact copies of an existing injection molded part, casting resin parts in silicone molds is an excellent option. [Eric Strebel] has plenty of experience with the process, and demonstrates it in detail while creating copies of violin chin rests that are no longer in production. It’s an interesting application, where 3D-printed layer lines are not just an aesthetic issue, but something that would irritate the user’s skin if present.
Creating silicone molds requires a bit of forethought about the mold design. You want to select the split line to make it as easy as possible to remove the finished parts, while also placing the resin pouring sprue and vents to prevent air bubbles from getting trapped in the mold. In [Erics] case, it’s impossible to use a simple planar split line, so he mounts the master part on a block of wood and uses cardboard and modeling clay to create a volume where the second side of the mold will protrude in the first side. It’s important to note that sulfur-free clay must be used, otherwise the silicone might not cure.
One side of the silicon mold is cast first, and after curing it is placed back in the mold box with the master part to allow casting the other side of the mold. At this point [Eric] super glues the sprue-former and vent rods to the master parts before molding the second side. A release agent consisting of petroleum jelly and naphtha is added wherever the two sides of the mold will touch, to prevent them from sticking together.
Bubbles are your enemy while resin casting, so ideally you need a vacuum chamber to degas the silicone and resin before casting, and a pressure chamber to allow the resin part to cure. While pouring the silicone for the molds, the mold box is placed on a vibration table to allow any bubbles to rise to the surface. While the entire mold-making and molding process is time-consuming, the copied parts are almost indistinguishable from the original.
[Eric] has also shown us how to make much larger silicone molds in the past. If you find yourself making lots of different-sized mold boxes, it might be worth building an adjustable mold box.
While the pace of technology continues to advance at breakneck speed, certain things in the past are left behind largely subject to the whims of nostalgia. Televisions, for example, are lighter, cheaper, and bigger than they were in the early 90s, but they did have a certain design aesthetic that doesn’t exist anymore. Meanwhile, Simpsons episodes have been (arguably) on the decline since the golden age of the 90s, so [buba447] decided to combine these two facets of a nostalgic past into a custom TV that only plays these older Simpsons episodes.
The TV is 3D printed but takes design cues from CRT-based technology from decades past. It even has working knobs emblematic of that era as well. Inside the “television” is a Raspberry Pi which is hooked up to a small screen. The Pi powers up and automatically starts playing Simpsons episodes once it boots. There is a power button at the top of the TV which mutes the sound and also turns off the display. As an added touch, the display outputs in 640×480 resolution, which is also somewhat historically accurate, even if the TV itself is much smaller than its ancient relatives.
Of course, the TV only plays episodes from The Simpson’s first eleven seasons, which includes all of the episodes of The Simpson’s golden era (and a few extra) and omits those episodes from the modern era, which will please certain Simpsons fans as well. This actually isn’t the first time we’ve seen a 24 hour Simpsons device. This Pi-based build serves up Simpsons episodes nonstop as well, but sends them out over the airwaves instead.
In 2019 [Simen] and [Amud], two students from the University of Oslo, set out to design a unique open-source display. The result was Fetch, a display that uses electromagnets to suspend ferrofluid on 252 “pixels” across the screen. After some delays due to COVID, they have recently unveiled version 2.0 of the display on their project’s page.
While the duo managed to overcome the mechanical challenges associated with using ferrofluids fairly easily, they were quickly bottlenecked by their electronics. The use of electromagnets holding up a liquid presented a unique challenge; the magnets could not be switched off, even for a millisecond, or else the “pixel” would fall down to the bottom of the screen. That immediately ruled out any sort of multiplexing and meant everything would have to be driven in parallel. As if that wasn’t already difficult enough to work around, the effect of having multiple electromagnets activated next to each other would change how the ferrofluid flows. This meant that the strength of each electromagnet would have to be adjusted based on what is currently being displayed, rather than just being on or off.
The mess of connections were not helped with the layout of the old driver boards shown here. The new design puts the connections closer to each individual electromagnet.
All of this, paired with other overhead like generating pulse-width modulation for the inputs, was just too much for a single microcontroller to handle. So, the pair set out to design a better version of their electronics that would offload a lot of the hard work. At the same time, they decided a bit of mechanical optimization was in order; they redesigned the boards to be longer and thinner, allowing them to fit cleanly behind the row of electromagnets they controlled.
The new boards feature a PCA9685 IC, which allows for the control of up to 16 channels of 12-bit PWM over i2C, perfect for the size of the display. Since this IC can’t source enough current to drive the electromagnets, it was paired with a ULN2803 Darlington Transistor Array, capable of delivering up to 500mA to each electromagnet.
With prototypes in hand (and a few bodge wires here and there), [Simen] and [Amud] had the new driver boards running beautifully, displaying text in a mesmerizing way that no ordinary display could match. Watch the video after the break for a demonstration of the new controllers in action, as well as a deeper dive into the process of developing them.