D

doar-e

doar-e.github.io · Group blog · on HN since 2013

doar-e is a security research blog on browser exploitation, JavaScript engine internals, Windows internals, and reverse engineering with symbolic execution.

What HN saysHN commenters call its writeups fantastically detailed and cite its V8 TurboFan and Chrome hardening posts when discussing compiler internals and exploits.
17HN people shared it
5linked it in comments
12stories submitted
164story points
7 months agolast shared
2013people per year2026

Most-shared posts

  1. 1
  2. 2
    Inside Windows' User/Kernel Exceptions Dispatcher
    3 people · 1 points · first shared 2013 · discussion on HN
  3. 3
    Introduction to TurboFan
    2 people · 36 points · first shared 2019 · 4 comments on HN
  4. 4
  5. 5
    Corrupting the ARM Exception Vector Table
    1 people · 59 points · first shared 2014 · 4 comments on HN
  6. 6
    A Static Analysis Approach Relying on Symbolic Execution
    1 people · 32 points · first shared 2013 · discussion on HN
  7. 7
  8. 8
    Dissection of Quarkslab's 2014 Security Challenge
    1 people · 5 points · first shared 2014 · discussion on HN
  9. 9
  10. 10
  11. 11
    Circumventing chromes hardening of typer bugs
    1 people · first shared 2021

What HN people wrote when they linked it

crumbshot · 2019-12-08
Interested readers should check out the author's earlier work exploiting CVE-2019-9810: https://github.com/0vercl0k/CVE-2019-9810 And their fantastically detailed writeup of a PoC they wrote for that vulnerability: https://doar-e.github.io/blog/2019/06/17/a-journey-into-ionmonkey-root… This exploit is different in that they use the arbitrary read/write primitive gained by CVE-2019-9810 to flip a couple of bits and patch out a few instructions with the effect of removing the security boundary between a normal web page and XPCOM. The interesting difference in this exploitation approach is there's no need for ROP chains and shellcode, as you have all the XPCOM components available to use. Once they're in that privileged context in the content process, they escape its sandbox by exploiting CVE-2019-11708. This works by sending an particular IPC message to the parent process, that causes a web page of the exploiter's choice to load in that process. In this case, the choice is to exploit CVE-2019-9810 again, then use XPCOM components to drop an executable to disk and run it. Awesome work, and a real pleasure to read, it's satisfying to see such well-commented and clear exploit code.
maxheadroom · 2019-06-06
Short-answer: The debugger (in Windows) sits between the first and second and chances, if I recall correctly, to "help" the user by displaying a dialogue notifying them that 'x' is unhandled. Anything in second chance has reached the kernel for handling and is no longer in the user space. You'll often see this (second chance) as exception entries in the Windows Event Log for things like kernelbase.dll, which points to the offending instruction set. The handler in this space typically invokes Watson to generate Watson reports because it was unhandled elsewhere. The debugger prevents all of that. Of course, in JIT, you have things like read-ahead for first-chance exceptions... A good book, in the Windows space, that cannot recommend enough, is Windows Internals[0]. They include how the managed and user spaces interact and coincide with the native and kernel spaces and how all of that transpires, such as how an exception in user mode transitions to kernel before Watson report is created. There's other in-depth resources[1], as well, if books aren't your thing. [0] - https://docs.microsoft.com/en-us/sysinternals/learn/windows-internals [1] - https://doar-e.github.io/blog/2013/10/12/having-a-look-at-the-windows-…
saagarjha · 2021-04-14
This ensures aborting bounds checks to some parts of the the pipeline, but this doesn't mean that later optimizations can't determine that the check is dead code and remove it. For example: https://doar-e.github.io/blog/2019/05/09/circumventing-chromes-hardeni…
kipply · 2020-06-02
Seas of nodes are also used as IR in Java Hotspot and the V8 engine (https://doar-e.github.io/blog/2019/01/28/introduction-to-turbofan/)
LatencyKills · 2026-04-02
I was a developer at Microsoft in the 90s (Visual Studio (Boston) and Windows teams). I won't claim that software back then was "better," but what is definitely true is that we had to think about everything at a much lower level. For example, you had to know which Win32 functions caused ring-3 -> ring-0 transitions because those transitions could be incredibly costly. You couldn't just "find the right function" and move on. You had to find the right function that wouldn't bring your app (and entire system) to its knees. I specifically remember hating my life whenever we ran into a KiUserExceptionDispatcher [0] issue, because even something as simple as an exception could kill your app's performance. Additionally, we didn't get to just patch flaws as they arose. We either had to send out patches on floppy disks, post them to BBSs, or even send them to PC Magazine. [0]: https://doar-e.github.io/blog/2013/10/12/having-a-look-at-the-windows-…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close