Skip to content

Commit

Permalink
deploy: 3ade4dd
Browse files Browse the repository at this point in the history
  • Loading branch information
TheEquus committed Jan 10, 2025
1 parent b71e164 commit 7fd7006
Show file tree
Hide file tree
Showing 8 changed files with 267 additions and 39 deletions.
4 changes: 2 additions & 2 deletions about/index.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!doctype html><html lang=en data-mode=dark><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=description content='Annie Nie&#39;s personal website "full of" personal projects and CTF writeups, where I try not to break things'><title>About</title>
<link rel=preload href=https://anniequus.com/fonts/AnonymousPro-Regular.ttf as=font crossorigin=anonymous><link rel=preload href=https://anniequus.com/fonts/Heebo-VariableFont_wght.ttf as=font crossorigin=anonymous><link rel=preload href=https://anniequus.com/fonts/Rubik-VariableFont_wght.ttf as=font crossorigin=anonymous><link rel=stylesheet href=https://anniequus.com/css/main.min.438d8614614734b73815278dc3c64b0220335c8c5e5168baefe118fb203f84bb.css integrity="sha256-Q42GFGFHNLc4FSeNw8ZLAiAzXIxeUWi67+EY+yA/hLs=" crossorigin=anonymous><script defer src=https://anniequus.com/js/main.min.cf29f7226a9c2b2d20303d20e6fdd133796cbbd092dfd7486f2e01b089ffe03d.js integrity="sha256-zyn3ImqcKy0gMD0g5v3RM3lsu9CS39dIby4BsIn/4D0=" crossorigin=anonymous></script></head><body><header id=navbar><h1><a href=https://anniequus.com/>Equus 🐴 (Annie)</a></h1><ul><li><a href=/about/>About</a></li><li><a href=/posts/>Posts</a></li></ul></header><a href=# id=backtotop></a><div class=content><main class=about><article><header><h1>About Me</h1></header><p>Hi I&rsquo;m Annie Nie, and I do random things.</p><p>CTF-ing with <a href=https://ctftime.org/team/140575 target=_blank rel=noreferrer>skateboarding dog</a>
🛹🐶.</p><p>Contact me on <a href=https://www.linkedin.com/in/annienie/ target=_blank rel=noreferrer>LinkedIn</a>
🛹🐶.</p><p>Contact me on <a href=https://www.linkedin.com/in/aaannie/ target=_blank rel=noreferrer>LinkedIn</a>
, <a href=https://twitter.com/ThatEquus target=_blank rel=noreferrer>X</a>
or chuck an email <a href=mailto:contact@anniequus.com>[email protected]</a></p></article></main></div></body></html>
or chuck an email contact[at]anniequus.com</p></article></main></div></body></html>
52 changes: 44 additions & 8 deletions categories/ctf/index.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CTF on Equus 🐴 (Annie)</title><link>https://anniequus.com/categories/ctf/</link><description>Recent content in CTF on Equus 🐴 (Annie)</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Sun, 26 Sep 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://anniequus.com/categories/ctf/index.xml" rel="self" type="application/rss+xml"/><item><title>Path to a crypto master, the engineer way</title><link>https://anniequus.com/posts/sub1-ductf2021/</link><pubDate>Sun, 26 Sep 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/sub1-ductf2021/</guid><description>Who knew I&amp;rsquo;d be writing a crypto writeup.
The Beginning The challenge provides a SageMath bit of code, as well as a cipher text.
def encrypt(msg, f): return &amp;#39;&amp;#39;.join(chr(f.substitute(c)) for c in msg) P.&amp;lt;x&amp;gt; = PolynomialRing(ZZ) f = 13*x^2 + 3*x + 7 FLAG = open(&amp;#39;./flag.txt&amp;#39;, &amp;#39;rb&amp;#39;).read().strip() enc = encrypt(FLAG, f) print(enc) That&amp;rsquo;s some messy looking cipher text&amp;hellip;
Understanding the sage Thankfully the SageMath here is nice and short. All that we need to know, is that each character of the flag is thrown into the encryption function f.</description></item><item><title>"Oh yeah Motorola exists" - Revelations made in CSAW CTF 2021</title><link>https://anniequus.com/posts/csaw2021-serial/</link><pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/csaw2021-serial/</guid><description>A mildly interesting challenge that touches (very briefly) on serial communication. But given that the files are .sal files, we can use the trusty old Saleae&amp;rsquo;s logic analyser to help decode everything.
TL;DR: Use Saleae to extract information, be reminded that Motorola exists and created S-records, break the information down, use Ghidra to disassemble and decompile the machine code, and make sense of everything to eventually obtain the flag.</description></item><item><title>Inefficiently solving GoogleCTF 2021 with Verilog (ModelSim)</title><link>https://anniequus.com/posts/googlectf-parking/</link><pubDate>Sat, 31 Jul 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/googlectf-parking/</guid><description>I unfortunately did not solve this during the competition period, but mildly obsessed over this for about a week after the competition. Here&amp;rsquo;s how I lost way too many hours of sleep.
TL;DR - Realise this was all just one big digital logic circuit, recognise the different logic gates and connections, build it all in Verilog, solve with some ModelSim bruteforcing, and get enough sleep.
Introduction The challenge provides us with a zip file containing a python script that takes in some data (level1 / level2) to build the challenge.</description></item><item><title>How HackTheBoxCTF Exposed The Marriage of Saleae And Hardware</title><link>https://anniequus.com/posts/htb-hardware-writeups/</link><pubDate>Mon, 26 Apr 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/htb-hardware-writeups/</guid><description>This will be a writeup of all the hardware challenges in HackTheBoxCTF 2021. Although half the challenges in the category was just figuring out the protocol used, there were some interesting lessons learned.
The Basics The first three challenges (which I&amp;rsquo;ll just call the basics) were best for getting used to using Saleae, its analysers, and getting a basic understanding of the protocols. This is where the heavy reliance on Saleae (logic analyser alpha) begins.</description></item></channel></rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CTF on Equus 🐴 (Annie)</title><link>https://anniequus.com/categories/ctf/</link><description>Recent content in CTF on Equus 🐴 (Annie)</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Sun, 26 Sep 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://anniequus.com/categories/ctf/index.xml" rel="self" type="application/rss+xml"/><item><title>Path to a crypto master, the engineer way</title><link>https://anniequus.com/posts/sub1-ductf2021/</link><pubDate>Sun, 26 Sep 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/sub1-ductf2021/</guid><description>&lt;p>




&lt;img src="media/chall.png" alt="Challenge info" loading="lazy"/>

Who knew I&amp;rsquo;d be writing a crypto writeup.&lt;/p>
&lt;h2 id="the-beginning">The Beginning&lt;/h2>
&lt;p>The challenge provides a SageMath bit of code, as well as a cipher text.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-py" data-lang="py">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">encrypt&lt;/span>(msg, f):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> &lt;span style="color:#e6db74">&amp;#39;&amp;#39;&lt;/span>&lt;span style="color:#f92672">.&lt;/span>join(chr(f&lt;span style="color:#f92672">.&lt;/span>substitute(c)) &lt;span style="color:#66d9ef">for&lt;/span> c &lt;span style="color:#f92672">in&lt;/span> msg)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>P&lt;span style="color:#f92672">.&amp;lt;&lt;/span>x&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#f92672">=&lt;/span> PolynomialRing(ZZ)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>f &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#ae81ff">13&lt;/span>&lt;span style="color:#f92672">*&lt;/span>x&lt;span style="color:#f92672">^&lt;/span>&lt;span style="color:#ae81ff">2&lt;/span> &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">3&lt;/span>&lt;span style="color:#f92672">*&lt;/span>x &lt;span style="color:#f92672">+&lt;/span> &lt;span style="color:#ae81ff">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>FLAG &lt;span style="color:#f92672">=&lt;/span> open(&lt;span style="color:#e6db74">&amp;#39;./flag.txt&amp;#39;&lt;/span>, &lt;span style="color:#e6db74">&amp;#39;rb&amp;#39;&lt;/span>)&lt;span style="color:#f92672">.&lt;/span>read()&lt;span style="color:#f92672">.&lt;/span>strip()
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>enc &lt;span style="color:#f92672">=&lt;/span> encrypt(FLAG, f)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>print(enc)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>




&lt;img src="media/CipherText.png" alt="Hex output of cipher text" loading="lazy"/>

That&amp;rsquo;s some messy looking cipher text&amp;hellip;&lt;/p>
&lt;h3 id="understanding-the-sage">Understanding the sage&lt;/h3>
&lt;p>Thankfully the SageMath here is nice and short. All that we need to know, is that each character of the flag is thrown into the encryption function &lt;code>f&lt;/code>. So to reverse it, we just do the opposite.&lt;br>
Since the values were obtained by substituting each character into &lt;code>13*x^2 + 3*x + 7&lt;/code>, to get x back, we solve &lt;code>13*x^2 + 3*x + 7 = &amp;lt;encrypted num&amp;gt;&lt;/code>.&lt;/p></description></item><item><title>"Oh yeah Motorola exists" - Revelations made in CSAW CTF 2021</title><link>https://anniequus.com/posts/csaw2021-serial/</link><pubDate>Tue, 21 Sep 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/csaw2021-serial/</guid><description>&lt;img src="media/ChallInfo.png" alt="Challenge info" loading="lazy"/>

&lt;p>A mildly interesting challenge that touches (very briefly) on serial communication. But given that the files are .sal files, we can use the trusty old Saleae&amp;rsquo;s logic analyser to help decode everything.&lt;/p>
&lt;p>TL;DR: Use Saleae to &lt;a href="#extraction">extract information&lt;/a>, &lt;a href="#research">be reminded that Motorola exists&lt;/a> and created S-records, &lt;a href="#apply">break the information down&lt;/a>, &lt;a href="#loading-up-ghidra">use Ghidra&lt;/a> to disassemble and decompile the machine code, and &lt;a href="#trust-the-python">make sense of everything&lt;/a> to eventually obtain the flag.&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>The challenge gives us two .sal files, and based solely on the challenge description, capture.sal gives us a function block, and key.sal gives us a key of some kind. This seems pretty straight forward, so time to get on extracting.&lt;/p></description></item><item><title>Inefficiently solving GoogleCTF 2021 with Verilog (ModelSim)</title><link>https://anniequus.com/posts/googlectf-parking/</link><pubDate>Sat, 31 Jul 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/googlectf-parking/</guid><description>&lt;img src="media/challenge.png" alt="Challenge info" loading="lazy"/>

&lt;p>I unfortunately did not solve this during the competition period, but mildly obsessed over this for about a week after the competition. Here&amp;rsquo;s how I lost way too many hours of sleep.&lt;/p>
&lt;p>TL;DR - Realise this was all just &lt;a href="#diving-deeper">one big digital logic circuit&lt;/a>, recognise the different &lt;a href="#junction-types">logic gates and connections&lt;/a>, &lt;a href="#building-with-verilog">build it all&lt;/a> in Verilog, solve with some &lt;a href="#writing-the-testbench">ModelSim bruteforcing&lt;/a>, and get enough sleep.&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>The challenge provides us with a &lt;a href="https://github.com/google/google-ctf/tree/master/2021/quals/hw-parking/attachments" target="_blank" rel="noreferrer">zip file&lt;/a>
containing a python script that takes in some data (level1 / level2) to build the challenge. run.sh just serves as an easy way to progress from level1 to level2.&lt;/p></description></item><item><title>How HackTheBoxCTF Exposed The Marriage of Saleae And Hardware</title><link>https://anniequus.com/posts/htb-hardware-writeups/</link><pubDate>Mon, 26 Apr 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/htb-hardware-writeups/</guid><description>&lt;p>This will be a writeup of all the hardware challenges in HackTheBoxCTF 2021. Although half the challenges in the category was just figuring out the protocol used, there were some interesting lessons learned.&lt;/p>
&lt;h2 id="the-basics">The Basics&lt;/h2>
&lt;p>The first three challenges (which I&amp;rsquo;ll just call the basics) were best for getting used to using Saleae, its analysers, and getting a basic understanding of the protocols. This is where the heavy reliance on Saleae (logic analyser alpha) begins.&lt;/p></description></item></channel></rss>
9 changes: 8 additions & 1 deletion categories/projects/index.xml
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on Equus 🐴 (Annie)</title><link>https://anniequus.com/categories/projects/</link><description>Recent content in Projects on Equus 🐴 (Annie)</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Mon, 25 Oct 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://anniequus.com/categories/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>The password manager to cure lockdown woes</title><link>https://anniequus.com/posts/arduino-password-manager/</link><pubDate>Mon, 25 Oct 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/arduino-password-manager/</guid><description>If you see this (without inspecting source), video tags don't seem to work on your browser mate. Introduction I&amp;rsquo;ll be introducing a roughly two week project that I worked on with two other group mates for a uni subject. The theme we were given was to build something that makes our home smarter or more fun. As a team, we started off with the idea of a password manager and decided to add some small fun elements, that would make this password manager the most fun password manager out there (hopefully).</description></item></channel></rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on Equus 🐴 (Annie)</title><link>https://anniequus.com/categories/projects/</link><description>Recent content in Projects on Equus 🐴 (Annie)</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Mon, 25 Oct 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://anniequus.com/categories/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>The password manager to cure lockdown woes</title><link>https://anniequus.com/posts/arduino-password-manager/</link><pubDate>Mon, 25 Oct 2021 00:00:00 +0000</pubDate><guid>https://anniequus.com/posts/arduino-password-manager/</guid><description>&lt;video controls>
&lt;source src="media/FinalPresVideo.mp4" type="audio/mp4">
If you see this (without inspecting source), video tags don't seem to work on your browser mate.
&lt;/video>

&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>I&amp;rsquo;ll be introducing a roughly two week project that I worked on with two other group mates for a uni subject. The theme we were given was to build something that makes our home smarter or more fun. As a team, we started off with the idea of a password manager and decided to add some small fun elements, that would make this password manager the most fun password manager out there (hopefully).
This page will talk about the technical side of the password manager system itself in more detail than the video, as well as a bit about editing (with a tiny bit of animating) a video.&lt;/p></description></item></channel></rss>
Loading

0 comments on commit 7fd7006

Please sign in to comment.