41554 blogs · [ { "id": "01a087de-d7ae-7143-a15e-5f9703af8de8", "title": "The Second Derivative: Why No One Understands the AI Boom - Translation", "url": "https://shadowfile.inode.link/blog/2026/08/the-second-derivative-why-no-one-understands-the-ai-boom-translation/", "published_at": "2026-08-29T19:47:42+00:00" }, { "id": "01a087de-d7af-7382-8624-660db477eb8d", "title": "Forrester Research Note - Mythos 10 Consequences - Finance Translation", "url": "https://shadowfile.inode.link/blog/2026/04/forrester-research-note-mythos-10-consequences-finance-translation/", "published_at": "2026-04-27T04:04:20+00:00" }, { "id": "01a087de-d7af-7382-8624-660db56967b3", "title": "Revisiting Pegasus on iOS9", "url": "https://shadowfile.inode.link/blog/2022/07/revisiting-pegasus-on-ios9/", "published_at": "2022-07-02T20:50:48+00:00" }, { "id": "01a087de-d7af-7382-8624-660db59925d2", "title": "Source Level Debugging the XNU Kernel", "url": "https://shadowfile.inode.link/blog/2018/10/source-level-debugging-the-xnu-kernel/", "published_at": "2018-10-25T02:50:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db646f7a7", "title": "Autogenerating defaults(1) Commands", "url": "https://shadowfile.inode.link/blog/2018/08/autogenerating-defaults1-commands/", "published_at": "2018-08-28T20:00:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db64f025b", "title": "Defaults Non-obvious Locations", "url": "https://shadowfile.inode.link/blog/2018/08/defaults-non-obvious-locations/", "published_at": "2018-08-18T22:37:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db70c9acb", "title": "Advanced defaults(1) Usage", "url": "https://shadowfile.inode.link/blog/2018/06/advanced-defaults1-usage/", "published_at": "2018-06-16T19:34:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db7d7ca4c", "title": "Broken, Abandoned, and Forgotten Code, Part 14", "url": "https://shadowfile.inode.link/blog/2015/11/broken-abandoned-and-forgotten-code-part-14/", "published_at": "2015-11-05T16:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db81d4e0b", "title": "Broken, Abandoned, and Forgotten Code, Part 13", "url": "https://shadowfile.inode.link/blog/2015/10/broken-abandoned-and-forgotten-code-part-13/", "published_at": "2015-10-08T15:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db8882bf1", "title": "Broken, Abandoned, and Forgotten Code, Part 12", "url": "https://shadowfile.inode.link/blog/2015/09/broken-abandoned-and-forgotten-code-part-12/", "published_at": "2015-09-17T15:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db92b0b4c", "title": "Broken, Abandoned, and Forgotten Code, Part 11", "url": "https://shadowfile.inode.link/blog/2015/07/broken-abandoned-and-forgotten-code-part-11/", "published_at": "2015-07-16T15:00:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660db9e6bfb2", "title": "Broken, Abandoned, and Forgotten Code, Part 10", "url": "https://shadowfile.inode.link/blog/2015/07/broken-abandoned-and-forgotten-code-part-10/", "published_at": "2015-07-09T15:11:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbad88c4d", "title": "Broken, Abandoned, and Forgotten Code, Part 9", "url": "https://shadowfile.inode.link/blog/2015/06/broken-abandoned-and-forgotten-code-part-9/", "published_at": "2015-06-25T15:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbb39ebc6", "title": "Broken, Abandoned, and Forgotten Code, Part 8", "url": "https://shadowfile.inode.link/blog/2015/06/broken-abandoned-and-forgotten-code-part-8/", "published_at": "2015-06-18T15:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbbea24fb", "title": "Broken, Abandoned, and Forgotten Code, Intermission", "url": "https://shadowfile.inode.link/blog/2015/06/broken-abandoned-and-forgotten-code-intermission/", "published_at": "2015-06-08T13:31:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbccb6103", "title": "Broken, Abandoned, and Forgotten Code, Part 7", "url": "https://shadowfile.inode.link/blog/2015/06/broken-abandoned-and-forgotten-code-part-7/", "published_at": "2015-06-04T17:37:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbdc7db87", "title": "Broken, Abandoned, and Forgotten Code, Part 6", "url": "https://shadowfile.inode.link/blog/2015/05/broken-abandoned-and-forgotten-code-part-6/", "published_at": "2015-05-28T15:26:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbe89c702", "title": "Broken, Abandoned, and Forgotten Code, Part 5", "url": "https://shadowfile.inode.link/blog/2015/05/broken-abandoned-and-forgotten-code-part-5/", "published_at": "2015-05-21T16:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbef1effc", "title": "Broken, Abandoned, and Forgotten Code, Part 4", "url": "https://shadowfile.inode.link/blog/2015/05/broken-abandoned-and-forgotten-code-part-4/", "published_at": "2015-05-14T16:18:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbfe6b9fe", "title": "Broken, Abandoned, and Forgotten Code, Part 3", "url": "https://shadowfile.inode.link/blog/2015/05/broken-abandoned-and-forgotten-code-part-3/", "published_at": "2015-05-07T15:00:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dbffdc971", "title": "Broken, Abandoned, and Forgotten Code, Part 2", "url": "https://shadowfile.inode.link/blog/2015/04/broken-abandoned-and-forgotten-code-part-2/", "published_at": "2015-04-30T14:59:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc0a2476d", "title": "Broken, Abandoned, and Forgotten Code, Part 1", "url": "https://shadowfile.inode.link/blog/2015/04/broken-abandoned-and-forgotten-code-part-1/", "published_at": "2015-04-23T19:00:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc1858ba1", "title": "Broken, Abandoned, and Forgotten Code: Prologue", "url": "https://shadowfile.inode.link/blog/2015/04/broken-abandoned-and-forgotten-code-prologue/", "published_at": "2015-04-23T00:11:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc23b5d65", "title": "Bowcaster Feature: multipart/form-data", "url": "https://shadowfile.inode.link/blog/2015/02/bowcaster-feature-multipart/form-data/", "published_at": "2015-02-20T19:29:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc24c816d", "title": "Patching, Emulating, and Debugging a Netgear Embedded Web Server", "url": "https://shadowfile.inode.link/blog/2015/01/patching-emulating-and-debugging-a-netgear-embedded-web-server/", "published_at": "2015-01-31T08:43:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc2eaf662", "title": "Remote Debugging with QEMU and IDA Pro", "url": "https://shadowfile.inode.link/blog/2015/01/remote-debugging-with-qemu-and-ida-pro/", "published_at": "2015-01-03T20:05:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc31824be", "title": "Exploit Tunneling and Callback", "url": "https://shadowfile.inode.link/blog/2014/09/exploit-tunneling-and-callback/", "published_at": "2014-09-24T00:32:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc350c382", "title": "Infiltrate 2014", "url": "https://shadowfile.inode.link/blog/2014/05/infiltrate-2014/", "published_at": "2014-05-16T21:06:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc3b4c732", "title": "Emulating and Debugging Workspace", "url": "https://shadowfile.inode.link/blog/2013/12/emulating-and-debugging-workspace/", "published_at": "2013-12-30T20:17:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc4ad555b", "title": "BayThreat 2013 Presentation - Additional Resources", "url": "https://shadowfile.inode.link/blog/2013/12/baythreat-2013-presentation-additional-resources/", "published_at": "2013-12-07T19:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc5983178", "title": "Netgear Root Compromise via Command Injection", "url": "https://shadowfile.inode.link/blog/2013/10/netgear-root-compromise-via-command-injection/", "published_at": "2013-10-24T21:34:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc66ea323", "title": "Complete, Persistent Compromise of Netgear Wireless Routers", "url": "https://shadowfile.inode.link/blog/2013/10/complete-persistent-compromise-of-netgear-wireless-routers/", "published_at": "2013-10-22T13:27:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc73542c6", "title": "A Connect-back HTTP Exploit Server for Bowcaster", "url": "https://shadowfile.inode.link/blog/2013/10/a-connect-back-http-exploit-server-for-bowcaster/", "published_at": "2013-10-09T16:25:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc783e7a9", "title": "44CON Presentation - Additional Resources", "url": "https://shadowfile.inode.link/blog/2013/09/44con-presentation-additional-resources/", "published_at": "2013-09-12T12:59:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc830dbda", "title": "Insulting Recruiter Emails", "url": "https://shadowfile.inode.link/blog/2013/09/insulting-recruiter-emails/", "published_at": "2013-09-09T15:51:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc8a377bb", "title": "Running Debian MIPS Linux in QEMU", "url": "https://shadowfile.inode.link/blog/2013/05/running-debian-mips-linux-in-qemu/", "published_at": "2013-05-31T20:35:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc8f6f324", "title": "Is your Mac's File System Protected?", "url": "https://shadowfile.inode.link/blog/2013/05/is-your-macs-file-system-protected/", "published_at": "2013-05-03T11:42:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dc98bfecf", "title": "Bowcaster's EmptyOverflowBuffer class (Tutorial Part 5)", "url": "https://shadowfile.inode.link/blog/2013/04/bowcasters-emptyoverflowbuffer-class-tutorial-part-5/", "published_at": "2013-04-25T20:56:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dca414243", "title": "Buffer Overflows with Bowcaster Part 4", "url": "https://shadowfile.inode.link/blog/2013/04/buffer-overflows-with-bowcaster-part-4/", "published_at": "2013-04-08T16:08:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dcae2e3ed", "title": "Crossbow is now Bowcaster", "url": "https://shadowfile.inode.link/blog/2013/04/crossbow-is-now-bowcaster/", "published_at": "2013-04-08T12:57:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dcb1f0c69", "title": "Buffer Overflows with Bowcaster Part 3", "url": "https://shadowfile.inode.link/blog/2013/03/buffer-overflows-with-bowcaster-part-3/", "published_at": "2013-03-29T16:21:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dcc00d0bc", "title": "Buffer Overflows with Bowcaster Part 2", "url": "https://shadowfile.inode.link/blog/2013/03/buffer-overflows-with-bowcaster-part-2/", "published_at": "2013-03-28T20:54:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dccea73e9", "title": "Buffer Overflows with Bowcaster Part 1", "url": "https://shadowfile.inode.link/blog/2013/03/buffer-overflows-with-bowcaster-part-1/", "published_at": "2013-03-28T18:01:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dcd5ff848", "title": "Crossbow", "url": "https://shadowfile.inode.link/blog/2013/03/crossbow/", "published_at": "2013-03-28T17:32:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dce3bc1f5", "title": "Hacking is Bullshit", "url": "https://shadowfile.inode.link/blog/2013/02/hacking-is-bullshit/", "published_at": "2013-02-10T23:35:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dce4c2153", "title": "DLink DIR-815 UPnP Command Injection", "url": "https://shadowfile.inode.link/blog/2013/02/dlink-dir-815-upnp-command-injection/", "published_at": "2013-02-01T23:07:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dce52133a", "title": "UPDATED: Responsible (non)Disclosure", "url": "https://shadowfile.inode.link/blog/2012/11/updated-responsible-nondisclosure/", "published_at": "2012-11-29T17:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dceefd653", "title": "Specifying Preferred Load Addresses for ELF Shared Libraries", "url": "https://shadowfile.inode.link/blog/2012/10/specifying-preferred-load-addresses-for-elf-shared-libraries/", "published_at": "2012-10-24T01:44:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dcfc46cba", "title": "Parsing Email and Fixing Timestamps in Python", "url": "https://shadowfile.inode.link/blog/2012/06/parsing-email-and-fixing-timestamps-in-python/", "published_at": "2012-06-12T16:06:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd09a6256", "title": "Long-form Reading 2011", "url": "https://shadowfile.inode.link/blog/2011/12/long-form-reading-2011/", "published_at": "2011-12-16T16:01:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd1046040", "title": "Reading List 2011", "url": "https://shadowfile.inode.link/blog/2011/12/reading-list-2011/", "published_at": "2011-12-13T20:15:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd125c7b4", "title": "Handling HTTP Redirection in Ruby", "url": "https://shadowfile.inode.link/blog/2009/03/handling-http-redirection-in-ruby/", "published_at": "2009-03-15T16:18:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd1384de1", "title": "Mounting LVM Disks in Ubuntu", "url": "https://shadowfile.inode.link/blog/2009/03/mounting-lvm-disks-in-ubuntu/", "published_at": "2009-03-12T13:30:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd223425f", "title": "How to sudoedit non-interactively", "url": "https://shadowfile.inode.link/blog/2009/01/how-to-sudoedit-non-interactively/", "published_at": "2009-01-08T14:31:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd2f889d8", "title": "The Shadow File", "url": "https://shadowfile.inode.link/blog/2004/12/the-shadow-file/", "published_at": "2004-12-16T03:20:00+00:00" }, { "id": "01a087de-d7af-7382-8624-660dd3ee2f56", "title": "Resume", "url": "https://shadowfile.inode.link/resume/", "published_at": null } ] posts Claim your blog
Back to shadowfile.inode.link
Blog · corpus.blog/blogs/shadowfile.inode.link/posts

shadowfile.inode.link

shadowfile.inode.link

2026

2022

2018

2015

2014

2013

2012

2011

2009

2004

Undated