Hacker News new | past | comments | ask | show | jobs | submit | e1ghtSpace's comments login

I quit caffeine in January and it took me about the same - 6 months for the fatigue to go away - though I would say it gets much easier after 3 months. I think gradual decrease would make it easier but it would take longer. You might need to step down to one cup of coffee/tea a day for 6 months before quitting. I ended up mixing small amounts of instant coffee with decaf instant coffee so that at the end of the day it was like I had only consumed one cup of coffee. I only did that for a few weeks and then just quit altogether and still got huge fatigue. I have recently started going for runs almost every day and that has helped me a lot so you may be in a better position if you exercise. I tried lifting weights for ages but couldn't get into it then I switched to running and found that to be way better at reducing fatigue for me.


The minus 0x400 shift appears to work like this:

  Seek(fd, 0xA0020000 - 0x400);
We seek to 0x400 before where we need to write the data

  SendWrite(fd, foo, 0x400, false);
We set the first 0x400 bytes of what we want to write to 0

  SendWrite(fd, fw, fwsize, true);
We then set the rest of the bytes to our data.

  SendEndSecpack(fd);
The iphone copies the data from 0x400 bytes onwards (which is all the data we wanted to write), then tries to verify the signature and fails. If the signature could be verified the first 0x400 bytes (which we left as all zeros) would then be copied.


Ouch! That's a fail on the same level of Microsoft forgetting the XBox decryption keys on the secret ROM.


The product itself was, at this stage, very rushed to market.


The IFX team that produced the baseband firmware had never heard of Sicherheit. It was … riddled with trivially exploitable security issues.


So very many products are, but most people never see any of it, and most are boring enough that nobody cares to break them apart and see what's inside.


its also worth noting, on balance, that apple quickly made it a relatively hardened platform.


I think Fabien is looking for an explanation as to why shifting by 0x400 bypasses the signature check. For example, is that shift somehow corrupting the signature check logic, or bypassing it by convincing the checker that no check needs to be performed?


My guess is that the chip doesn't have enough RAM to store firmware image, verify it, and only then write it to flash. So instead it needs to write it on the fly as it receives data in chunks of 0x400 byte pages. It starts by erasing first page, but instead of immediately writing it instead keeps buffer for that page for later. Then it transfers remaining pages normally, and at the end only when signature is correctly verified it goes back to write the first page.


That would also be my assumption.

However, it seems the firmware was written as 0x800 byte pages:

https://cdn.cs50.net/2014/fall/lectures/1/w/src1w/iUnlock.c


Thank you guys for your explanation.

From what I understand on this thread, the header of the firmware is 0x400 long. A page can be up to 0x800:

``` int size_to_write = Size > 0x800 ? 0x800 : Size; ```

So it would appear the firmware has a header of 0x400 which is buffered during upload but discarded if the firmware fails the checksum at the end of the upload.


I'm reading this as the iPhone holds the first 0x400 bytes in a buffer and doesn't write them until the signature has been verified. Everything else does get written. The assumption is that stripping off those initial bytes would render the firmware unusable, except in this case where they just padded the write by 0x400 bytes!


I think it was lack of imagination on the part of whoever programmed it. I wager they were more afraid of someone taking total control of the baseband so they figured everyone would start writing programs at 0, so they protected the beginning, which is their most important code. They didn't foresee someone just skipping that part and writing part of the firmware for such a small change.


well you know




I wonder what scared them.


You'd be scared too if you were living while black in Indiana.


Probably getting fired for breaking the law while performing the job.


We might even end up with the most effective ones being the weirdest. Where people clicked though because the ad was so weird.


Interesting idea but they should have used multiple drawings per frame and overlayed them to get rid of trash frames.

Anyway, if anyone wants to see a Pink Floyd Dark Side of the Moon movie that functions as a projector for the album, I edited this together and you guys may be into it: https://odysee.com/DSOPiQ I added an intro and some other stuff to mess with you but it can effect the projection substantially so if you want to skip it, go straight to 7:34 (don't go less than that otherwise you might get something)


Aww... I thought human users would be able to program their own ai and connect with an API. Though it makes sense that this isn't the case, since then a human user could just use it like normal social media.


There's no API, but you can "program" bots to some extent to follow very rigid patterns of behavior and force it to produce some literal output by carefully crafting their description.


We need inverse captchas


You have what amounts to a prompt, though.


If you need to cure your visual snow, watch this: https://odysee.com/DSOPi


Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: