Laptop Motherboard? No, X86 Single-Board Computer!

Sometimes a Raspberry Pi will not cut it – especially nowadays, when the prices are high and the in-stock amounts are low. But if you look in your closet, you might find a decently-specced laptop with a broken screen or faulty hinges. Or perhaps someone you know is looking to get rid of a decent laptop with a shattered case. Electronics recycling or eBay, chances are you can score a laptop with at least some life left in it.

Let’s hack! I’d like to show you how a used laptop motherboard could be the heart of your project, and walk you through some specifics you will want to know.

And what a great deal it could be for your next project! Laptop motherboards can help bring a wide variety of your Linux- and Windows-powered projects to life, in a way that even NUCs and specialized SBCs often can’t do. They’re way cheaper, way more diverse, and basically omnipresent. The CPU can pack a punch, and as a rule PCIe, USB3, and SATA ports are easily accessible with no nonsense like USB-throttled Ethernet ports.

Continue reading “Laptop Motherboard? No, X86 Single-Board Computer!”

Hackaday Links Column Banner

Hackaday Links: February 26, 2023

It’s probably safe to say that most of us have had enough of the Great Balloon Follies to last the rest of 2023 and well beyond. It’s been a week or two since anything untoward was spotted over the US and subsequently blasted into shrapnel, at least that we know of, so we can probably put this whole thing behind us.

But as a parting gift, we present what has to be the best selfie of the year — a photo by the pilot of a U-2 spy plane of the balloon that started it all. Assuming no manipulation or trickery, the photo is remarkable; not only does it capture the U-2 pilot doing a high-altitude flyby of the balloon, but it shows the shadow cast by the spy plane on the surface of the balloon.

The photo also illustrates the enormity of this thing; someone with better math skills than us could probably figure out the exact size of the balloon from the apparent size of the U-2 shadow, in fact.

Continue reading “Hackaday Links: February 26, 2023”

Hackaday Podcast 207: Modular Furniture, Plastic Prosthetics, And Your Data On YouTube

Join Editor-in-Chief Elliot Williams and Managing Editor Tom Nardi as they explore the best and most interesting stories from the last week. The top story if of course the possibility that at least some of the unidentified flying objects the US Air Force valiantly shot down were in fact the work of amateur radio enthusiasts, but a quantitative comparison of NASA’s SLS mega-rocket to that of popular breakfast cereals is certainly worth a mention as well.

Afterwards the discussion will range from modular home furnishings to the possibility of using YouTube (or maybe VHS tapes) to backup your data and AI-generated Pong. Also up for debate are cheap CO2 monitors which may or may not be CO2 monitors, prosthetic limbs made from locally recycled plastic, and an answer to Jenny’s Linux audio challenge from earlier this month.

Check out the links below if you want to follow along, and as always, tell us what you think about this episode in the comments!

Download it your own bad self!

Continue reading “Hackaday Podcast 207: Modular Furniture, Plastic Prosthetics, And Your Data On YouTube”

Linux Fu: Sharing Your Single WiFi

If you are trying to build a router or access point, you’ll need to dig into some of the details of networking that are normally hidden from you. But, for a normal WiFi connection, things mostly just work, even though that hasn’t always been the case. However, I ran into a special case the other day where I needed a little custom networking, and then I found a great answer to automate the whole process. It all comes down to hotel WiFi. How can you make your Linux laptop connect to a public WiFi spot and then rebroadcast it as a private WiFI network? In particular, I wanted to connect an older Chromecast to the network.

Hotel WiFi used to be expensive, but now, generally, it is free. There was a time when I carried a dedicated little box that could take a wired or wireless network and broadcast its own WiFi signal. These were actually fairly common, but you had to be careful as some would only broadcast a wired network connection. It was more difficult to make the wireless network share as a new wireless network, but some little travel routers could do it. Alternatively, you could install one of the open router firmware systems and set it up. But lately, I haven’t been carrying anything like that. With free WiFi, you can just connect your different devices directly to the network. But then there’s the Chromecast and the dreaded hotel login.

Continue reading “Linux Fu: Sharing Your Single WiFi”

All About USB-C: Replying Low-Level PD

Last time, we configured the FUSB302 to receive USB PD messages, and successfully received a “capability advertisement” message from a USB-C PSU. Now we crack the PD specification open, parse the message, and then craft a reply that makes the PSU give us the highest voltage available.

How did the buffer contents look, again?

>>> b
b'\xe0\xa1a,\x91\x01\x08,\xd1\x02\x00\x13\xc1\x03\x00\xdc\xb0\x04\x00\xa5@\x06\x00<!\xdc\xc0H\xc6\xe7\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

The zeroes at the end might look non-significant, and they indeed are not with 99.99% certainty – that said, don’t just discard the entire tail end; one of the bytes in the beginning encodes the length of the message. We’ll read those bytes first, and then read only exactly as much as we need, making sure we aren’t reading two messages and interpreting it as one, and that we’re not discarding zeroes that are part of the message.

Today, we will write code that parses messages right after reading them from the FIFO buffer – however, keep this message handy for reference, still; and if you don’t have the hardware, you can use it to try your hand at decoding nevertheless. If you wanna jump in, you can find today’s full code here!

Continue reading “All About USB-C: Replying Low-Level PD”

Retro Gadgets: Make Your Scope Dual Channel

We live in a time when having an oscilloscope is only a minor luxury. But for many decades, a good scope was a major expense, and almost no hobbyist had a brand new one unless it was of very poor quality. Scopes were big and heavy and, at the price most people were willing to pay, only had a single channel. Granted, having one channel is better than having nothing. But if the relative benefit of having a single channel scope is 10 points, the benefit of having two channels is easily at least 100 points. So what was a poor hacker to do when a dual-trace or higher scope cost too much? Why, hack, of course. There were many designs that would convert a single trace scope into a poor-quality multichannel scope. Heathkit made several of these over the years like the ID-22, the ID-101, and the ID-4101. They called them “electronic switches.” The S-2 and S-3 were even earlier models, but the idea wasn’t unique to Heathkit and had been around for some time.

For $25, you could change your scope to dual trace!

There were two common approaches. With alternative or alt mode, you could trigger a sync pulse and draw one trace. Then trigger again and draw the second trace with a fixed voltage offset. If you do this fast enough, it looks like there are two traces on the screen at one time. The other way is to rapidly switch between voltages during the sweep and use the scope’s Z input to blank the trace when it is between signals. This requires a Z input, of course, and a fast switching clock. This is sometimes called “chopper mode” or, simply, chop. This wasn’t just the realm of adapters, though. Even “real” analog scopes that did dual channels used the same methods, although generally with the benefit of being integrated with the scope’s electronics.

Continue reading “Retro Gadgets: Make Your Scope Dual Channel”

SUPERCON 2022: Kuba Tyszko Cracks Encrypted Software

[Kuba Tyszko] like many of us, has been hacking things from a young age. An early attempt at hacking around with grandpa’s tractor might have been swiftly quashed by his father, but likely this was not the last such incident. With a more recent interest in cracking encrypted applications, [Kuba] gives us some insights into some of the tools at your disposal for reading out the encrypted secrets of applications that have something worth hiding.  (Slides here, PDF.)

There may be all sorts of reasons for such applications to have an encrypted portion, and that’s not really the focus. One such application that [Kuba] describes was a pre-trained machine-learning model written in the R scripting language. If you’re not familiar with R, it is commonly used for ‘data science’ type tasks and has a big fan base. It’s worth checking out. Anyway, the application binary took two command line arguments, one was the encrypted blob of the model, and the second was the path to the test data set for model verification.

The first thing [Kuba] suggests is to disable network access, just in case the application wants to ‘dial home.’ We don’t want that. The application was intended for Linux, so the first port of call was to see what libraries it was linked against using the ldd command. This indicated that it was linked against OpenSSL, so that was a likely candidate for encryption support. Next up, running objdump gave some clues as to the various components of the binary. It was determined that it was doing something with 256-bit AES encryption. Now after applying a little experience (or educated guesswork, if you prefer), the likely scenario is that the binary yanks the private key from somewhere within itself reads the encrypted blob file, and passes this over to libssl. Then the plaintext R script is passed off to the R runtime, the model executes against the test data, and results are collated.

[Kuba]’s first attack method was to grab the OpenSSL source code and drop in some strategic printf() function calls into the target functions. Next, using the LD_PRELOAD ‘trick’ the standard system OpenSSL library was substituted with the ‘fake’ version with the trojan printfs. The result of this was the decryption function gleefully sending the plaintext R script direct to the terminal. No need to even locate the private key!

Continue reading “SUPERCON 2022: Kuba Tyszko Cracks Encrypted Software”