<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>lordnet.sh</title>
  <subtitle>Experiences, projects, and ramblings.</subtitle>
  <link href="https://www.lordnet.sh/feed.xml" rel="self" />
  <link href="https://www.lordnet.sh/" />
  <updated>2026-08-19T00:00:00Z</updated>
  <id>https://www.lordnet.sh/</id>
  <author>
    <name>lordtet</name>
    <email>jake@lordnet.sh</email>
  </author>
  <entry>
    <title>Over The Wire - Behemoth retrospective</title>
    <link href="https://www.lordnet.sh/fragments/blog/OTW_behemoth/" />
    <updated>2026-03-30T00:00:00Z</updated>
    <id>https://www.lordnet.sh/fragments/blog/OTW_behemoth/</id>
    <content type="html">&lt;h2&gt;Prologue&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;push ebp; mov esp, ebp; sub esp, 4&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Context&lt;/h3&gt;
&lt;p&gt;A long time ago now, I did a bunch of these OverTheWire wargames. Back then, it was as an introduction to cybersecurity, when I was trying to transition to it in college. Now, with my feet wet with a little network security experience, I find myself missing that. There&#39;s something about gaining control over something by out-witting the architecture that is so gratifying. So, I decided to come back and tackle it again. If it&#39;s in the cards, maybe this marks a career shift for me :o). Who knows.&lt;/p&gt;
&lt;h3&gt;OTW Policy, &amp;quot;Why this post?&amp;quot;&lt;/h3&gt;
&lt;p&gt;OverTheWire has a no-spoiler policy. Granted, they aren&#39;t going to hunt me down, and there are already tons of writeups online. But I believe in the mission and what it stands for - so even though I&#39;d love to show off my work, I&#39;m going to abstain. That&#39;s where this blog post comes in.&lt;/p&gt;
&lt;p&gt;Instead of posting my solution, I&#39;m simply going to post a retrospective at the end about what I learned. For future CTFs, this may change to be more granular, but Behemoth is easy enough. Got it done over a couple of days.&lt;/p&gt;
&lt;h2&gt;Actually attacking the challenge&lt;/h2&gt;
&lt;h3&gt;Goals&lt;/h3&gt;
&lt;p&gt;So why return to this one in particular? I didn&#39;t go back to anything easier, nor did I start with anything particularly difficult.&lt;/p&gt;
&lt;p&gt;To me, I wanted to build real skill. I believe this requires being challenged &lt;em&gt;just enough&lt;/em&gt; at my skill level, and doing the rote work. Much like practicing problems in math, you want to have to do it the &amp;quot;right&amp;quot; way enough to understand it. So I tackled these problems with a different solution to the same thing. Sometimes I wrote my own shellcode. Sometimes I used pwntools&#39; pre-canned shellcode. Sometimes I used shell-storm shellcodes. For every &amp;quot;fundamental&amp;quot;, I tried to do it in multiple ways.&lt;/p&gt;
&lt;p&gt;Additionally, when I did these forever ago, I was, for lack of a better word, a total skid. I was really just manually shifting payloads around with pre-canned shellcode straight off of shell-storm. I wasn&#39;t REALLY getting intimate with the internals, I was just using them as a convenient toy. This time, I do a lot more shellcoding, spend a lot of time in the debugger, and use more tools. In particular, my tool-goals are to use more pwntools for scripting, and get comfortable on radare2 for my analysis.&lt;/p&gt;
&lt;h3&gt;Results&lt;/h3&gt;
&lt;p&gt;And get comfortable I did! I am now confident I can bring these tools over to the next challenge and begin to catch up to where I was when I left off forever ago, but correctly this time. So, let&#39;s see, did I meet my goals?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Radare2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Way more comfortable here. Had a few super productive assembly markup sessions, and got comfortable navigating it. Not a power user just yet, haven&#39;t even had to harness the scripting. But I can do the basics.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pwntools&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also had a great time learning more about using this library. One particular challenge was a simple format string bug, and pwntools&#39; fmt library was a very fun way to generate the payload for the solve. I&#39;m also straight ADDICTED to shellcoding with assembly within a string, and having it assemble it at runtime! In my previous shellcode excursions, I&#39;d really have to assemble a binary myself and extract the code from the resulting executable. This was WAY more streamlined.&lt;/p&gt;
&lt;h3&gt;Epilogue&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;mov esp, ebp; pop ebp; ret&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I think this was a super succesful traceback to a set of easier challenges to build some stronger fundamentals, and I&#39;m looking forward to doing more. In the interest of not leaving this post without any real code, have a pwntools excerpt of shellcode I made that simply does &lt;code&gt;setreuid(0x32CC)&lt;/code&gt; and &lt;code&gt;execve(&amp;quot;/bin/sh&amp;quot;, NULL, NULL)&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;#0xf7f41de8 in the shellcode is the location of /bin/sh in libc. Waste not want not!
shellcode = &#39;&#39;&#39;

sub esp,0x40
xor eax, eax
xor ebx, ebx
xor ecx, ecx

mov al, 0x46
mov bl, 0xCC
mov bh, 0x32 
mov cl, 0xCC
mov ch, 0x32

int 0x80

xor eax,eax
xor edx, edx
xor ecx, ecx
mov ebx, 0xf7f41de8
mov al, 0xB
int 0x80
&#39;&#39;&#39;
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <title>LLMs and the Nuance of Thought</title>
    <link href="https://www.lordnet.sh/fragments/blog/LLMs_Nuance_of_Thought/" />
    <updated>2026-08-04T00:00:00Z</updated>
    <id>https://www.lordnet.sh/fragments/blog/LLMs_Nuance_of_Thought/</id>
    <content type="html">&lt;h2&gt;Intro&lt;/h2&gt;
&lt;p&gt;This post introduces the Rambling tag into the blog tags. I&#39;ll be using it when I&#39;m yapping about something. In essence, it&#39;s the inverse of the technical tags, or a lack of technical tags.&lt;/p&gt;
&lt;p&gt;Today I ran into a post on Tildes about AI discourse, and how looking past the polarized discourse on the subject actually can reveal beauty in how ideas are embedded within language. I thought this was a beautiful way to look at it, and inspired some of my own introspection on the topic, and effectively also inspired this post.&lt;/p&gt;
&lt;p&gt;Detractors of AI often like to boil down Large Language Models (LLMs) as being &amp;quot;unable to reason&amp;quot;, or as &amp;quot;overhyped auto complete&amp;quot;. I believe that the implications of LLM output run significantly deeper than that, however, I also wish to offer up what I believe is actually missing from AI output. Because in a sense, the detractors are correct... it&#39;s critically lacking something fundamental in the experience of being a consciousness.&lt;/p&gt;
&lt;p&gt;But let&#39;s start with what AI is, not what it isn&#39;t.&lt;/p&gt;
&lt;h2&gt;Language and Knowledge&lt;/h2&gt;
&lt;p&gt;This section will almost certainly be a rephrasing of the Tildes post above. I strongly recommend you check it out. Hopefully the link doesn&#39;t die any time soon.&lt;/p&gt;
&lt;p&gt;LLMs do essentially one thing - it calculates a probable output from a context. The context window (a phrase literally used in the field) is a critical part of the LLMs view. It is a machine that can take some amount of text, as defined by the computing resources supplied to it, and predict what the most likely next set of words is. You can see why detractors use the aforementioned terms, it is essentially a word machine. However, I think this has more nuanced implications of what we are capable of extracting from predictions. In a way, we are using statistics to predict ideas.&lt;/p&gt;
&lt;p&gt;Language, as a tool, has been honed over thousands of years to effectively encode ideas into something we can share. My words, your reponse to those words, even this very post, are a collection of words and phrases meant to contain ideas. We use words to record knowledge, wisdom, and everything in between. With this in mind, I would put forward that the output of LLMs isn&#39;t just text. LLMs are an invention that allow us to use statistics to predict ideas, using text as a vehicle. Phrased another way, in the same way we use statistics to predict social trends or scientific phenomenon, we are using it to predict the output of thought. LLMs allow us to use statistics to distill ideas out of words.&lt;/p&gt;
&lt;p&gt;This means that LLMs exist in an interesting space - they are capable of reason. They reason all the time. In the same way a domino falls and knocks over the next one, an LLM goes from one word (token) to another, constructing ideas in the form of sentences. This is a form of reasoning, even if it&#39;s done mathematically using text. The human advancement that allowed this to exist is absolutely staggering. It&#39;s a combination of thousands of years of language development, mathematics, and computer processing. Despite our current world climate, it is without a doubt a beautiful achievement.&lt;/p&gt;
&lt;p&gt;However, it is missing something. And I believe that thing has a lot to do with the experience of being human. It&#39;s something i&#39;ll boil down to...&lt;/p&gt;
&lt;h2&gt;Inspiration&lt;/h2&gt;
&lt;p&gt;Here, I&#39;ll use the term inspiration in a slightly specific way. I use it to describe something I believe LLMs are fundamentally incapable of experiencing. Inspiration, to me, is a phenomenon in the brain that introduces variance, and allows us to come up with unique ideas.&lt;/p&gt;
&lt;p&gt;An LLM introduces variance into its output by rolling a random number, and using it to decide if it will vary from its statistical calculation. As humans, we do no such thing. In fact, the output of our thoughts is even more deterministic. It&#39;s the result of the lighting pathways within our minds. A mass of connected neurons firing together to form thoughts, ideas, memories. However, humans manage to achieve variant thoughts in a totally different way: experiences.&lt;/p&gt;
&lt;p&gt;The core idea of inspiration, to me, is that human thought becomes unique when it&#39;s paired with the experiences of being a human. An LLM may reason in one line of thought, but a human&#39;s line of thinking is directly influenced by whatever else hits the brain at that time. It might be a stimuli (smell, sight, sound), it might be a memory (technically feasible with a big context window, but humans have context windows that AI could only dream of), it might even be literal damage (maybe you&#39;re concussed? idk). Regardless of what it is, the system of human thought is more than just context and linear reasoning. The chemistry in the brain is subject to the environment to such a degree that variance is inevitable. An LLM would not have an apple fall on its head like Newton, nor could it get an idea for a melody by walking down the street. Even writing this post, I am listening to relaxing music, which is without a doubt setting the tone for my writing.&lt;/p&gt;
&lt;p&gt;To me, Inspiration is consciousness incarnate. It&#39;s whats missing in AI art, it&#39;s what&#39;s missing in AI writing, and it&#39;s what the greatest minds in history have ample of. To be more human, is to be more inspired.&lt;/p&gt;
&lt;h2&gt;Closer&lt;/h2&gt;
&lt;p&gt;I feel the need to write a closer here, though I think the last line of the previous section closes it out well. Who knows if AI advancement will get to the point where it manages to encode inspiration somehow. All I know is, there are humans that are capable of reason without any inner monologue at all. So until we find more ways to distill ideas out of math (like we have with statistics and language), I&#39;m not confident that we&#39;ll ever hit something that replicates a human perfectly.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>To Make a Blog Usable</title>
    <link href="https://www.lordnet.sh/fragments/blog/Blog_Modernization/" />
    <updated>2026-08-19T00:00:00Z</updated>
    <id>https://www.lordnet.sh/fragments/blog/Blog_Modernization/</id>
    <content type="html">&lt;h2&gt;Intro&lt;/h2&gt;
&lt;p&gt;I&#39;ve had a few iterations of blogs and sites over the years. Turns out, the less you use something, the more difficult it is to keep it working the way you want. I&#39;m going to spend this post talking a bit about the types of technologies I went through, and where I am now. Maybe this helps someone build something sane, that may need to sit idle for years at a time.&lt;/p&gt;
&lt;h3&gt;Some Requirements, or &amp;quot;Why Not WordPress?&amp;quot;&lt;/h3&gt;
&lt;p&gt;My biggest requirement for my website was to be lightweight. I&#39;m not particularly interested in a million WordPress plugins, and really just offers me attack surface for no benefit. &lt;a href=&quot;https://motherfuckingwebsite.com/&quot;&gt;Could a website that just works really be that hard?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Of course, this is a little hypocritical - you&#39;ve probably noticed my website is pretty stylized. But at the core of the site, it&#39;s a rather simple framework that delivers text in an orderly fashion. Which brings me to my next requirement...&lt;/p&gt;
&lt;p&gt;My website should be customizable. That&#39;s the whole point! I&#39;m not here to use a platform that lets me pick a few colors out of a palette for their UI. I want full control over how my site looks. In this sense, I want to &lt;em&gt;build&lt;/em&gt; a website, not just inherit a structure for my blog post.&lt;/p&gt;
&lt;p&gt;The website should be extensible. I don&#39;t want to lock myself out of the million potential features that WordPress offers. &lt;a href=&quot;https://thebestmotherfucking.website/&quot;&gt;As much as I love my simplicity, sometimes I like features too.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finally, the website should be stable. Surprisingly difficult! I noticed a trend that any website I could host on another platform that handles things for you, WILL be deprecated eventually. That&#39;ll be a headache.&lt;/p&gt;
&lt;h2&gt;Jekyll on GitHub Pages&lt;/h2&gt;
&lt;p&gt;When I tried this almost a decade ago (horrifying), this was what everyone was talking about when you look up a lightweight blog. This was also my first static site generator (SSG). SSGs are fundamentally exactly what I&#39;m looking for. They are close to the bare minimum to stand up on a server (often just whatever HTML/CSS/JS you want), while also offering a good way to write posts and pages in a simple way (Markdown). In fact, this approach would&#39;ve been exactly what I use today, if it weren&#39;t for the actual mechanisms behind hosting on GitHub.&lt;/p&gt;
&lt;p&gt;To me, hosting an SSG on GitHub was a harrowing experience. Practically every time I wanted to make a blog post, I&#39;d clone down the repository, and find some issue with the SSGs build environment that just didn&#39;t work. Sometimes GitHub&#39;s ruby implementation was out-of-date, sometimes Jekyll stopped supporting whatever version GitHub was using, sometimes the version they both supported wasn&#39;t supported any more on my machine&#39;s repositories. I often spent more time trying to get my environment to function than I did actually writing posts.&lt;/p&gt;
&lt;p&gt;Look, I&#39;m a sick freak and truly love fixing obscure software issues, but this is too much even for me. Just let me write the damn post, man.&lt;/p&gt;
&lt;h2&gt;Substack, Neocities, Tumblr, Etc.&lt;/h2&gt;
&lt;p&gt;There&#39;s a genre of site I like to think of as a &amp;quot;custom page container&amp;quot;. Substack less so than this, but Tumblr fits the bill if you think about it. If a platform just needs to be customizable with web technologies and make posts, why anything else?&lt;/p&gt;
&lt;p&gt;Well, for starters, I like my domain. I like it when people visit &lt;a href=&quot;https://www.lordnet.sh&quot;&gt;lordnet.sh&lt;/a&gt;, and I feel awesome linking it. Plus, it was around this time that control started becoming one of my concerns. By this point, GitHub was almost down more than it was up. Why subject myself to the uptime of another entity? Especially small fry (all due respect) like Neocities or such.&lt;/p&gt;
&lt;p&gt;Also, if we&#39;re talking polish, Substack crushes the rest in this category. But it&#39;s way less customizable. Also it looks like twitter, eh.&lt;/p&gt;
&lt;p&gt;I&#39;d like my projects to exist in the same space as my posts, too. When I considered these platforms, I had to concede that my projects would live on GitHub, and my posts would live on another platform. This segmentation, to me, is just ugly.&lt;/p&gt;
&lt;h2&gt;Just a Web Server (Who Even Needs CSS?)&lt;/h2&gt;
&lt;p&gt;Don&#39;t do this. I know I look stupid for mentioning it, but genuinely after wrestling with Jekyll and being dissatisfied with the more streamlined solutions, part of me just wanted to throw HTML onto a web server and call it a day.&lt;/p&gt;
&lt;p&gt;It should be obvious why this is a bad idea. Who has to organize it? Me. Who has to make sure every post is referenced? Also me. Not even to mention designing it, if you want it to not look like a 70 year old CS professor&#39;s .edu page. Not that there&#39;s anything wrong with that. Full respect to that.&lt;/p&gt;
&lt;p&gt;Something that&#39;s less obvious about this approach is that it&#39;s way harder to use as a portfolio. If you want to consolidate your projects and posts into one platform, you need to remember that some HR department that wants to hire you should be able to navigate it. Way harder than it sounds! If any HR departments are reading this, this is not an insult, engineers genuinely cannot build software to accommodate normal people. You need to yell at us. Building for non tech people is a whole skill to consider.&lt;/p&gt;
&lt;h2&gt;The Stack I Landed on: 11Ty on My Own Hardware&lt;/h2&gt;
&lt;p&gt;It might sound a little silly to go from &amp;quot;Hey you don&#39;t want to build it yourself&amp;quot; to &amp;quot;Hey just build 90% of it yourself&amp;quot; - but I promise it&#39;s way easier than it sounds. If you&#39;re willing to throw together a little CSS (the worst part), your SSG of choice will practically do the rest for you.&lt;/p&gt;
&lt;p&gt;If you don&#39;t have your own hardware, a cloud device will do just fine. But I&#39;m honestly in love with the way my stack looks right now. A little bit of elbow grease in, and I have a Forgejo action (GitHub actions for people who like stuff on-prem) that automatically deploys it to my web server.&lt;/p&gt;
&lt;p&gt;The flow is easy now that it&#39;s set up. Write a blog post, &lt;code&gt;git commit&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt;, done. The automations handle the rest. 11ty is configured to automatically generate what I call the &amp;quot;boring&amp;quot; variant of the page, where normal people don&#39;t have to look at my goofy phosphor website. It&#39;s linkable to us dorks and well-adjusted individuals alike.&lt;/p&gt;
&lt;p&gt;My projects and posts exist on a page that 11ty generates as a collection, meaning when I upload blog posts or projects, it&#39;ll populate those lists, and list/organize them accordingly when requested.&lt;/p&gt;
&lt;p&gt;The drawback? It&#39;s work, man. Ignoring the strange layout of the main site, I had to string together a lot of boilerplate for the 11ty logic to handle a lot of this stuff for me. Not for the faint of heart.&lt;/p&gt;
&lt;p&gt;But hey, at least I can guarantee that 2 years from now, GitHub won&#39;t throw a fit based on what ruby version my blog was written against.&lt;/p&gt;
&lt;h2&gt;Epilogue&lt;/h2&gt;
&lt;p&gt;If you host any of your own machines, I super recommend this flow. I use 11ty to build my website, Forgejo to orchestrate the build, and Caddy to host the output. The beauty here is that any of this stack can be swapped out. You don&#39;t even need to have a GitHub actions equivalent to build it, I just found it convenient.&lt;/p&gt;
&lt;p&gt;But if you were interested in hosting all of your data yourself, I highly recommend it! It&#39;s not a very heavyweight process (besides the orchestrator - again optional).&lt;/p&gt;
&lt;p&gt;Expect to see more posts from me as I&#39;ve made this exponentially easier. I&#39;ve also added &lt;a href=&quot;https://www.lordnet.sh/feed.xml&quot;&gt;An atom feed here&lt;/a&gt;. I&#39;ll be adding a subscribe button alongside the commit that builds this post, stay tuned!&lt;/p&gt;
</content>
  </entry>
</feed>