May 2026 update 
 This post was written at a time of significant turmoil in my life, when multiple correlated events happened in quick succession. What I wrote in the post below is true, but a lot was left unsaid, as some things were still being investigated. 
 At the time when I wrote the post, despite resigning from my leadership position, I had hoped to eventually recover from my…
Preface 
 I’m a big fan of Prometheus and
 Grafana . As a former SRE at Google I’ve learned to
appreciate good monitoring, and this combination has been a winner for me
over the past year. I’m using them for monitoring my personal servers (both
black-box and white-box monitoring), for the
 Euskal Encounter external and internal event infra,
for work I…
Hello! I’m Hector Martin and like to go by the nickname “marcan”. I
currently live in Tokyo, Japan as an IT/security consultant by day and a
hacker by night. For some definition of day and night, anyway. 
 If you need to contact me, your best bet is to e-mail me at
 marcan@marcan.st . 
 If you’re an IRC user, I tend to idle as “marcan” on the OFTC…
The Korg Kronos is an interesting
beast. Korg’s flagship synth, it’s marketed as a music workstation, but under
the hood it’s actually built on a commodity x86 motherboard and some custom I/O
hardware. And it runs Linux. 
 That’s just asking to be hacked, isn’t it? :-) 
 I’ve owned one of these for a few years, and at one point did some…

**Update**: I wrote a [new tool](https://github.com/marcan/lsirec) that lets you
do most of this process from Linux, without rebooting and without needing any
UEFI or DOS tools, which should work for any LSI SAS2008 card regardless of
vendor and let you crossflash to any firmware.
 
 I own a Fujitsu Primergy server (hosted at a secret location ;-) ) that I use
for…
A lot has been written about the Apple vs. FBI saga. However, the truth about
exactly what it all means from a technical standpoint is scattered among many
sources, amidst quite a bit of misinformation. This post is my attempt to
provide, in a question and answer format, what I consider to be the current
knowledge of the state of affairs, from the perspective of a security…
Yesterday, early morning, I
was working on a friend’s Windows PC. The plan was simple: migrate the Windows
install from an HDD partition to a smaller SSD by freeing up space, running
 ntfsresize 
to shrink the partition down to something that fits on the SSD, and then dd -ing
it over. I figured ntfsresize would be pretty safe and well-tested, since it’s
used by…
To say that my blog was gathering dust would be a bit of an understatement;
the post before this one was written over 2 years ago. 
 Part of the reason for the lack of updates has undoubtedly been laziness, but
part of it was also that I’m not a huge fan of WordPress. Over the past few
years I have been using static site generators like Hyde 
on other sites, and in…
Euskal Encounter 
is Spain’s largest and oldest demoparty and LAN party. I have been an attendee
since 2005, and part of the official volunteer event staff since 2011. 
 The same organizing team also hosts two other smaller events:
 Gipuzkoa Encounter and
 Araba Encounter . At all three events I am the
coordinator of the Free Software area and the chief BOFH of the…
These are projects that I once started or significantly contributed to, but
which these days are maintained by others. You may have been redirected from an
obsolete page to here. 
 usbmuxd 
 I wrote the first Linux version of usbmuxd, a daemon that handles communications
with iOS devices and which these days is installed on most desktop Ubuntu
systems by default. These…

 BlitzLoop is an open source karaoke system inspired by Japanese karaoke
machines. It uses a custom song format and supports multiple lyrics display
styles, background videos, real-time audio stretching and pitch shifting,
and also handles microphone echo. It is written in Python and Cython and
uses OpenGL graphics on the host box, while the UI is remotely accessed
through…

Check out the main OpenLase page [here](/projects/openlase/).
 
 Jeffrey Nelson just let me know about an awesome project that he put together:
 LaserShark ! Instead
of using OpenLase with the hacky sound card output, he put together a proper
open DAC board based around an LPC1343 Cortex-M3 microcontroller. I haven’t had
a chance to see it in action yet, but…

Check out the main OpenLase page [here](/projects/openlase/).
 
 I apologize for taking this long to post this! I’ve been busy non-stop since
27c3 and never got a chance to get around to it. Finally, though, here it is:
the description of the Mark 1 laser projector 
that I use with OpenLase. 
 But wait, there’s more! If you don’t have the hardware and…
OpenLase is designed to work with typical DIY laser scanners that use sound
cards as DACs. This is the first laser projector that I built to go along with
it. It is by no means perfect, and indeed, quite a few things could be improved.
It’s relatively simple though, and it should be straightforward to duplicate. 
 Overall view 
 
 Overall view 
 
 
 There…
Ah, the world of computers. Thanks to the wonderful world of bits and bytes, we can experiment with any application, file, driver, or even the core operating system. Rip them apart, change things, put them together, and if it doesn’t work, just try again. At worst, you’ll have to wipe your hard drive and start over. If you somehow manage to destroy a computer purely through bad…
As you probably already know, libgpod has included support for Apple’s iOS 2.x hash for a while now. With their new devices, Apple changed the hash again, but for some reason the change only applies to new devices – old devices running iOS 4.x still work. However, if you have a new device (iPad, iPhone 4, or iPod touch 4G), music sync does not work. 
 If your device is not jailbroken,…

Check out the main OpenLase page [here](/projects/openlase/).
 
 First of all, as I’m sure everyone knows by now, I’ve been working on hacking the Kinect and writing open drivers for it. There’s a website for the community and a Git repo with the code, and it’s working fairly nicely by now. 
 With that out of the way, here’s a project that I’ve…
As most of you will probably already know, I’ve been working on a project recently which aims to run Linux on the PS3 ( including the PS3 Slim ) using the PSJailbreak exploit, effectively replacing GameOS on the fly. I think it’s gotten to the point where it’s useful enough for other people to be interested, so here’s something resembling an official announcement. 
…

These days, if you want to do something like this, you should check out
[libeatmydata](https://www.flamingspork.com/projects/libeatmydata/).
 
 Linux has a tweakable knob called laptop_mode which is meant as an energy saving tool for laptop users on battery: it basically says “try not to touch the disk for X minutes at a time, unless you really need to, and once you do, do…

I no longer use an iPhone nor am I an active developer of usbmuxd. If you're
interested in the current state of affairs, check out the
[libimobiledevice](https://github.com/libimobiledevice) repositories, where
development continues.
 
 Last post was more along the lines of an announcement, so here’s a more concrete guide. There have been new releases of most parts…

I no longer use an iPhone nor am I an active developer of usbmuxd. If you're
interested in the current state of affairs, check out the
[libimobiledevice](https://github.com/libimobiledevice) repositories, where
development continues.
 
 Those who watch my git repos may have noticed that I’ve been working on this for a while now. iPhones and iPod Touches have never…

When I first wrote this blog post in 2009, I never expected that it would get
so popular. As it turned out, lots of people were interested in UEFI BIOS
hacking and/or were victims of poor BIOS implementations by vendors.
 I no longer own the laptop that is mentioned in this post, nor do I own any
other hardware with an InsydeH2O BIOS. The tools referenced in this post…
With the new OS version, Apple totally changed up the database format. Now it’s based on a whole bunch of SQLite files and there are also a few files in a format similar to the old proprietary one. There are more than likely still hashes in the critical files, and there’s also a suspicious pair of files that appear to be entirely encrypted. The SQLite format is open and certainly…
After a few days of reading very, very weird disassembled code and poking
registers, the odd 2D hardware finally works (for the most part). It can draw
lines, so I threw in a software 3D transform. Here’s the
 Stanford Bunny in a glorious 448
vertices and 1416 lines of jaggy wireframe awesomeness. 
  
 
 
 

 
 
 The chip has hardware line…
I’ve joined a bunch of friends in a quest to reverse engineer and write custom software for Sunplus SPMP305x chips. These chips are inside all sorts of chinese media players , particularly the fairly powerful kind with a camera, video playback, etc. The chip is based around an ARM926EJ-S core, but the peripherals around it are completely custom – check out the marketing blurb . Most current…
I’ll eventually write a longer post about how different bits and pieces of this laptop’s hardware fare under Linux. For now, I’ve managed to strike one of the more annoying issues: proper audio. Scroll down if you’re impatient and want the code; read on if you want the full story. 
 This laptop is peculiar because it has built-in “5.1” audio. Yes, it does…
If you’ve ever worked with other people on some piece of code or program,
particularly over IRC or IM or some other form of real-time or fast text
communication, chances are you’ve used one of the many “paste” sites available
(my personal favorite is pastie ). These sites offer a
convenient way of sending small to medium chunks of text to other…
With newer iPods and the iPhone 2.x firmware, Apple decided to implement a new hash scheme for iTunesDB to prevent third-party apps from managing the iPod database. Stupid. They decided to make it part of the FairPlay codebase, including its obfuscation. Very Stupid. But just in case that weren’t enough, then they went ahead and tried to take down the iPodHash project which was attempting to…