Hacker News new | past | comments | ask | show | jobs | submit login
Secure ROM extraction on iPhone 6S (ramtin-amin.fr)
264 points by tomstokes on Dec 5, 2016 | hide | past | web | favorite | 46 comments



Wow. That's some serious skill that went into this.

If the author is reading: how did you develop that multi-layer board? Do you have a PCB fab that can print a board in, say, one or two days time? And how did you assemble that PCIe inject board, given those ultra small SMD parts? Did you order a fully-built PCB or did you do all this by hand?


Not the author but I can answer your questions. Anyone can have a multilayer board fabbed by uploading the Gerbers to a fab house -- the board shows up on your doorstep anywhere from a day to a month later, depending how much you want to pay. Fine pitch SMD parts can be hand soldered with hot air and a binocular microscope; rework techs routinely do it every day.


I always tend to burn up PCBs when I try to de-solder broken parts with a hot air station. I usually use 300°C and a small nozzle... but always until the solder melts at the first pin, the PCB turns black-ish. What do I do wrong there?


Something I've found helpful is pre-heating the board (e.g., with an under-board IR heater) before breaking out the hot air. As another poster has mentioned, chip-quick is also great stuff.


If you're trying to de-solder a BGA component, I can't help, but any other surface mount stuff check out Chip Quik Alloy. It's a super-low melting point solder that you can use to take off pretty much any non-BGA component with a standard iron and a pair of tweezers. Cleans off with braid.


Why not use a plate/skillet for BGA desoldering?


Thanks for the hint!


Use higher airflow (including a larger nozzle) and lower temperature. The temperature calibration might be a bit off if the soldermask gets damaged by air at 300°C. Preheating, which has already been mentioned, also helps.


If you want a multi-layer board done up on the cheap (or fast, pick one haha) Oshpark is my go-to. They do 4-layer PCBs for $10/sq in.

Small Batch Assembly (haven't used them yet) should be able to put it together for you if you'd rather not DIY. If you'd like to, though, Osh Stencils, tweezers, some solder paste and a rework station (or a heat gun if you're feeling brave) and you can do a lot at home.


Also, designing a FPGA board is 'half' of the job, putting a verilog or VHDL code is a totally different thing.

The DDR3 routing, the BGA chip, everything on this board 'screams' very hard work, probably not by a single person ( i have to admin I checked the FPGA/board part only )


This could all be done by a single person. A very talented person, sure, but one person could do all of this.

I'm not certain about routing the DDR3 traces, but DIY soldering on a BGA chip isn't the absolute worst thing in the world, and VHDL/Verilog aren't that bad, especially when using the Xilinx tooling. A lot of that code is written for you (and you usually don't have to purchase IP cores... usually)


BGA soldering difficulty seems like somewhat of a persistent myth. Sure, it's difficult to get right if you want to solder a BGA as part of a production line and need to get 99.9% right or it becomes too costly.

But iPhone repair technicians and others are very blase about just using hot air guns and a ton of flux to solder all kinds of BGA chips, and they generally seem to work just fine.

Now DDR3 and USB3 routing is very annoying, but you generally just copy the reference design of the FPGA manufacturer and possibly adjust for your board layup.


How many people on the planet are capable of doing this? What's your best Fermi estimate?


I'd wager 100<n<1000. This requires a specific skillset of low-level reversing and hardware hacking but I wouldn't put it past anyone who is smart and driven to understand how things work.


It requires a skillset which IMHO is actually not so rare particularly in parts of China and Russia, where hacking these systems is part of how all the unofficial repair shops can survive.

In fact I wouldn't be surprised if this particular task, extracting the boot ROM, was already done long ago by a few groups but not publicised --- Apple's bounties may seem enticing, but these people know it's the end if they tell Apple; they'd rather keep it secret and use those "holes" to keep investigating and sell their results to repair shops, which may ultimately yield far greater profit.


I think parent is confusing the 10x engineer (which this guy obviously is) with a one-in-a-million engineer.

Not to talk down Ramtin's achievements (I think his work is awesome), but hardware hacking is significantly easier these days when you can buy a JTAG dongle + software for less then $10 and order a high quality PCB with another $10-20.


That seems reasonable to say there are that many people who could already do it, with minimal learning curve.

I agree with the former especially because of the latter half, I'm quite sure I could never do this today, but, I'm also quite sure I could learn to do this if I wanted to (and was willing to accept all the soldering burns I inevitably inflict on myself every time I try to solder something)


This is significantly harder than most hardware hacking (it requires hardware-level interaction with a pretty complicated bus) --- at the point where you're doing custom FPGA work to get bus access...


This is purely my personal belief as a software developer with an EE degree, but I strongly believe hardware hacking skills are logarithmic in difficulty.

Those first few steps to get good with the tools are the hardest. Everything else past that is getting better with better - and potentially more expensive - tools.


Also, EE is less forgiving, without tools I mean, if you try to hack your way recklessly byebye hardware. No backups.


Bunnie Huang could probably do so while watching a GoT episode.

Most programmers today are not electronics saavy, even electricity saavy. But it's not Quantum Mechanics.


Speaking of Bunnie, his work on xbox was actually pretty similar to this guy (although he did much more than just dumping the ROM):

http://www.xenatera.com/bunnie/proj/anatak/xboxmod.html


There was a recent video about him trying to reverse some SoC IIRC, where he would MitM the cpu and sniff protocols and ISA. My memory is blurry, but it was a similar effort than the article here.


Does this allow circumvention/dumping of the SecureBoot keys? Its an impressive looking piece of kit for sure, but the English leaves me confused as to what they were able to actually accomplish.


I would assume that the signature scheme uses some sort of public key system, so dumping the keys in the boot ROM wouldn't let you sign new code. Gaining access to the bootloader code would allow you to analyze it and potentially find vulnerabilities. There's no guarantee that vulnerabilities could be found, but the chances are a lot better than if you were just poking at it blind.

It looks like they did succeed in dumping the full contents of the boot ROM. They don't appear to have done anything with that dump (yet).


It dumps the firmware. Apple offers a reward for finding security issues with the firmware. Dumping it is the first step.


I really hope that jailbreakers will be able to downgrade iPhone 4S from iOS 9.3 to iOS 6. I stayed current when Apple released updates, even with terrible performance, but now it's really doesn't make any sense to stay on that laggy iOS 9, if I could use blazing fast iOS 6.


It's now only 4s. iPhone 6 is getting more and more sluggish with every major and even minor update.


Source for that? My iPhone 6 is as fast as ever. It's just not the fastest phone around anymore.


Personal perception. I am using iPhone6 for two years already. It is in no way objective.


Just curious: Is it possible to stay on an old release forever with an iPhone, or do they force the upgrade eventually?


They don't force upgrade. With iOS 6, new update is downloaded automatically and it's not possible to remove this update, so you're wasting quite a lot of precious disk space (but if you jailbreak, you can remove this update).

Also I'm not sure that it's possible to do factory reset and stay on old version. But as long as you don't do that and don't press "upgrade", you'll be fine.


How do you get apps for the old iOS versions? They are no longer in App Store..


AppStore allows to download latest app version supported by your operating system.


That jig is a beautiful piece of mechanical engineering.


So... when can we expect a 9.3.5 jailbreak :) This is some seriously badass stuff going on...


In a digital world, the analog voltmeter is a nice touch


The big "A" suggests it is an ammeter measuring the current, not a voltmeter. An analog display is often quicker and easier for a human to interpret when only a rough measurement is wanted.


Check out some of the Chinese iPhone rework docs - they rebuild iPhones using chips from dead phones - and debug them by knowing the current flow at various points in the debug cycle


The world is analog.


If the author of the blog is reading this, the site seems to be unavailable from my location on the Shaw Canada network. I thought it was down, but it appears there's some sort of network error preventing my packets from making it from here to there. This happened on the previous (and very interesting) article as well.

archive.is link for anyone else having this issue: http://archive.is/bA9Ak


Thanks for the archive link, can also confirm that actual link doesn't work on my Shaw Canada connection either.


Also on Shaw, and can't view this without a VPN. Any ideas why not? Weird.


Back in the day I had similar problems, but I used a different Canadian ISP. The issue was their DNS: for some reason it did not resolve some valid domains.

Switching to Google's DNS might fix your problem. If it doesn't, it's probably Shaw's routes.


Nifty! I'm on Access (a small regional ISP in SK), but traceroute indicates that the packets are disappearing at a Shaw router in Calgary. Looks like Access gets its connection from Bigpipe (Shaw's bulk offering).

Thanks for the archive link!


(dig && ping && traceroute && tcptraceroute) + tcpdump ?




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: