Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    M

    Moyix

    moyix.blogspot.com · Personal blog · on HN since 2013

    Brendan Dolan-Gavitt (Moyix) writes about security research, dynamic analysis tools like PANDA, fuzzing, and bug injection.

    Visit blogHN submissions
    SecuritySystems & Performance
    What HN says

    HN links it mainly for the post on -ffast-math in a shared library disabling subnormal numbers across a whole program, as in the gevent and numpy case.

    Stats for nerds
    27HN people shared it
    17linked in comments
    1.2Kstory points
    Aug 2025last shared
    2014people per year2025

    Top posts on HN

    1. 1
      Someone’s Been Messing with My Subnormals
      9 people · 651 points · first shared 2022 · 127 comments on HN
    2. 2
      Breaking Spotify DRM with PANDA
      6 people · 290 points · first shared 2014 · 107 comments on HN
    3. 3
      On building 30k Debian packages
      3 people · 142 points · first shared 2022 · 42 comments on HN
    4. 4
      Fuzzing with AFL is an Art
      1 person · 109 points · first shared 2016 · 7 comments on HN
    5. 5
      How to add a million bugs to a program, and why you might want to
      1 person · 42 points · first shared 2016 · 24 comments on HN
    6. 6
      The Mechanics of Bug Injection with LAVA
      1 person · 4 points · first shared 2016 · Discussion on HN
    7. 7
      100 Days of Malware
      1 person · 2 points · first shared 2015 · Discussion on HN
    8. 8
      PANDA: a Platform for Architecture-Neutral Dynamic Analysis
      2 people · 1 points · first shared 2013 · Discussion on HN
    9. 9
      Reproducible Malware Analyses for All
      2 people · 1 points · first shared 2014 · Discussion on HN
    10. 10
      A couple ideas that went nowhere
      1 person · 1 points · first shared 2018 · Discussion on HN

    What HN people wrote when they linked it

    • dapperdrakeSep 2024

      Someone else beat me to it. Will answer anyway.

      Had a very similar experience to yours with one important exception. The visitor pattern is relevant for traversing ASTs in single dispatch languages. Most notably, this includes Java and C++.

      The alternative concept is multiple dispatch and it is way more anti-fragile.

      This is where the next step in college literally was to learn the concept of cargo-culting. The concept of multiple dispatch is considerably more useful than single dispatch.

      Many years later the realization hit, that OOP, singletons, DB mocking and monads are the hard parts [1,2]. Then you can even skip multiple dispatch in favor of low latency. C++ wants this but its ecosystem has no idea (as in zero) of how to get there [3,4,5,6] (-Ofast -fno-fast-math). Then the "Patterns" (capital P) melt away.

      On a semi-related note, it seems worth pondering whether strict typing requirements and/or a missing garbage collector make macro programming and AST work so hard in non-lisp languages. Think I read somewhere that some people considered Rust macros hard. Sounded like they were harder than they should be, which means that the language designers piled on incidental complexity. Macros are difficult enough as it is. And worth it. Even Python pilfered the "with" syntax.

      [1] http://somethingdoneright.net/2015/07/30/when-object-orientation-works-a-rule-of-thumb.html

      [2] https://lobste.rs/s/vbivyq/synchronous_core_asynchronous_shell

      [3]…

    • skissaneMay 2022

      > lpClass most likely is a class name in COM/OLE sense.

      I don't think that is true. In the original Windows 3.1 registry, lpClass did not exist. You only had the RegCreateKey() function which had no lpClass parameter, that parameter was added in RegCreateKeyEx() which was only in NT (and later Windows 95 too).

      COM/OLE never used lpClass. Out-of-the-box, very few Windows registry keys have lpClass set, and those that do it is mostly some meaningless value like "Shell" or "Setup", which COM/OLE completely ignores. The one place (that I know of) which it is (or was) actually used, is to store the syskey encryption key [0]. I think using lpClass for that is just abusing it for a bit of security-by-obscurity, it is a way to store data in the registry but hide it from most registry tools (which provide no access to lpClass because almost nobody uses it.) Possibly other people are doing the same thing (to store license keys, detect expiration of trial periods, malware hiding stuff, etc.)

      [0] http://moyix.blogspot.com/2008/02/syskey-and-sam.html

    • bitexploderJun 2017

      AFL automates this to a large degree. It doesn't do it with the type of machine control and monitoring you are asking for, but if you can instrument it with AFL, this is a perfect use case for it. It will do the hard work for you.

      If you want to control the computer, you have options. Qemu can give you fine grained CPU level logging you want: http://moyix.blogspot.jp/2014/07/breaking-spotify-drm-with-panda.html -- this is an article that walks through logging them instructions. (https://github.com/panda-re/panda)

      Finally there are RE frameworks where you can instrument (hook) function calls (Frida being a good cross platform option).

      I would try AFL first. But playing with Panda can be really fun too.

      (edit: and a colleague just pointed out -- https://github.com/angr, which will also let you work right at the level you want to, I think).

    • moyixOct 2021

      I'm not going to try to debate the merits of Twitter threads vs blog posts, but I will note that I, like many others, have an abandoned blog [1] but manage to post plenty of Twitter threads. The activation energy needed is just way lower on Twitter, and (as an academic) if I need to write something much more serious it'll usually be a paper.

      If you want people to blog more and tweet less, you probably have to find a way to make it easier than firing off a tweet thread.

      Edit: Also, I have to say – if blogs are such an inherently superior readability experience, why is engagement so much higher for Twitter? Perhaps it's shallow engagement, but it seems like the height of nerd-think to say that a platform actively used by hundreds of millions is "unusable".

      [1] https://moyix.blogspot.com/

    • chisquaredFeb 2023

      > even package managers like pip

      This reminds me of a blog post [1] I read before. Pertinent quote:

      > Unbeknownst to me, even with --dry-run pip will execute arbitrary code found in the package's setup.py. In fact, merely asking pip to download a package can execute arbitrary code (see pip issues 7325 [2] and 1884 [3] for more details)!

      Also seen on Twitter [4].

      [1] https://moyix.blogspot.com/2022/09/someones-been-messing-with-my-subnormals.html

      [2] https://github.com/pypa/pip/issues/7325

      [3] https://github.com/pypa/pip/issues/1884

      [4] https://twitter.com/moyix/status/1566561433898426368

    • ChrisRackauckasJan 2023

      I would. It's much safer than Python which has a package ecosystem that is known to be critically unsafe. https://pytorch.org/blog/compromised-nightly-dependency/ is just the latest example of security issues it's been having, https://moyix.blogspot.com/2022/09/someones-been-messing-with-my-subnormals.html is general numerical incorrectness which is non-local and cannot be turned off, and that's not even getting to the specific inaccuracies of Numba. I'd switch away from a numerically incorrect security issue today!

    Related

    Unsungunsung.aresluna.org42 people

    Flickr's URLs Scheme

    Unsung
    Personal · last shared 2026
    GNOME Blogsblogs.gnome.org490 people

    AirPods fast connect security vulnerability

    GNOME Blogs
    Company · last shared 2026
    jwzjwz.org880 people

    Watch a VC use my name to sell a con

    jwz
    Personal · last shared 2026
    Random ASCIIrandomascii.wordpress.com274 people

    There are only four billion floats, so test them all (2014)

    Random ASCII
    Personal · last shared 2026
    Exodus Intelligence Blogblog.exodusintel.com30 people

    Remotely Compromising Android and iOS via a bug in Broadcom's WI-FI Chipsets

    Exodus Intelligence Blog
    Company · last shared 2026
    Alexander Dinaburgdinaburg.org27 people

    Bitsquatting: DNS Hijacking without exploitation

    Alexander Dinaburg
    Personal · last shared 2024
    Dustridustri.org56 people

    Horrible edge cases when dealing with music

    Dustri
    Personal · last shared 2026
    Peteris Kruminscatonmat.net316 people

    Low Level Bit Hacks You Absolutely Must Know

    Peteris Krumins
    Personal · last shared 2026