Quarkslab Blog
blog.quarkslab.com · Company blog · on HN since 2013
Quarkslab is a French security firm whose engineers publish reverse-engineering and vulnerability research on firmware, chipsets, obfuscation, and OS internals.
What HN saysHN commenters cite it as a good read on Broadcom Wi-Fi reverse engineering and as a reference for iMX boot security, obfuscation, and Mifare Classic backdoors.
128HN people shared it
55linked it in comments
104stories submitted
2.2Kstory points
2 months agolast shared
2013people per year2026
Most-shared posts
- 1iMessage Privacy11 people · 23 points · first shared 2013 · 2 comments on HN
- 2Playing around with the Fuchsia operating system6 people · 375 points · first shared 2020 · 272 comments on HN
- 3Reverse-engineering Broadcom wireless chipsets6 people · 8 points · first shared 2019 · discussion on HN
- 4Attacking Titan M with Only One Byte5 people · 179 points · first shared 2022 · 76 comments on HN
- 5Overview of Intel SGX – Part 1, SGX Internals5 people · 74 points · first shared 2018 · 10 comments on HN
- 6DJI – The ART of obfuscation4 people · 238 points · first shared 2024 · 119 comments on HN
- 7Digging into Linux namespaces – part 14 people · 157 points · first shared 2021 · 10 comments on HN
- 8Deobfuscation: recovering an OLLVM-protected program4 people · 18 points · first shared 2014 · discussion on HN
- 9Xen exploitation part 3: XSA-182, Qubes escape3 people · 81 points · first shared 2016 · 5 comments on HN
- 10Heap Overflow in OpenBSD's Slaacd via Router Advertisement3 people · 59 points · first shared 2022 · 28 comments on HN
- 11Clang Hardening Cheat Sheet – Ten Years Later3 people · 3 points · first shared 2026 · discussion on HN
- 12Easy::jit: Just-In-Time compilation for C++3 people · 2 points · first shared 2018 · discussion on HN
- 13PixieFail: Nine Vulnerabilities UEFI Implementations2 people · 159 points · first shared 2024 · 98 comments on HN
- 14Xen exploitation part 2: XSA-148, from guest to host2 people · 87 points · first shared 2016 · 13 comments on HN
- 15Defeating eBPF Uprobe Monitoring2 people · 60 points · first shared 2022 · 1 comments on HN
What HN people wrote when they linked it
ChrisArchitect · 2024-08-21
[dupe]
Blog post: https://blog.quarkslab.com/mifare-classic-static-encrypted-nonce-and-b…
Discussion: https://news.ycombinator.com/item?id=41269249
sprite · 2023-02-23
Love this topic. I remember Everquest used to checksum areas of memory that were commonly modified from cheats. World of Warcraft used to (possibly still does, it has been forever since I looked at this) inject anti cheat code at runtime.
Obfuscation and deobfuscation is also super interesting. I think overall reverse engineering and figuring out how things work is one of the most interesting things in computer science.
https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0/lib/Transf…
https://blog.quarkslab.com/deobfuscation-recovering-an-ollvm-protected…
isometimes · 2021-10-06
I looked for a long time, but to no avail. Broadcom are notoriously tight-lipped when it comes to their intellectual property.
Some have attempted to reverse-engineer... This was a good read: https://blog.quarkslab.com/reverse-engineering-broadcom-wireless-chips…
joezydeco · 2018-09-09
I've been doing a lot of iMX work lately, so here's some reference material I've used in the past:
https://boundarydevices.com/high-assurance-boot-hab-dummies/
https://www.nxp.com/docs/en/application-note/AN4581.pdf
https://blog.quarkslab.com/vulnerabilities-in-high-assurance-boot-of-n…
A lot of it depends on Das U-Boot, the favorite open-source bootloader of the eLinux crowd:
https://www.denx.de/wiki/U-Boot
maqr · 2015-06-03
> For years we’ve offered encryption services like iMessage and FaceTime because we believe the contents of your text messages and your video chats is none of our business.
Sounds great, but take note that it's none of their business today and we know they can be compelled to spy on their users by NSLs.
They control the key infrastructure with their closed-source software that runs on their closed-source hardware.
If they wanted to go into the business of sucking up all of your private messages and parsing them to sell advertising or if the government wants to read some messages, they wouldn't need to do anything besides issue you a different key.
iMessage won't even let you look at the fingerprints of your friends, and it won't warn you if they've changed. [1]
[1] http://blog.quarkslab.com/imessage-privacy.html
dhx · 2025-09-03
"Job" objects allow some resource limits to be applied to groups of processes (including any children they spawn) but don't do much or anything for restricting the system resources accessible to process in a job.[1] Instead that is a feature called "silos"[2][3][4], as well as the accompanying use of Windows Brokering File System filter driver[5] (or is it UCIFS, or BFS+UCIFS...?[4]), as well as SeAccessCheck interception[6], and whatever else applied to a "silo" or processes.
Hardly anything about "silos" and seemingly nothing about BFS (for providing a virtual filesystem to a process) is documented publicly by Microsoft. Unless a Windows application developer has a particular interest in reverse engineering the Windows Kernel, they're probably not going to be using much of Windows Kernel sandboxing/isolation techniques beyond the simple interface that UWP exposes for GUI applications because it's just too hard otherwise.
For example, in the excellent description of this officially undocumented mess at [2] and [3], the author notes:
"What is interesting here is that there does not seem to be any general mechanisms for restricting access to syscalls globally, which means that the attack surface can be quite large. Indeed, even if it is possible for the Kernel to know if the execution comes from inside a Silo, each syscall must set up its checks (or not). In addition, some syscalls do not directly block access to Silos, but rather implement a different logic between a host…
Veserv · 2022-10-07
Am I being kept safe by Google? What evidence is there of that?
There appear to be 635 vulnerabilities publicly disclosed by 3rd parties in Android this year with 43 being critical and 139 being high or critical [1]. 224 in Chrome [2], though none being labeled high severity, though that is mostly due to the fact that things such as disclosed remote zero-click heap corruptions leave the final bit of actually getting full code execution as a trivial exercise to the reader.
There was a cool attack demonstrated a few weeks ago completely defeating the Google Titan M security chip [3], their custom-designed secure vault used to store your most sensitive secrets. It could be hacked through software alone to exfiltrate all of its secrets. Given its purpose their security process should have resulted it being designed by their best security experts and been their most secure consumer product. Beaten by three people with a year and a half.
I mean seriously, their flagship, in-house Android phones are advertised as only conforming to the absolute lowest levels of security [4][5]. Seriously, go read that [6] on page 9 they describe the arduous certification process where the auditor googles “Android” and sees that there are no unpatched vulnerabilities. This is their primary advertised third party audit of whole system Android security.
So, a company which produces products with loads of vulnerabilities, has their most secure products defeated by moderately resourced attackers,…
dhodell · 2020-12-09
I'm playing Devil's Advocate here because I sympathize with your point, but isn't there a way you can squint and look at this weird that it's true of pretty much everything else? IBM makes tons of money off of Linux, for example. iXsystems profits off of FreeBSD. Facebook profits off of their wildly popular C++ libraries.
I think we really need to divorce "profit" from "open source". OSS is great because we can contribute our own ideas to it, because we can learn from it, because we can form communities around it. It's also useful because it's a vector for entrepreneurship. Edit: why should these be mutually exclusive properties?
It's fair to point out that it can be a vector for exploiting unpaid labor. But that's an accessibility issue that exists already. For example, it's easy to tell folks interested in the field to "do open source work" if they want to get a job in the field. If you're a low-income single parent, this doesn't make CS more accessible, it's a sick joke. Even without profit, open source isn't this bastion of opportunity that we sometimes like to think it is.
You make an excellent point that it's hard to learn large new systems. But it's not impossible. Indeed, it's possible to make super meaningful contributions to the system in "limited time", starting with net zero knowledge: https://blog.quarkslab.com/playing-around-with-the-fuchsia-operating-s… To that end, I have to disagree that we're the kind of project that outsiders can't…
lern_too_spel · 2019-07-24
You've fallen for a simple marketing campaign. What Google does with data has nothing to do with what data Android collects out of the box, which I have demonstrated (and you have not refuted) is less than what iOS collects. You can just as easily send your location, email, and search data to Google on iOS as you can on Android. The difference is that on Android, it is possible (even easy) to choose not to send data to Google or Apple.
> If you actually cared about this stuff, you'd be applauding Apple.
If you actually cared about privacy, you would be damning Apple for handing over the iCloud keys for Chinese users' data to the PRC allowing the PRC to implement dragnet surveillance on iCloud documents, iCloud email, iMessages, etc. to find and disappear dissidents. This is worse than anything Google or even Facebook has done by a stupendous margin.
> iMessage is E2E encrypted.
Since Apple controls the keyserver, Apple has the ability to wiretap any iMessage conversation (https://blog.quarkslab.com/imessage-privacy.html). Since China controls the keyserver inside the great firewall, China has the ability to wiretap any conversation that occurs with at least one user in China. Compare to Android, where you can set Signal as your default SMS handler. One pretends to support privacy, while the other actually does.
> Apple Maps doesn't know who you are.
But it does know where you are and every address link you click on. From there, you are very easy to deanonymize. Compare…
merb · 2026-08-11
It’s done via uprobes which allows ebpf to attach to users processes or libraries, basically like ld_preload but built into the kernel. First link that explains it https://blog.quarkslab.com/defeating-ebpf-uprobe-monitoring.html but there are many more links about it and it is a pretty useful tool for debugging in prod environments. (Also first link: https://blog.px.dev/ebpf-function-tracing/) this also the intended use case.
px.dev is btw a cncf project which also helps for ebpf debugging in k8s (comes from new relic)
sipofwater · 2024-10-23
Source: https://blog.quarkslab.com/attacking-the-samsung-galaxy-a-boot-chain.h… (blog.quarkslab.com/attacking-the-samsung-galaxy-a-boot-chain.html)
consumer451 · 2024-06-17
And also:
https://blog.quarkslab.com/dji-the-art-of-obfuscation.html
Discussed at length here: https://news.ycombinator.com/item?id=39438842
password4321 · 2024-03-02
Crumb: https://news.ycombinator.com/item?id=37289215
Front page: https://hnrankings.info/37289215/
--
Getting late for an internship?
An example as an unaffiliated bystander:
https://blog.quarkslab.com/internship-offers-for-the-2023-2024-season.…
https://hn.algolia.com/?query=quarkslab%20comments%3E0&sort=byDate…
somat · 2023-10-28
I have no idea what apple is doing but I will note that "fullmac" style radios have most of their operation internal to the device. The downside is now you have some strange unsecure os running on the radio. The upside, the driver is simpler, that is, you don't need an 802.11 stack.
https://blog.quarkslab.com/reverse-engineering-broadcom-wireless-chips…
ementally · 2023-03-30
runjake · 2022-10-24
VeraCrypt.
The VeraCrypt FAQ addresses your concern: https://www.veracrypt.fr/en/FAQ.html
Direct link to audit: https://blog.quarkslab.com/security-assessment-of-veracrypt-fixes-and-…
saurik · 2022-10-10
It is a lot of work, but I wouldn't say it is exactly difficult... I never bothered to automate it, and so I didn't finish the one I was doing, but I was under the impression that Pod2G's team (which used a photo of me doing it a bit on a blackboard in their presentation) did, however?
https://blog.quarkslab.com/resources/2013-10-17_imessage-privacy/slide…
You just don't need to is the thing (if you are in a position to not care about copyright law; I did care, sadly): you can almost always just lift the code--with all its obfuscation intact--and run it in isolation on your input, which more directly undermines the entire premise of the technique.
molticrystal · 2022-08-15
As an aside, this was published last week, Imagine how much they could of done if they didn't have to do blackbox fuzzing, and how many holes in the device would of been closed.
"Attacking Titan M with Only One Byte" [0]
> ...Titan M, a security chip introduced by Google in their Pixel smartphones, starting from the Pixel 3. In this blog post, ...we show how we found this vulnerability, using emulation-based fuzzing with AFL++ in Unicorn mode. Then, we go over the exploitation and its inherent challenges, that eventually led us to obtain code execution on the chip.
[0] https://blog.quarkslab.com/attacking-titan-m-with-only-one-byte.html
yencabulator · 2022-08-15
You can make the code more robust. For example, instead of a yes/no check, make the check come up with a symmetric crypto key to decrypt the next chunk of code (if it also passes a hash check). Glitches will end up generating garbage, and even if you successfully glitch the hash check, you're executing random garbage.
Of course, the challenge there is that you've merely eliminated one glitching candidate.
Stuxnet had code blocks that encrypted by a hash of target hardware identifiers. No way to know what all code is contained, until it happens to run on the target system.
https://blog.quarkslab.com/bradley-hash-and-decrypt-gauss-a-brief-hist…
VTimofeenko · 2022-06-29
Related material on Linux namespaces and "let's hand-roll our own docker":
https://blog.quarkslab.com/digging-into-linux-namespaces-part-1.html
MaxBarraclough · 2022-01-20
I don't think so. What I can find on this topic with a quick search points to it being outright UB.
https://stackoverflow.com/a/47622343/
https://stackoverflow.com/a/28895321/
https://blog.quarkslab.com/unaligned-accesses-in-cc-what-why-and-solut…
asicsp · 2021-12-08
Link for part 2: https://blog.quarkslab.com/digging-into-linux-namespaces-part-2.html
c0d3z3r0 · 2021-09-16
Read the post from dmitrygr again or mine. The bootloader does not get loaded, because the verification fails. That means there is no way to wope or reset the device. Without a signed firehorse binary you can't do anything, because EDL just won't talk to you.
More details: https://blog.quarkslab.com/analysis-of-qualcomm-secure-boot-chains.htm…
bestorworse · 2020-12-08
> In Fuschia's case it will be like that but the exploitation either gives you access to that driver's capabilities, or simply that driver is giving out handles with permissions insufficiently removed from them
Yes, and then you would have to own a component in some route that received the driver exposed capability. Either way, the tight sandoxing and compartmentalization of functionality make things difficult.
There's an example of analysis here: https://blog.quarkslab.com/playing-around-with-the-fuchsia-operating-s…
d33lio · 2020-12-07
I'm waiting for the tidal wave of people who think that a "trusted enclave" will fix this problem and can never be exploited or cracked... [0] [1]
[0] https://www.theregister.com/2019/02/12/intel_sgx_hacked/?utm_source=dl…
[1] https://blog.quarkslab.com/attacking-the-arms-trustzone.html
3eed · 2020-06-18
I'm gonna write about this in pt. 2. Basically you can use symbolic execution to recover the CFG[1] (using something like miasm), you can eliminate dead code, restore dynamic lib calls with an emulation, and whatever else. But the point is that it would take an incredible amount of work and co-operation between tools, and then you wouldn't have even begun understanding anything about the binary, which is a whole another story. Now there's a kind of a little shortcut to all of this, which when combined with a couple of tools, you'd be able to make sense of things in this binary, which I'm gonna reveal in my next post.
[1]: https://blog.quarkslab.com/deobfuscation-recovering-an-ollvm-protected…
goodthenandnow · 2020-06-09
einpoklum · 2020-05-12
What I miss in C++ isn't more ability to _run_ things at compile-time, but rather more ability to _compile_ things at run-time!
I want to finalize my optimizations with run-time-available information - and to make run-time-definable compositions of pieces of code.
Something like this:
https://blog.quarkslab.com/easyjit-just-in-time-compilation-for-c.html
but better still.
peteretep · 2020-04-02
Your message, through several layers of indirection, relies on a security conference paper from 7 years ago[0] + the assumption that Apple haven't updated the protocol in 7 those years.
[0] https://blog.quarkslab.com/imessage-privacy.html
IshKebab · 2019-12-19
So there's some master SGX private key burned into all Intel processors?
Edit: I found a description and it does sound like they store a master key in all CPUs!
https://blog.quarkslab.com/overview-of-intel-sgx-part-2-sgx-externals.…
It is stored in e-fuses, which can be read, but it is encrypted using a Physical Unclonable Function, which means to read it you would need the CPU to be running. Very difficult but I'd be surprised if it were impossible.