<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>kuripuri's Blog</title><link>https://edhlii.github.io/</link><description>Recent content on kuripuri's Blog</description><generator>Hugo -- 0.149.0</generator><language>en-us</language><lastBuildDate>Thu, 02 Apr 2026 10:15:41 +0700</lastBuildDate><atom:link href="https://edhlii.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>EHAX CTF 2026 Writeup</title><link>https://edhlii.github.io/ctf/ehax_ctf_2026/</link><pubDate>Thu, 02 Apr 2026 10:15:41 +0700</pubDate><guid>https://edhlii.github.io/ctf/ehax_ctf_2026/</guid><description>&lt;h1 id="ehax-ctf-2026-writeup"&gt;EHAX CTF 2026 Writeup&lt;/h1&gt;
&lt;p&gt;Giải này mình vô muộn, làm trong một buổi sáng nên đc mỗi một bài.&lt;/p&gt;
&lt;h2 id="i-guess-bro"&gt;I guess bro&lt;/h2&gt;
&lt;p&gt;Bỏ vô DiE xem trước.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://hackmd.io/_uploads/SJnKvQWtbl.png"&gt;&lt;/p&gt;
&lt;p&gt;Challenge này chạy không được. Lý do vì nó được compile bằng kiến trúc &lt;a href="https://vi.wikipedia.org/wiki/RISC"&gt;RISC&lt;/a&gt;. Kiến trúc này sử dụng tập lệnh khác với kiến trúc máy tính phổ thông hiện đại CISC. Thật ra muốn chạy thì có thể cài máy ảo, nhưng trước tiên mình thử phân tích tĩnh xem có gì hay đã.&lt;/p&gt;</description></item><item><title>Tamu CTF 2026 Writeup</title><link>https://edhlii.github.io/ctf/tamu_ctf_2026/</link><pubDate>Thu, 02 Apr 2026 10:15:41 +0700</pubDate><guid>https://edhlii.github.io/ctf/tamu_ctf_2026/</guid><description>&lt;h1 id="tamu-ctf-2026-writeup"&gt;Tamu CTF 2026 Writeup&lt;/h1&gt;
&lt;h2 id="nucleus"&gt;nucleus&lt;/h2&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://hackmd.io/_uploads/B15eCHiqZe.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;nucleus21.exe&lt;/code&gt; khi chạy sinh ra file &lt;code&gt;nucleus22.exe&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Mở IDA lên phân tích.&lt;/p&gt;
&lt;p&gt;Luồng hoạt động chương trình khá đơn giản:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy nội dung của chương trình hiện tại.&lt;/li&gt;
&lt;li&gt;XOR toàn bộ với một ký tự do user nhập.&lt;/li&gt;
&lt;li&gt;Lưu vào &lt;code&gt;.rsrc&lt;/code&gt; và đẻ ra file mới mang theo xác của file cũ.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nhiệm vụ bây giờ là tìm về thế hệ đầu tiên xem các ký tự đã được dùng làm key để XOR là gì.&lt;/p&gt;</description></item><item><title>BKSec Training 2026 Writeup</title><link>https://edhlii.github.io/ctf/bksec_training_2026/</link><pubDate>Thu, 26 Feb 2026 10:15:41 +0700</pubDate><guid>https://edhlii.github.io/ctf/bksec_training_2026/</guid><description>&lt;p&gt;Write up này tự nhiên có hứng viết bằng tiếng Anh. Nên sai chính tả mn thông cảm nha.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#reverse-engineer"&gt;Reverse Engineer&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#babyrust0"&gt;BabyRust0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#pyxe"&gt;pyxe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#babylua"&gt;babylua&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#childrust"&gt;ChildRust&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pwn"&gt;Pwn&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#introduction-to-pwntools"&gt;Introduction to pwntools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bof_1"&gt;bof_1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bof_2"&gt;bof_2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bof_3"&gt;bof_3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#int_1"&gt;int_1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bof_4"&gt;bof_4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#shell_1"&gt;shell_1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#index_1"&gt;index_1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ret2libc"&gt;ret2libc&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#stage-1-leak-libc-address"&gt;Stage 1: Leak libc address.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#stage-2-spawn-shell"&gt;Stage 2: Spawn shell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#fmt_1"&gt;fmt_1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#fmt_2"&gt;fmt_2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="reverse-engineer"&gt;Reverse Engineer&lt;/h1&gt;
&lt;h2 id="babyrust0"&gt;BabyRust0&lt;/h2&gt;
&lt;p&gt;Open with IDA Pro. We check the &lt;code&gt;main::main()&lt;/code&gt; function.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__fastcall&lt;/span&gt; __noreturn main&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a1,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a2,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a3,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a4,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a5,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a6,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a7,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a8,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a9,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a10,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a11,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a12,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a13,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a14,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a15,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a16,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a17,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a18,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a19,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a20,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt; a21,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a22,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a23,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a24,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a25,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a26,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a27,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a28,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a29,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a30,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a31,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a32,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a33,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a34,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a35,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a36,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;struct&lt;/span&gt; _Unwind_Exception &lt;span style="color:#f92672"&gt;*&lt;/span&gt;a37,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; a38)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v38; &lt;span style="color:#75715e"&gt;// rax
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v39; &lt;span style="color:#75715e"&gt;// rax
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v40; &lt;span style="color:#75715e"&gt;// rdx
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v41; &lt;span style="color:#75715e"&gt;// rax
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v42; &lt;span style="color:#75715e"&gt;// rdx
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; _BYTE &lt;span style="color:#f92672"&gt;*&lt;/span&gt;v43; &lt;span style="color:#75715e"&gt;// rax
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;unsigned&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v44; &lt;span style="color:#75715e"&gt;// rdx
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; _BYTE v45[&lt;span style="color:#ae81ff"&gt;48&lt;/span&gt;]; &lt;span style="color:#75715e"&gt;// [rsp+48h] [rbp-C0h] BYREF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; _BYTE v46[&lt;span style="color:#ae81ff"&gt;24&lt;/span&gt;]; &lt;span style="color:#75715e"&gt;// [rsp+78h] [rbp-90h] BYREF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;__int64&lt;/span&gt; v47; &lt;span style="color:#75715e"&gt;// [rsp+90h] [rbp-78h]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; _BYTE v48[&lt;span style="color:#ae81ff"&gt;48&lt;/span&gt;]; &lt;span style="color:#75715e"&gt;// [rsp+98h] [rbp-70h] BYREF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt; _BYTE v49[&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;]; &lt;span style="color:#75715e"&gt;// [rsp+C8h] [rbp-40h] BYREF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; ( &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;fmt&lt;span style="color:#f92672"&gt;::&lt;/span&gt;rt&lt;span style="color:#f92672"&gt;::&amp;lt;&lt;/span&gt;impl core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;fmt&lt;span style="color:#f92672"&gt;::&lt;/span&gt;Arguments&lt;span style="color:#f92672"&gt;&amp;gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;new_const&lt;/span&gt;(v45, &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;off_5555555AEB70);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;io&lt;span style="color:#f92672"&gt;::&lt;/span&gt;stdio&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;_print&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; alloc&lt;span style="color:#f92672"&gt;::&lt;/span&gt;string&lt;span style="color:#f92672"&gt;::&lt;/span&gt;String&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;new&lt;/span&gt;(v46);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;io&lt;span style="color:#f92672"&gt;::&lt;/span&gt;stdio&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;stdin&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v47 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; v38;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;io&lt;span style="color:#f92672"&gt;::&lt;/span&gt;stdio&lt;span style="color:#f92672"&gt;::&lt;/span&gt;Stdin&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;read_line&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;result&lt;span style="color:#f92672"&gt;::&lt;/span&gt;Result&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;T,E&lt;span style="color:#f92672"&gt;&amp;gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(v39, v40, aFailedToReadLi, &lt;span style="color:#ae81ff"&gt;19LL&lt;/span&gt;, &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;off_5555555AEB80);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v41 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;alloc&lt;span style="color:#f92672"&gt;::&lt;/span&gt;string&lt;span style="color:#f92672"&gt;::&lt;/span&gt;String as core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;ops&lt;span style="color:#f92672"&gt;::&lt;/span&gt;deref&lt;span style="color:#f92672"&gt;::&lt;/span&gt;Deref&lt;span style="color:#f92672"&gt;&amp;gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;deref&lt;/span&gt;(v46);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v43 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (_BYTE &lt;span style="color:#f92672"&gt;*&lt;/span&gt;)core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;str&lt;span style="color:#f92672"&gt;::&amp;lt;&lt;/span&gt;impl str&lt;span style="color:#f92672"&gt;&amp;gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;trim&lt;/span&gt;(v41, v42);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; ( main&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;check&lt;/span&gt;(v43, v44) )
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;fmt&lt;span style="color:#f92672"&gt;::&lt;/span&gt;rt&lt;span style="color:#f92672"&gt;::&amp;lt;&lt;/span&gt;impl core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;fmt&lt;span style="color:#f92672"&gt;::&lt;/span&gt;Arguments&lt;span style="color:#f92672"&gt;&amp;gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;new_const&lt;/span&gt;(v49, &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;off_5555555AEB98);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;io&lt;span style="color:#f92672"&gt;::&lt;/span&gt;stdio&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;_print&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;ptr&lt;span style="color:#f92672"&gt;::&lt;/span&gt;drop_in_place&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;alloc&lt;span style="color:#f92672"&gt;::&lt;/span&gt;string&lt;span style="color:#f92672"&gt;::&lt;/span&gt;String&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;(v46);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;fmt&lt;span style="color:#f92672"&gt;::&lt;/span&gt;rt&lt;span style="color:#f92672"&gt;::&amp;lt;&lt;/span&gt;impl core&lt;span style="color:#f92672"&gt;::&lt;/span&gt;fmt&lt;span style="color:#f92672"&gt;::&lt;/span&gt;Arguments&lt;span style="color:#f92672"&gt;&amp;gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;new_const&lt;/span&gt;(v48, &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt;off_5555555AEBA8);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;io&lt;span style="color:#f92672"&gt;::&lt;/span&gt;stdio&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;_print&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#f92672"&gt;::&lt;/span&gt;process&lt;span style="color:#f92672"&gt;::&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;exit&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Notice the &lt;code&gt;main::check()&lt;/code&gt; function. It pass &lt;code&gt;v43, v44&lt;/code&gt; as argument. That is the function to check the password correct or not.&lt;/p&gt;</description></item><item><title>Writeup Vòng loại Đội tuyển SVATTT PTIT 2026</title><link>https://edhlii.github.io/ctf/svattt_ptit_quals_2025/</link><pubDate>Thu, 26 Feb 2026 10:15:41 +0700</pubDate><guid>https://edhlii.github.io/ctf/svattt_ptit_quals_2025/</guid><description>&lt;p&gt;&lt;strong&gt;LƯU Ý:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Đây không phải write-up 100% tự làm. Tôi đang làm lại những bài mình còn bị mắc. Trong quá trình đó tôi có đọc write-up của những người khác và nhiều nguồn khác nữa. Đây giống như một bản note tôi viết để chính mình đọc và học hỏi từ các challenge cũ.&lt;/p&gt;
&lt;h1 id="atula"&gt;ATULA&lt;/h1&gt;
&lt;p&gt;Challenge cung cấp một file hơn 600MB. File không chạy được, có lẽ đã bị hỏng.&lt;/p&gt;</description></item><item><title>About Me</title><link>https://edhlii.github.io/about/</link><pubDate>Thu, 26 Feb 2026 10:00:00 +0700</pubDate><guid>https://edhlii.github.io/about/</guid><description>&lt;h1 id="about-me"&gt;About Me&lt;/h1&gt;
&lt;p&gt;Chào mừng mọi người tới với blog này.&lt;/p&gt;
&lt;p&gt;Tôi/Mình là Hiếu (handle name kuripuri, tên đặt hồi c2 nên đừng hỏi ý nghĩa). Hiện mình học &lt;strong&gt;An toàn thông tin&lt;/strong&gt; ở &lt;strong&gt;Học viện Công nghệ Bưu chính Viễn thông&lt;/strong&gt;. Mình là người &lt;strong&gt;Việt Nam&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Mình hứng thú với lập trình và công nghệ thông tin nói chung. Game, web, security, A.I mình đều học cả (thành ra ko có gì nên hồn T_T). Mình vẫn tập trung vào security nhiều hơn. Ngoài ra thì mình hay xem anime trong thời gian rảnh. Lâu lâu mình có chơi game, nhưng chơi 1 giai đoạn rồi lại chán, rồi lại bỏ.&lt;/p&gt;</description></item><item><title>Java Core Buổi 3: Tính đóng gói, kế thừa và đa hình.</title><link>https://edhlii.github.io/posts/tu-hoc-java-b3/</link><pubDate>Fri, 14 Nov 2025 08:17:20 +0700</pubDate><guid>https://edhlii.github.io/posts/tu-hoc-java-b3/</guid><description>&lt;p&gt;Halo halo! Lại là mình đây. Hôm nay tiếp tục đến với chuyên đề Java Core thứ 3 nha. Thực sự là mấy tuần qua mình mải cày alime quá nên cũng suýt quên mất là mình có cái blog 😭🥀. Btw các bạn nếu thích thú thì xem thử &lt;strong&gt;Kamisama ni natta hi&lt;/strong&gt; và &lt;strong&gt;Angel Beat&lt;/strong&gt; nha (Angel Beat thì quá nổi rồi mà bây giờ mình mới xem&amp;hellip;). Oke, không dài dòng nữa, vào bài!&lt;/p&gt;</description></item><item><title>Java Core Buổi 2: Object là gì?</title><link>https://edhlii.github.io/posts/tu-hoc-java-b2/</link><pubDate>Mon, 20 Oct 2025 16:41:43 +0700</pubDate><guid>https://edhlii.github.io/posts/tu-hoc-java-b2/</guid><description>&lt;p&gt;Haloo!&lt;br&gt;
Chào mọi người, hôm nay tiếp tục chuyên mục tự học Java nha. Buổi này ta sẽ cùng học về Object!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Buổi 2: Object&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mục lục&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#i-object-l%C3%A0-g%C3%AC"&gt;I. Object là gì?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-kh%C3%A1i-ni%E1%BB%87m-object"&gt;1. Khái niệm Object&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-object-l%C6%B0u-th%E1%BA%BF-n%C3%A0o-trong-java"&gt;2. Object lưu thế nào trong Java?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#ii-wrapper-class"&gt;II. Wrapper class.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#iii-auto-boxing--auto-unboxing"&gt;III. Auto boxing / Auto unboxing.&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-auto-boxing"&gt;1. Auto boxing.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-auto-unboxing"&gt;2. Auto unboxing.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#iv-string-v%C3%A0-stringbuilder"&gt;IV. String và StringBuilder.&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-string"&gt;1. String&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-stringbuilder"&gt;2. StringBuilder&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#v-v%E1%BB%81-to%C3%A1n-t%E1%BB%AD--equals-hashcode"&gt;V. Về toán tử ==, equals(), hashcode().&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-equals-v%C3%A0-to%C3%A1n-t%E1%BB%AD-"&gt;1. equals() và toán tử ==.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-hashcode"&gt;2. hashcode.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vi-truy%E1%BB%81n-tham-s%E1%BB%91-pass-by-value"&gt;VI. Truyền tham số, pass by value.&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1-pass-by-value"&gt;1. Pass by value.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-t%E1%BA%A1i-sao-pass-by-value-m%C3%A0-string-l%E1%BA%A1i-thay-%C4%91%E1%BB%95i-%C4%91%C6%B0%E1%BB%A3c"&gt;2. Tại sao pass by value mà String lại thay đổi được.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vii-garbage-collector"&gt;VII. Garbage Collector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#l%E1%BB%9Di-k%E1%BA%BFt"&gt;Lời kết&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="i-object-là-gì"&gt;I. Object là gì?&lt;/h2&gt;
&lt;h3 id="1-khái-niệm-object"&gt;1. Khái niệm Object&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Class và Object&lt;/strong&gt; là 2 khái niệm quan trọng bậc nhất trong lập trình hướng đối tượng. Để hiểu về Object, trước tiên ta cần hiểu đúng về class.&lt;/p&gt;</description></item><item><title>Java Core Buổi 1: Tổng quan về Java, Syntax cơ bản.</title><link>https://edhlii.github.io/posts/tu-hoc-java-b1/</link><pubDate>Sun, 19 Oct 2025 10:56:53 +0700</pubDate><guid>https://edhlii.github.io/posts/tu-hoc-java-b1/</guid><description>&lt;p&gt;Chào mina-san!&lt;br&gt;
Lại là mình đây. Gần đây CLB mình bắt đầu dạy khoá &lt;strong&gt;Java Core&lt;/strong&gt;. Tức là dạy về Java và tư duy OOP cơ bản ấy. Nhân cơ hội này mình tranh thủ up các tài liệu mà mình làm lên blog luôn. Để chia sẻ cho mọi người, cũng như để sau này mình xem lại cho tiện 😊.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#i-ng%C3%B4n-ng%E1%BB%AF-java-l%C3%A0-g%C3%AC"&gt;I. Ngôn ngữ Java là gì&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ii-l%C3%BD-do-ra-%C4%91%E1%BB%9Di-c%E1%BB%A7a-java"&gt;II. Lý do ra đời của Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#iii-c%C3%A1ch-java-ho%E1%BA%A1t-%C4%91%E1%BB%99ng"&gt;III. Cách Java hoạt động&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#iv-c%E1%BA%A5u-tr%C3%BAc-m%E1%BB%99t-ch%C6%B0%C6%A1ng-tr%C3%ACnh-java"&gt;IV. Cấu trúc một chương trình Java&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#v-package-l%C3%A0-g%C3%AC"&gt;V. Package là gì?&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#khai-b%C3%A1o-package"&gt;Khai báo package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#s%E1%BB%AD-d%E1%BB%A5ng-package"&gt;Sử dụng package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vi-syntax-c%C6%A1-b%E1%BA%A3n"&gt;VI. Syntax cơ bản&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#khai-b%C3%A1o-bi%E1%BA%BFn-nguy%C3%AAn-thu%E1%BB%B7"&gt;Khai báo biến nguyên thuỷ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#v%C3%B2ng-l%E1%BA%B7p"&gt;Vòng lặp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#l%E1%BB%87nh-r%E1%BA%BD-nh%C3%A1nh"&gt;Lệnh rẽ nhánh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#m%E1%BA%A3ng"&gt;Mảng&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#vii-t%E1%BB%95ng-quan-v%E1%BB%81-class-v%C3%A0-object"&gt;VII. Tổng quan về Class và Object&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#class-v%C3%A0-object"&gt;Class và Object&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#t%E1%BB%AB-kho%C3%A1-this"&gt;Từ khoá this&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#constructor"&gt;Constructor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#access-modifier"&gt;Access Modifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#getter-setter"&gt;Getter, Setter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#t%E1%BB%AB-kho%C3%A1-static"&gt;Từ khoá Static&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#l%E1%BB%9Di-cu%E1%BB%91i"&gt;Lời cuối&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="i-ngôn-ngữ-java-là-gì"&gt;I. Ngôn ngữ Java là gì&lt;/h2&gt;
&lt;p&gt;Java là một ngôn ngữ lập trình &lt;strong&gt;hướng đối tượng&lt;/strong&gt; (Object Oriented Programming -OOP), đa nền tảng. Được &lt;strong&gt;Sun Microsystems&lt;/strong&gt; (nay thuộc &lt;strong&gt;Oracle&lt;/strong&gt;) phát triển vào năm 1995.&lt;/p&gt;</description></item><item><title>Hành trình lập trình thi đấu!</title><link>https://edhlii.github.io/posts/hanh-trinh-cp/</link><pubDate>Wed, 08 Oct 2025 09:21:41 +0700</pubDate><guid>https://edhlii.github.io/posts/hanh-trinh-cp/</guid><description>&lt;p&gt;Chào mọi người, lại là mình đây!!!&lt;/p&gt;
&lt;p&gt;Sau một khoảng thời gian rất lâu. Hôm nay mình mới nhớ lại là mình có một trang blog. Nên lọ mọ ngồi viết bài đây~. Nhân tiện thì mình là thằng ngồi giữa trong ảnh trên nhé :3.&lt;/p&gt;
&lt;h1 id="năm-cấp-3-của-mình-"&gt;Năm cấp 3 của mình 🐧&lt;/h1&gt;
&lt;p&gt;Mình không phải đứa có nền toán quá mạnh. Các kiến thức cơ bản thì mình nắm kỹ, nhưng các kiến thức nâng cao thì mình chẳng có tẹo gì. Hồi cấp 2 mình có đăng ký thi HSG toán, hoá cấp huyện nhưng xếp bét cả huyện luôn 😭.
Vậy nên mình nghĩ lên cấp 3 mình sẽ không tham gia đội tuyển nào nữa. Tập trung học các môn tổ hợp để thi đại học thôi&amp;hellip;&lt;/p&gt;</description></item><item><title>Trải nghiệm dùng Linux của mình (Arch btw)</title><link>https://edhlii.github.io/posts/trai-nghiem-linux/</link><pubDate>Fri, 21 Feb 2025 08:25:26 +0700</pubDate><guid>https://edhlii.github.io/posts/trai-nghiem-linux/</guid><description>&lt;p&gt;Chào mọi người!&lt;/p&gt;
&lt;p&gt;Không dài dòng, thì như cái tiêu đề, mình là một người dùng Linux fulltime (Arch btw). Mình viết bài này để chia sẻ trải nghiệm của mình, để các bạn có thể tham khảo và cân nhắc xem nên chuyển qua Linux không. Bây giờ vào nội dung chính nha 😊&lt;/p&gt;
&lt;h1 id="tại-sao-dùng-linux-"&gt;Tại sao dùng Linux 🐧&lt;/h1&gt;
&lt;p&gt;Quay lại hồi cấp 3 của mình. Lúc đó mình chỉ có con laptop cùi cùi, lướt web còn lag (mấy og đừng có bảo tôi coi cái gì vớ vẩn nhá 😮). Lí do vì Windows rất là &lt;strong&gt;bloat&lt;/strong&gt;. Nên mình quyết định thử chuyển qua Linux dùng, vì mình nghe nói Linux nhẹ hơn Windows rất nhiều. Sau đó thì dùng quen nên dùng tới bây giờ luôn lmao 🤣.&lt;/p&gt;</description></item><item><title>First Post</title><link>https://edhlii.github.io/posts/first-post/</link><pubDate>Thu, 20 Feb 2025 16:28:32 +0700</pubDate><guid>https://edhlii.github.io/posts/first-post/</guid><description>Like the title have just said!</description></item></channel></rss>