{"id":430,"date":"2024-11-16T15:20:43","date_gmt":"2024-11-16T07:20:43","guid":{"rendered":"https:\/\/noobxiaomeng.top\/?p=430"},"modified":"2024-11-16T15:20:43","modified_gmt":"2024-11-16T07:20:43","slug":"buuctf_1","status":"publish","type":"post","link":"https:\/\/noobxiaomeng.top\/index.php\/2024\/11\/16\/buuctf_1\/","title":{"rendered":"BUUCTF\u7b2c\u4e00\u9875wp"},"content":{"rendered":"<h3>easyre<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u65e0\u58f3\u768464\u4f4d\u7a0b\u5e8f<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208160117.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208160117.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208160117.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u4f7f\u7528IDA\u6253\u5f00\uff0c\u8fdb\u5165main\u51fd\u6570<\/p>\n<pre><code class=\"language-C\">int __fastcall main(int argc, const char **argv, const char **envp)\n{\n  int b; \/\/ [rsp+28h] [rbp-8h] BYREF\n  int a; \/\/ [rsp+2Ch] [rbp-4h] BYREF\n\n  _main();\n  scanf(&quot;%d%d&quot;, &amp;a, &amp;b);\n  if ( a == b )\n    printf(&quot;flag{this_Is_a_EaSyRe}&quot;);\n  else\n    printf(&quot;sorry,you can&#039;t get flag&quot;);\n  return 0;\n}<\/code><\/pre>\n<p>\u76f4\u63a5\u5c31\u6709flag<\/p>\n<h3>reverse1<\/h3>\n<p>64\u4f4d\u65e0\u58f3\uff0cIDA\u6253\u5f00<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208160443.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208160443.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208160443.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8fdb\u5165main\u51fd\u6570<\/p>\n<pre><code class=\"language-C\">int __fastcall main_0(int argc, const char **argv, const char **envp)\n{\n  char *v3; \/\/ rdi\n  __int64 i; \/\/ rcx\n  size_t v5; \/\/ rax\n  char v7; \/\/ [rsp+0h] [rbp-20h] BYREF\n  int j; \/\/ [rsp+24h] [rbp+4h]\n  char Str1[224]; \/\/ [rsp+48h] [rbp+28h] BYREF\n  __int64 v10; \/\/ [rsp+128h] [rbp+108h]\n\n  v3 = &amp;v7;\n  for ( i = 82i64; i; --i )\n  {\n    *(_DWORD *)v3 = -858993460;\n    v3 += 4;\n  }\n  for ( j = 0; ; ++j )\n  {\n    v10 = j;\n    if ( j &gt; j_strlen(Str2) )\n      break;\n    if ( Str2[j] == &#039;o&#039; )\n      Str2[j] = &#039;0&#039;;\n  }\n  sub_1400111D1(&quot;input the flag:&quot;);\n  sub_14001128F(&quot;%20s&quot;, Str1);\n  v5 = j_strlen(Str2);\n  if ( !strncmp(Str1, Str2, v5) )\n    sub_1400111D1(&quot;this is the right flag!\\n&quot;);\n  else\n    sub_1400111D1(&quot;wrong flag\\n&quot;);\n  return 0;\n}<\/code><\/pre>\n<p>\u67e5\u770bStr2<\/p>\n<pre><code class=\"language-C\">Str2            db &#039;{hello_world}&#039;,0<\/code><\/pre>\n<p>\u5c06Str2\u4e2d\u7684o\u66ff\u6362\u62100\uff1aflag{hell0_w0rld}<\/p>\n<h3>reverse2<\/h3>\n<p>64\u4f4d\u7684ELF\u6587\u4ef6<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208161049.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208161049.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208161049.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u7528IDA\u6253\u5f00\uff0c\u8fdb\u5165main\u51fd\u6570<\/p>\n<pre><code class=\"language-C\">int __fastcall main(int argc, const char **argv, const char **envp)\n{\n  int stat_loc; \/\/ [rsp+4h] [rbp-3Ch] BYREF\n  int i; \/\/ [rsp+8h] [rbp-38h]\n  __pid_t pid; \/\/ [rsp+Ch] [rbp-34h]\n  char s2[24]; \/\/ [rsp+10h] [rbp-30h] BYREF\n  unsigned __int64 v8; \/\/ [rsp+28h] [rbp-18h]\n\n  v8 = __readfsqword(0x28u);\n  pid = fork();\n  if ( pid )\n  {\n    waitpid(pid, &amp;stat_loc, 0);\n  }\n  else\n  {\n    for ( i = 0; i &lt;= strlen(&amp;flag); ++i )\n    {\n      if ( *(&amp;flag + i) == &#039;i&#039; || *(&amp;flag + i) == &#039;r&#039; )\n        *(&amp;flag + i) = &#039;1&#039;;\n    }\n  }\n  printf(&quot;input the flag:&quot;);\n  __isoc99_scanf(&quot;%20s&quot;, s2);\n  if ( !strcmp(&amp;flag, s2) )\n    return puts(&quot;this is the right flag!&quot;);\n  else\n    return puts(&quot;wrong flag!&quot;);\n}<\/code><\/pre>\n<p>\u67e5\u770bif\u6bd4\u8f83\u5904\u7684&amp;flag\uff1a<\/p>\n<pre><code class=\"language-C\">.data:0000000000601080 flag            db &#039;{&#039;                  ; DATA XREF: main+34\u2191r\n.data:0000000000601080                                         ; main+44\u2191r ...\n.data:0000000000601081 aHackingForFun  db &#039;hacking_for_fun}&#039;,0<\/code><\/pre>\n<p>\u5c06flag\u4e2d\u7684\u2018i\u2019\u548c\u2018r\u2019\u66ff\u6362\u62101\uff1aflag{hack1ng_fo1_fun}<\/p>\n<h3>\u5185\u6db5\u7684\u8f6f\u4ef6<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c32\u4f4d\u65e0\u58f3exe\uff0c\u8fdb\u5165IDA\u540e\u67e5\u627e\u5b57\u7b26\u4e32+\u4ea4\u53c9\u5f15\u7528\u76f4\u63a5\u5c31\u80fd\u770b\u89c1flag<\/p>\n<pre><code class=\"language-C\">int __cdecl main_0(int argc, const char **argv, const char **envp)\n{\n  char v4[4]; \/\/ [esp+4Ch] [ebp-Ch] BYREF\n  const char *v5; \/\/ [esp+50h] [ebp-8h]\n  int v6; \/\/ [esp+54h] [ebp-4h]\n\n  v6 = 5;\n  v5 = &quot;DBAPP{49d3c93df25caad81232130f3d2ebfad}&quot;;\n  while ( v6 &gt;= 0 )\n  {\n    printf(&amp;byte_4250EC, v6);\n    sub_40100A();\n    --v6;\n  }\n  printf(asc_425088);\n  v4[0] = 1;\n  scanf(&quot;%c&quot;, v4);\n  if ( v4[0] == &#039;Y&#039; )\n  {\n    printf(aOd);\n    return sub_40100A();\n  }\n  else\n  {\n    if ( v4[0] == &#039;N&#039; )\n      printf(&amp;byte_425034);\n    else\n      printf(&amp;byte_42501C);\n    return sub_40100A();\n  }\n}<\/code><\/pre>\n<h3>\u65b0\u5e74\u5feb\u4e50<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u53d1\u73b0\u662f\u4e00\u4e2a32\u4f4d\u5e26\u6709UPX\u58f3\u7684\u7a0b\u5e8f\uff0c\u4f7f\u7528\u5de5\u5177\u8131\u58f3\u540e\u8fdb\u5165IDA<\/p>\n<pre><code class=\"language-C\">int __cdecl main(int argc, const char **argv, const char **envp)\n{\n  char Str2[14]; \/\/ [esp+12h] [ebp-3Ah] BYREF\n  char Str1[44]; \/\/ [esp+20h] [ebp-2Ch] BYREF\n\n  __main();\n  strcpy(Str2, &quot;HappyNewYear!&quot;);\n  memset(Str1, 0, 32);\n  printf(&quot;please input the true flag:&quot;);\n  scanf(&quot;%s&quot;, Str1);\n  if ( !strncmp(Str1, Str2, strlen(Str2)) )\n    return puts(&quot;this is true flag!&quot;);\n  else\n    return puts(&quot;wrong!&quot;);\n}<\/code><\/pre>\n<p>Str2\u5c31\u662f\u6211\u4eec\u7684flag\uff1aflag{HappyNewYear!}<\/p>\n<h3>xor<\/h3>\n<p>64\u4f4d\u65e0\u58f3\uff0c\u4ece\u540d\u5b57\u5c31\u53ef\u4ee5\u770b\u51fa\u8fd9\u9898\u6d89\u53ca\u5230\u5f02\u6216\u8fd0\u7b97\uff0c\u7528IDA\u6253\u5f00<\/p>\n<pre><code class=\"language-C\">int __fastcall main(int argc, const char **argv, const char **envp)\n{\n  int i; \/\/ [rsp+2Ch] [rbp-124h]\n  char __b[264]; \/\/ [rsp+40h] [rbp-110h] BYREF\n\n  memset(__b, 0, 0x100uLL);\n  printf(&quot;Input your flag:\\n&quot;);\n  get_line(__b, 256LL);\n  if ( strlen(__b) != 33 )\n    goto LABEL_7;\n  for ( i = 1; i &lt; 33; ++i )\n    __b[i] ^= __b[i - 1];\n  if ( !strncmp(__b, global, 0x21uLL) )\n    printf(&quot;Success&quot;);\n  else\nLABEL_7:\n    printf(&quot;Failed&quot;);\n  return 0;<\/code><\/pre>\n<p>\u4e0d\u96be\u770b\u51fa\u6211\u4eec\u7684\u8f93\u5165\u4ece\u7b2c\u4e8c\u4f4d\u5f00\u59cb\u6bcf\u4e00\u4f4d\u90fd\u4e0e\u524d\u4e00\u4f4d\u505a\u5f02\u6216\u8fd0\u7b97\uff0c\u7136\u540e\u4e0eglobal\u4f5c\u6bd4\u8f83<\/p>\n<p>\u67e5\u770bglobal\u7684\u503c\uff1a<\/p>\n<pre><code class=\"language-C\">__cstring:0000000100000F6E aFKWOXZUPFVMDGH db &#039;f&#039;,0Ah              ; DATA XREF: __data:_global\u2193o\n__cstring:0000000100000F70                 db &#039;k&#039;,0Ch,&#039;w&amp;O.@&#039;,11h,&#039;x&#039;,0Dh,&#039;Z;U&#039;,11h,&#039;p&#039;,19h,&#039;F&#039;,1Fh,&#039;v&quot;M#D&#039;,0Eh,&#039;g&#039;\n__cstring:0000000100000F89                 db 6,&#039;h&#039;,0Fh,&#039;G2O&#039;,0<\/code><\/pre>\n<p>\u5199\u51fa\u89e3\u5bc6\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-python\">num=[0x66, 0x0A, 0x6B, 0x0C, 0x77, 0x26, 0x4F, 0x2E, 0x40, 0x11,  \n  0x78, 0x0D, 0x5A, 0x3B, 0x55, 0x11, 0x70, 0x19, 0x46, 0x1F,  \n  0x76, 0x22, 0x4D, 0x23, 0x44, 0x0E, 0x67, 0x06, 0x68, 0x0F,  \n  0x47, 0x32, 0x4F,]  \nflag=&quot;f&quot;  \nfor i in range(1,33):  \n    flag+=chr(num[i]^num[i-1])  \nprint(flag)<\/code><\/pre>\n<p>flag{QianQiuWanDai_YiTongJiangHu}<\/p>\n<h3>reverse3<\/h3>\n<p>32\u4f4d\u65e0\u58f3\uff0cIDA\u6253\u5f00<\/p>\n<pre><code class=\"language-C\">int __cdecl main_0(int argc, const char **argv, const char **envp)\n{\n  size_t v3; \/\/ eax\n  const char *v4; \/\/ eax\n  size_t v5; \/\/ eax\n  char v7; \/\/ [esp+0h] [ebp-188h]\n  char v8; \/\/ [esp+0h] [ebp-188h]\n  signed int j; \/\/ [esp+DCh] [ebp-ACh]\n  int i; \/\/ [esp+E8h] [ebp-A0h]\n  signed int v11; \/\/ [esp+E8h] [ebp-A0h]\n  char Destination[108]; \/\/ [esp+F4h] [ebp-94h] BYREF\n  char Str[28]; \/\/ [esp+160h] [ebp-28h] BYREF\n  char v14[8]; \/\/ [esp+17Ch] [ebp-Ch] BYREF\n\n  for ( i = 0; i &lt; 100; ++i )\n  {\n    if ( (unsigned int)i &gt;= 0x64 )\n      j____report_rangecheckfailure();\n    Destination[i] = 0;                         \/\/ \u521d\u59cb\u5316\n  }\n  sub_41132F(&quot;please enter the flag:&quot;, v7);\n  sub_411375(&quot;%20s&quot;, (char)Str);\n  v3 = j_strlen(Str);\n  v4 = (const char *)sub_4110BE(Str, v3, v14);  \/\/ \u8fd9\u91cc\u662f\u4e2aBase64\u52a0\u5bc6\n  strncpy(Destination, v4, 0x28u);\n  v11 = j_strlen(Destination);\n  for ( j = 0; j &lt; v11; ++j )\n    Destination[j] += j;\n  v5 = j_strlen(Destination);\n  if ( !strncmp(Destination, Str2, v5) )        \/\/ \u6bd4\u8f83\u7ed3\u679c\n    sub_41132F(&quot;rigth flag!\\n&quot;, v8);\n  else\n    sub_41132F(&quot;wrong flag!\\n&quot;, v8);\n  return 0;\n}<\/code><\/pre>\n<p>\u53d1\u73b0sub_4110BE\u51fd\u6570\u662f\u4e2aBase64\u52a0\u5bc6\uff0c\u540c\u65f6\u67e5\u627e\u5b57\u7b26\u4e32<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208223820.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208223820.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240208223820.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u5f88\u660e\u663e\u80fd\u770b\u89c1base64input\u548cbase64\u7801\u8868\uff0c\u4e8e\u662f\u67e5\u770bStr2\u7684\u503c<\/p>\n<pre><code class=\"language-C\">.data:0041A034 Str2            db &#039;e3nifIH9b_C@n@dH&#039;,0 ; DATA XREF: _main_0+142\u2191o<\/code><\/pre>\n<p>\u5199\u51fa\u6c42\u89e3\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-python\">import base64  \n\n# \u8981\u89e3\u7801\u7684 Base64 \u7f16\u7801\u6587\u672c  \nencoded_text = &quot;&quot;  \n\nStr=&quot;e3nifIH9b_C@n@dH&quot;  \nfor i in range(16):  \n    encoded_text+=chr(ord(Str[i])-i)  \n\n# \u4f7f\u7528 base64 \u6a21\u5757\u8fdb\u884c\u89e3\u7801  \ndecoded_bytes = base64.b64decode(encoded_text)  \n\n# \u6253\u5370\u89e3\u7801\u7ed3\u679c  \nprint(decoded_bytes)\n\n#b&#039;{i_l0ve_you}&#039;<\/code><\/pre>\n<p>flag{i_l0ve_you}<\/p>\n<h3>helloword<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u662f\u4e2a.apk\u6587\u4ef6\uff0c\u4e5f\u5c31\u662f\u6211\u4eec\u5e38\u8bf4\u7684\u5b89\u5353\uff0c\u4f7f\u7528JEB\u6253\u5f00<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314221233.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314221233.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314221233.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8fdb\u5230\u4e3b\u51fd\u6570\u91cc\u9762\uff0c\u8fd8\u53ef\u4ee5\u6309tab\u952e\u67e5\u770b\u4ee3\u7801\uff1a<\/p>\n<pre><code class=\"language-JAVA\">package com.example.helloword;\n\nimport android.os.Bundle;\nimport android.support.v7.app.ActionBarActivity;\nimport android.view.Menu;\nimport android.view.MenuItem;\n\npublic class MainActivity extends ActionBarActivity {\n    public MainActivity() {\n        super();\n    }\n\n    protected void onCreate(Bundle arg5) {\n        super.onCreate(arg5);\n        this.setContentView(0x7F030018);\n        &quot;flag{7631a988259a00816deda84afb29430a}&quot;.compareTo(&quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;);\n    }\n\n    public boolean onCreateOptionsMenu(Menu arg3) {\n        this.getMenuInflater().inflate(0x7F0C0000, arg3);\n        return 1;\n    }\n\n    public boolean onOptionsItemSelected(MenuItem arg3) {\n        boolean v1 = arg3.getItemId() == 0x7F05003C ? true : super.onOptionsItemSelected(arg3);\n        return v1;\n    }\n}<\/code><\/pre>\n<p>flag\u76f4\u63a5\u5c31\u51fa\u6765\u4e86<\/p>\n<h3>\u4e0d\u4e00\u6837\u7684flag<\/h3>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240226191330.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240226191330.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240226191330.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u9898\u76ee\u5df2\u7ecf\u7ed9\u4e86\u63d0\u793a\uff0c\u4e0b\u8f7d\u9644\u4ef6\u770b\u770b<\/p>\n<p>\u65e0\u58f3\uff0c32\u4f4d\uff0c\u7528IDA\u6253\u5f00<\/p>\n<p>main\u51fd\u6570\u5982\u4e0b<\/p>\n<pre><code class=\"language-C\">int __cdecl __noreturn main(int argc, const char **argv, const char **envp)\n{\n  _BYTE v3[29]; \/\/ [esp+17h] [ebp-35h] BYREF\n  int v4; \/\/ [esp+34h] [ebp-18h]\n  int v5; \/\/ [esp+38h] [ebp-14h] BYREF\n  int i; \/\/ [esp+3Ch] [ebp-10h]\n  _BYTE v7[12]; \/\/ [esp+40h] [ebp-Ch] BYREF\n\n  __main();\n  v3[26] = 0;                                   \/\/ \u521d\u59cb\u5316\n  *(_WORD *)&amp;v3[27] = 0;\n  v4 = 0;\n  strcpy(v3, &quot;*11110100001010000101111#&quot;);      \/\/ \u5730\u56fe\n  while ( 1 )\n  {\n    puts(&quot;you can choose one action to execute&quot;);\/\/ \u5206\u522b\u4ee3\u8868\u4e0a\u4e0b\u5de6\u53f3\n    puts(&quot;1 up&quot;);\n    puts(&quot;2 down&quot;);\n    puts(&quot;3 left&quot;);\n    printf(&quot;4 right\\n:&quot;);\n    scanf(&quot;%d&quot;, &amp;v5);\n    if ( v5 == 2 )\n    {\n      ++*(_DWORD *)&amp;v3[25];                     \/\/ [5][5]\u7684\u4e8c\u7ef4\u6570\u7ec4\uff0c\u7528\u4e8e\u6784\u5efa\u5730\u56fe\n    }\n    else if ( v5 &gt; 2 )\n    {\n      if ( v5 == 3 )\n      {\n        --v4;\n      }\n      else\n      {\n        if ( v5 != 4 )\nLABEL_13:\n          exit(1);\n        ++v4;\n      }\n    }\n    else\n    {\n      if ( v5 != 1 )\n        goto LABEL_13;\n      --*(_DWORD *)&amp;v3[25];\n    }\n    for ( i = 0; i &lt;= 1; ++i )\n    {\n      if ( *(_DWORD *)&amp;v3[4 * i + 25] &gt;= 5u )\n        exit(1);\n    }\n    if ( v7[5 * *(_DWORD *)&amp;v3[25] - 41 + v4] == &#039;1&#039; )\/\/ \u78b0\u52301\u65f6\u5c31\u7ed3\u675f\n      exit(1);\n    if ( v7[5 * *(_DWORD *)&amp;v3[25] - 41 + v4] == &#039;#&#039; )\/\/ \u7ed3\u675f\u4e8e#\n    {\n      puts(&quot;\\nok, the order you enter is the flag!&quot;);\n      exit(0);\n    }\n  }\n}<\/code><\/pre>\n<p>\u4e0d\u96be\u770b\u51fa\uff0c\u8fd9\u662f\u4e00\u4e2a\u8ff7\u5bab\u9898\uff0c\u5c06 <code>*11110100001010000101111#<\/code> \u53d8\u6210\u4e00\u4e2a<code>5*5<\/code>\u7684\u8ff7\u5bab\uff0c\u5982\u4e0b\uff1a<\/p>\n<pre><code>*1111\n01000\n01010\n00010\n1111#<\/code><\/pre>\n<p>\u78b0\u52301\u5c31\u505c\u6b62\uff08\u5373\u8d700\u7684\u8def\u5f84\uff09\uff0c\u78b0\u5230#\u5c31\u5f97\u51faflag\uff08\u5373#\u4e3a\u51fa\u53e3\u5904\uff09<\/p>\n<p>\u5f97\u5230\u4e0b\u4e0b\u4e0b\u53f3\u53f3\u4e0a\u4e0a\u53f3\u53f3\u4e0b\u4e0b\u4e0b\uff0c\u5373222441144222<\/p>\n<p>\u6240\u4ee5flag\u5c31\u662fflag{222441144222}<\/p>\n<h3>SimpleRev<\/h3>\n<p>64\u4f4dELF\uff0c\u7528IDA\u6253\u5f00<\/p>\n<p>\u4e3b\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int __fastcall __noreturn main(int argc, const char **argv, const char **envp)\n{\n  int v3; \/\/ eax\n  char v4; \/\/ [rsp+Fh] [rbp-1h]\n\n  while ( 1 )\n  {\n    while ( 1 )\n    {\n      printf(&quot;Welcome to CTF game!\\nPlease input d\/D to start or input q\/Q to quit this program: &quot;);\n      v4 = getchar();\n      if ( v4 != &#039;d&#039; &amp;&amp; v4 != &#039;D&#039; )\n        break;\n      Decry(&quot;Welcome to CTF game!\\nPlease input d\/D to start or input q\/Q to quit this program: &quot;, argv);\n    }\n    if ( v4 == &#039;q&#039; || v4 == &#039;Q&#039; )\n      Exit(&quot;Welcome to CTF game!\\nPlease input d\/D to start or input q\/Q to quit this program: &quot;, argv);\n    puts(&quot;Input fault format!&quot;);\n    v3 = getchar();\n    putchar(v3);\n  }\n}<\/code><\/pre>\n<p>\u4e3b\u51fd\u6570\u6ca1\u4ec0\u4e48\u597d\u770b\u7684\uff0c\u4e3b\u8981\u770b\u4e3b\u51fd\u6570\u4e2d\u5f15\u7528\u7684Decry\u51fd\u6570<\/p>\n<p>\u8fdb\u5165Decry\u51fd\u6570\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240226193524.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240226193524.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240226193524.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u6211\u4eec\u53ef\u4ee5\u770b\u89c1src\u548cv9\uff0c\u8fd9\u91cc\u9700\u8981\u6ce8\u610fx86\u7684\u5927\u5c0f\u7aef\u5e8f\u95ee\u9898\uff0c\u8f6c\u4e3a\u5b57\u7b26\u4e32\u4e4b\u540e\u5e94\u8be5\u53cd\u8f6c\u8fc7\u6765<\/p>\n<p>\u4e0b\u9762\u662f\u6574\u7406\u8fc7\u540e\u4e14\u52a0\u8fc7\u6ce8\u91ca\u7684Decry\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">unsigned __int64 Decry()\n{\n  char v1; \/\/ [rsp+Fh] [rbp-51h]\n  int v2; \/\/ [rsp+10h] [rbp-50h]\n  int v3; \/\/ [rsp+14h] [rbp-4Ch]\n  int i; \/\/ [rsp+18h] [rbp-48h]\n  int v5; \/\/ [rsp+1Ch] [rbp-44h]\n  char src[8]; \/\/ [rsp+20h] [rbp-40h] BYREF\n  __int64 v7; \/\/ [rsp+28h] [rbp-38h]\n  int v8; \/\/ [rsp+30h] [rbp-30h]\n  __int64 v9[2]; \/\/ [rsp+40h] [rbp-20h] BYREF\n  int v10; \/\/ [rsp+50h] [rbp-10h]\n  unsigned __int64 v11; \/\/ [rsp+58h] [rbp-8h]\n\n  v11 = __readfsqword(0x28u);\n  *(_QWORD *)src = &#039;SLCDN&#039;;                     \/\/ NDCLS\n  v7 = 0LL;\n  v8 = 0;\n  v9[0] = &#039;wodah&#039;;                              \/\/ hadow\n  v9[1] = 0LL;\n  v10 = 0;\n  text = (char *)join(key3, v9);                \/\/ key3=&quot;kills&quot; text=key3+v9\n  strcpy(key, key1);                            \/\/ key1=&quot;ADSFK&quot;\n  strcat(key, src);                             \/\/ key=key1+src\n  v2 = 0;\n  v3 = 0;\n  getchar();\n  v5 = strlen(key);\n  for ( i = 0; i &lt; v5; ++i )\n  {\n    if ( key[v3 % v5] &gt; &#039;@&#039; &amp;&amp; key[v3 % v5] &lt;= &#039;Z&#039; )\/\/ \u5982\u679ckey[]\u4e3a\u5927\u5199\u5b57\u6bcd\n      key[i] = key[v3 % v5] + 32;               \/\/ \u5c06key\u4e2d\u7684\u5927\u5199\u5b57\u6bcd\u53d8\u4e3a\u5c0f\u5199\u5b57\u6bcd\n    ++v3;\n  }\n  printf(&quot;Please input your flag:&quot;);\n  while ( 1 )\n  {\n    v1 = getchar();\n    if ( v1 == 10 )\n      break;\n    if ( v1 == 32 )\n    {\n      ++v2;\n    }\n    else\n    {\n      if ( v1 &lt;= &#039;`&#039; || v1 &gt; &#039;z&#039; )\n      {\n        if ( v1 &gt; &#039;@&#039; &amp;&amp; v1 &lt;= &#039;Z&#039; )\n        {\n          str2[v2] = (v1 - 39 - key[v3 % v5] + 97) % 26 + 97;\n          ++v3;\n        }\n      }\n      else\n      {\n        str2[v2] = (v1 - 39 - key[v3 % v5] + 97) % 26 + 97;\/\/ \u4e3b\u8981\u52a0\u5bc6\u8fc7\u7a0b\n        ++v3;\n      }\n      if ( !(v3 % v5) )\n        putchar(32);\n      ++v2;\n    }\n  }\n  if ( !strcmp(text, str2) )                    \/\/ \u6bd4\u8f83text\u4e8estr2\uff0c\u5176\u4e2dtext\u6211\u4eec\u5df2\u7ecf\u77e5\u9053\uff0cstr2\u53ef\u4ee5\u7531key\u5f97\u51fa\n    puts(&quot;Congratulation!\\n&quot;);\n  else\n    puts(&quot;Try again!\\n&quot;);\n  return __readfsqword(0x28u) ^ v11;\n}<\/code><\/pre>\n<p>\u5199\u51fa\u7206\u7834\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-C\">#include&lt;stdio.h&gt; \n\nint main()\n{\n    char key[] = &quot;adsfkndcls&quot;;\n    char text[] = &quot;killshadow&quot;;\n    int i;\n    int v3=10;\/\/\u957f\u5ea6 \n    for (int i = 0; i &lt; 10; i++)\n    {\n        for (int j = 0; j &lt; 128; j++)\n        {\n            if (j &lt; &#039;A&#039; || j &gt; &#039;z&#039; || j &gt; &#039;Z&#039; &amp;&amp; j &lt; &#039;a&#039;)   \/\/\u9650\u5236\u5728\u5b57\u6bcd\u5185\u7206\u7834 \n            {\n                continue;\n            }\n            if ((j - 39 - key[v3 % 10] + 97) % 26 + 97 == text[i])  \/\/\u6ee1\u8db3\u5224\u65ad\u6761\u4ef6\u5219\u8f93\u51fa \n            {\n                printf(&quot;%c&quot;,j);\n                v3++;\n                break;\n            }\n        }\n    }\n}\n<\/code><\/pre>\n<p>flag{KLDQCUDFZO}<\/p>\n<h3>[GXYCTF2019]luck_guy<\/h3>\n<p>ELF\u6587\u4ef6\uff0cIDA\u6253\u5f00\u8fdb\u5165main\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int __fastcall main(int argc, const char **argv, const char **envp)\n{\n  int v4; \/\/ [rsp+14h] [rbp-Ch] BYREF\n  unsigned __int64 v5; \/\/ [rsp+18h] [rbp-8h]\n\n  v5 = __readfsqword(0x28u);\n  welcome();\n  puts(&quot;_________________&quot;);\n  puts(&quot;try to patch me and find flag&quot;);\n  v4 = 0;\n  puts(&quot;please input a lucky number&quot;);\n  __isoc99_scanf(&quot;%d&quot;, &amp;v4);\n  patch_me(v4);\n  puts(&quot;OK,see you again&quot;);\n  return 0;\n}<\/code><\/pre>\n<p>\u8fdb\u5165patch_me\u51fd\u6570\uff0c\u518d\u8fdb\u5165get_flag\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">unsigned __int64 get_flag()\n{\n  unsigned int v0; \/\/ eax\n  int i; \/\/ [rsp+4h] [rbp-3Ch]\n  int j; \/\/ [rsp+8h] [rbp-38h]\n  __int64 s; \/\/ [rsp+10h] [rbp-30h] BYREF\n  char v5; \/\/ [rsp+18h] [rbp-28h]\n  unsigned __int64 v6; \/\/ [rsp+38h] [rbp-8h]\n\n  v6 = __readfsqword(0x28u);\n  v0 = time(0LL);\n  srand(v0);\n  for ( i = 0; i &lt;= 4; ++i )\n  {\n    switch ( rand() % 200 )\n    {\n      case 1:\n        puts(&quot;OK, it&#039;s flag:&quot;);\n        memset(&amp;s, 0, 0x28uLL);\n        strcat((char *)&amp;s, f1);                 \/\/ f1=&quot;GXY{do_not_&quot;\n        strcat((char *)&amp;s, &amp;f2);\n        printf(&quot;%s&quot;, (const char *)&amp;s);\n        break;\n      case 2:\n        printf(&quot;Solar not like you&quot;);\n        break;\n      case 3:\n        printf(&quot;Solar want a girlfriend&quot;);\n        break;\n      case 4:\n        s = 0x7F666F6067756369LL;               \/\/\u6ce8\u610f\u5927\u5c0f\u7aef\n        v5 = 0;\n        strcat(&amp;f2, (const char *)&amp;s);\n        break;\n      case 5:\n        for ( j = 0; j &lt;= 7; ++j )\n        {\n          if ( j % 2 == 1 )\n            *(&amp;f2 + j) -= 2;\n          else\n            --*(&amp;f2 + j);\n        }\n        break;\n      default:\n        puts(&quot;emmm,you can&#039;t find flag 23333&quot;);\n        break;\n    }\n  }\n  return __readfsqword(0x28u) ^ v6;\n}<\/code><\/pre>\n<p>\u5df2\u77e5f1\uff0c\u518d\u901a\u8fc7s\u6c42\u51faf2\u7684\u503c\u62fc\u63a5\u5c31\u53ef\u4ee5\u5f97\u5230flag\u4e86<\/p>\n<p>exp<\/p>\n<pre><code class=\"language-Python\">s=[0x69,0x63,0x75,0x67,0x60,0x6F,0x66,0x7F]  \nflag=&quot;&quot;  \nfor i in range(8):  \n    if i%2==1:  \n        s[i]=s[i]-2  \n    else:  \n        s[i]=s[i]-1  \n    flag+=chr(s[i])  \nprint(flag)<\/code><\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\u4e3a\uff1ahate_me}<\/p>\n<p>\u6240\u4ee5flag=GXY{do_not_hate_me}<\/p>\n<h3>Java\u9006\u5411\u89e3\u5bc6<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u53d1\u73b0\u662f\u4e00\u4e2a.class\u6587\u4ef6\uff0c\u6700\u5f00\u59cb\u6211\u7528JEB\u6253\u5f00\u53d1\u73b0\u770b\u4e0d\u4e86\uff0c\u7136\u540e\u770b\u770bwp\u4e0a\u90fd\u7528\u7684jadx\uff0c\u7136\u540e\u6211\u60f3\u8d77\u6765\u4e4b\u524d\u4e0b\u8fc7\uff0c\u5c31\u8bd5\u4e86\u8bd5\u7528jadx\u6253\u5f00\uff1a<\/p>\n<pre><code class=\"language-java\">package defpackage;\n\nimport java.util.ArrayList;\n\nimport java.util.Scanner;\n\n\/* renamed from: Reverse  reason: default package *\/\n\n\/* loaded from: Reverse.class *\/\n\npublic class Reverse {\n\n    public static void main(String[] args) {\n\n        Scanner s = new Scanner(System.in);\n\n        System.out.println(&quot;Please input the flag \uff1a&quot;);\n\n        String str = s.next();\n\n        System.out.println(&quot;Your input is \uff1a&quot;);\n\n        System.out.println(str);\n\n        char[] stringArr = str.toCharArray();\n\n        Encrypt(stringArr);\n\n    }\n\n    public static void Encrypt(char[] arr) {\n\n        ArrayList&lt;Integer&gt; Resultlist = new ArrayList&lt;&gt;();\n\n        for (char c : arr) {\n\n            int result = (c + &#039;@&#039;) ^ 32;\n\n            Resultlist.add(Integer.valueOf(result));\n\n        }\n\n        int[] KEY = {180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65};\n\n        ArrayList&lt;Integer&gt; KEYList = new ArrayList&lt;&gt;();\n\n        for (int i : KEY) {\n\n            KEYList.add(Integer.valueOf(i));\n\n        }\n\n        System.out.println(&quot;Result:&quot;);\n\n        if (Resultlist.equals(KEYList)) {\n\n            System.out.println(&quot;Congratulations\uff01&quot;);\n\n        } else {\n\n            System.err.println(&quot;Error\uff01&quot;);\n\n        }\n\n    }\n\n}<\/code><\/pre>\n<p>\u53d1\u73b0\u662fKEY\u52a0\u4e0a@\u7684ASCII\u7801\u518d\u4e0e32\u505a\u5f02\u6216\u8fd0\u7b97\u5f97\u5230flag\uff0c\u5f00\u59cb\u5199\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-python\">flag=&quot;&quot;  \nkey=[180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65]  \nfor i in range(18):  \n    flag+=chr((key[i]-ord(&#039;@&#039;))^32)  \nprint(flag)<\/code><\/pre>\n<p>This_is_the<em>flag<\/em>!<\/p>\n<p>\u6700\u540e\u6362\u4e86\u4e2aJEB\uff0c\u53ef\u4ee5\u6253\u5f00\u4e86<\/p>\n<h3>[BJDCTF2020]JustRE<\/h3>\n<h4>\u6cd5\u4e00\uff1a<\/h4>\n<p>\u4e0b\u8f7d\u9644\u4ef6\u4e4b\u540e\u70b9\u5f00\u8fd9\u4e2a\u7a0b\u5e8f\uff0c\u53d1\u73b0\u5b83\u5c45\u7136\u53ea\u9700\u8981\u70b9\u51fb\u5c31\u53ef\u4ee5\u5f97\u5230flag<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227185659.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227185659.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227185659.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>32\u4f4d\u7684\u7a0b\u5e8f\uff0c\u7528IDA\u6253\u5f00\uff0c\u67e5\u627e\u5b57\u7b26\u4e32\u4e4b\u540e\u53ef\u4ee5\u4ea4\u53c9\u5f15\u7528\u5230\u5173\u952e\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">INT_PTR __stdcall DialogFunc(HWND hWnd, UINT a2, WPARAM a3, LPARAM a4)\n{\n  CHAR String[100]; \/\/ [esp+0h] [ebp-64h] BYREF\n\n  if ( a2 != 272 )\n  {\n    if ( a2 != 273 )\n      return 0;\n    if ( (_WORD)a3 != 1 &amp;&amp; (_WORD)a3 != 2 )\n    {\n      sprintf(String, Format, ++dword_4099F0);\n      if ( dword_4099F0 == 19999 )\n      {\n        sprintf(String, &quot; BJD{%d%d2069a45792d233ac}&quot;, 19999, 0);\n        SetWindowTextA(hWnd, String);\n        return 0;\n      }\n      SetWindowTextA(hWnd, String);\n      return 0;\n    }\n    EndDialog(hWnd, (unsigned __int16)a3);\n  }\n  return 1;\n}<\/code><\/pre>\n<p>\u5f88\u660e\u663e\u53ef\u4ee5\u770b\u89c1BJD\u5f00\u5934\u7684flag\uff0c\u518d\u7ed3\u5408\u540e\u9762\u768419999\u548c0\u5c31\u53ef\u4ee5\u5f97\u5230flag\u4e86<\/p>\n<h4>\u6cd5\u4e8c\uff1a<\/h4>\n<p>\u7531\u4e8e\u8fd9\u9898\u592a\u8fc7\u7b80\u5355\uff0c\u505a\u5b8c\u4e4b\u540e\u6211\u7ee7\u7eed\u518d\u601d\u8003\u6709\u6ca1\u6709\u5176\u4ed6\u7684\u89e3\u6cd5\uff0c\u6700\u540e\u8fd8\u662f\u627e\u5230\u4e86<\/p>\n<p>\u57fa\u4e8e\u6cd5\u4e00\u4e2d\u7ed9\u51fa\u7684\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u5206\u6790\u5f97\u51fa\u5f53\u6211\u4eec\u70b9\u51fb19999\u6b21\u65f6\u5c31\u53ef\u4ee5\u5f97\u5230flag\u4e86\uff0c\u4e8e\u662f\u5728\u90a3\u53e5if\u5224\u65ad\u662f\u5426\u70b9\u51fb19999\u6b21\u7684\u5730\u65b9\u4e0b\u4e00\u4e2a\u65ad\u70b9<\/p>\n<p>\u542f\u52a8\u52a8\u6001\u8c03\u8bd5\uff1a<\/p>\n<p>\u4e00\u8defF8\u8fd0\u884c\uff0c\u76f4\u5230\u51fa\u73b0\u8df3\u8f6c\u5904\u4e3a\u6b62<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190513.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190513.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190513.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8fd9\u91cc\u53ef\u4ee5\u770b\u89c1\u6709\u4e2ajnz\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u5176\u5f80\u5de6\u8fb9\u8d70\u8f93\u51faflag\uff0c\u4e8e\u662f\u60f3\u5230\u53ef\u4ee5\u66f4\u6539ZF\u5bc4\u5b58\u5668\u7684\u503c\uff0c\u4f7f\u5224\u65ad\u53ef\u4ee5\u901a\u8fc7<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190850.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190850.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190850.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8fd9\u65f6F8\u5c31\u53ef\u4ee5\u770b\u89c1\u7a0b\u5e8f\u5f80\u4e0b\u8d70\u4e86\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190930.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190930.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227190930.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u7136\u540e\u7ee7\u7eedF8<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227191027.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227191027.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240227191027.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>flag\u5c31\u51fa\u6765\u4e86\uff01<\/p>\n<h3>\u522e\u5f00\u6709\u5956<\/h3>\n<p>\u8fd9\u9898\u6d89\u53ca\u5230WindowsAPI\uff0c\u6211\u5c06\u5176\u4f5c\u4e3aBUUCTF\u7b2c\u4e00\u9875Windows\u9006\u5411\u7684\u6700\u540e\u4e00\u9898\u6765\u7ed9\u6211\u5b66\u4e60\u7684\u7b2c\u4e00\u4e2a\u9636\u6bb5\u5212\u4e0a\u4e00\u4e2a\u53e5\u53f7<\/p>\n<p>\u7528IDA\u6253\u5f00\uff0c\u80fd\u770b\u89c1\u5f88\u591aAPI\uff0c\u800c\u4e14\u6ca1\u627e\u5230\u4e3b\u51fd\u6570\uff0c\u67e5\u627e\u5b57\u7b26\u4e32\u770b\u770b<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240313223638.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240313223638.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240313223638.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u53d1\u73b0\u6709\u4e00\u4e2abase64\u8868\uff0c\u731c\u6d4b\u8fd9\u9898\u4e0ebase64\u52a0\u5bc6\u6709\u5173\uff0c\u8fd8\u770b\u89c1\u4e86\u4e0b\u9762\u7684U g3t 1T\uff01\uff0c\u8fd9\u4ee3\u8868\u7740\u5176\u6240\u5728\u4f4d\u7f6e\u5f88\u53ef\u80fd\u662f\u6211\u4eec\u8fd9\u9898\u7684\u4e3b\u903b\u8f91\u6240\u5728\u5730\uff0c\u4ea4\u53c9\u5f15\u7528\u5230\u8c03\u7528\u5b83\u7684\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4)\n{\n  const char *v4; \/\/ esi\n  const char *v5; \/\/ edi\n  int v7[2]; \/\/ [esp+8h] [ebp-20030h] BYREF\n  int v8; \/\/ [esp+10h] [ebp-20028h]\n  int v9; \/\/ [esp+14h] [ebp-20024h]\n  int v10; \/\/ [esp+18h] [ebp-20020h]\n  int v11; \/\/ [esp+1Ch] [ebp-2001Ch]\n  int v12; \/\/ [esp+20h] [ebp-20018h]\n  int v13; \/\/ [esp+24h] [ebp-20014h]\n  int v14; \/\/ [esp+28h] [ebp-20010h]\n  int v15; \/\/ [esp+2Ch] [ebp-2000Ch]\n  int v16; \/\/ [esp+30h] [ebp-20008h]\n  CHAR String[65536]; \/\/ [esp+34h] [ebp-20004h] BYREF\n  char v18[65536]; \/\/ [esp+10034h] [ebp-10004h] BYREF\n\n  if ( a2 == 272 )\n    return 1;\n  if ( a2 != 273 )\n    return 0;\n  if ( (_WORD)a3 == 1001 )\n  {\n    memset(String, 0, 0xFFFFu);\n    GetDlgItemTextA(hDlg, 1000, String, 0xFFFF);\n    if ( strlen(String) == 8 )\n    {\n      v7[0] = 90;\n      v7[1] = 74;\n      v8 = 83;\n      v9 = 69;\n      v10 = 67;\n      v11 = 97;\n      v12 = 78;\n      v13 = 72;\n      v14 = 51;\n      v15 = 110;\n      v16 = 103;\n      sub_4010F0(v7, 0, 10);\n      memset(v18, 0, 0xFFFFu);\n      v18[0] = String[5];\n      v18[2] = String[7];\n      v18[1] = String[6];\n      v4 = (const char *)sub_401000(v18, strlen(v18));\n      memset(v18, 0, 0xFFFFu);\n      v18[1] = String[3];\n      v18[0] = String[2];\n      v18[2] = String[4];\n      v5 = (const char *)sub_401000(v18, strlen(v18));\n      if ( String[0] == v7[0] + 34\n        &amp;&amp; String[1] == v10\n        &amp;&amp; 4 * String[2] - 141 == 3 * v8\n        &amp;&amp; String[3] \/ 4 == 2 * (v13 \/ 9)\n        &amp;&amp; !strcmp(v4, &quot;ak1w&quot;)\n        &amp;&amp; !strcmp(v5, &quot;V1Ax&quot;) )\n      {\n        MessageBoxA(hDlg, &quot;U g3t 1T!&quot;, &quot;@_@&quot;, 0);\n      }\n    }\n    return 0;\n  }\n  if ( (_WORD)a3 != 1 &amp;&amp; (_WORD)a3 != 2 )\n    return 0;\n  EndDialog(hDlg, (unsigned __int16)a3);\n  return 1;\n}<\/code><\/pre>\n<p>\u4e0a\u9762\u7684API\u51fd\u6570\u548c\u5224\u65ad\u5b57\u7b26\u4e32\u4e0d\u7ba1\uff0c\u67e5\u770b\u8fd9\u6bb5\u51fd\u6570\u8c03\u7528\u7684\u7b2c\u4e00\u4e2a\u51fd\u6570 sub_4010F0()\uff1a<\/p>\n<pre><code class=\"language-C\">int __cdecl sub_4010F0(int a1, int a2, int a3)\n{\n  int result; \/\/ eax\n  int i; \/\/ esi\n  int v5; \/\/ ecx\n  int v6; \/\/ edx\n\n  result = a3;\n  for ( i = a2; i &lt;= a3; a2 = i )\n  {\n    v5 = 4 * i;\n    v6 = *(4 * i + a1);\n    if ( a2 &lt; result &amp;&amp; i &lt; result )\n    {\n      do\n      {\n        if ( v6 &gt; *(a1 + 4 * result) )\n        {\n          if ( i &gt;= result )\n            break;\n          ++i;\n          *(v5 + a1) = *(a1 + 4 * result);\n          if ( i &gt;= result )\n            break;\n          while ( *(a1 + 4 * i) &lt;= v6 )\n          {\n            if ( ++i &gt;= result )\n              goto LABEL_13;\n          }\n          if ( i &gt;= result )\n            break;\n          v5 = 4 * i;\n          *(a1 + 4 * result) = *(4 * i + a1);\n        }\n        --result;\n      }\n      while ( i &lt; result );\n    }\nLABEL_13:\n    *(a1 + 4 * result) = v6;\n    sub_4010F0(a1, a2, i - 1);\n    result = a3;\n    ++i;\n  }\n  return result;\n}<\/code><\/pre>\n<p>\u8fd9\u6bb5\u51fd\u6570\u5927\u81f4\u610f\u601d\u662f\u5c06v7\u6570\u7ec4\u4ece\u5c0f\u5230\u5927\u6392\u5217\uff0c\u5373ASCII\u7801\u6392\u5e8f\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u811a\u672c\u5c06\u5176\u8fd8\u539f\uff1a<\/p>\n<pre><code class=\"language-C++\">#include &lt;iostream&gt;\n\nusing namespace std;\n\nvoid restore(int* num, int size) {\n    for (int j = 0; j &lt; size - 1; j++) {\n        for (int i = 0; i &lt; size - 1 - j; i++) {\n            if (num[i] &gt; num[i + 1]) {\n                int temp = num[i];\n                num[i] = num[i + 1];\n                num[i + 1] = temp;\n            }\n        }\n    }\n}\n\nint main() {\n    int v7[11] = { 90, 74, 83, 69, 67, 97, 78, 72, 51, 110, 103 };\n    restore(v7, 11);\n    for (int i = 0; i &lt; 11; i++) {\n        cout &lt;&lt; char(v7[i]);\n    }\n    return 0;\n}\n<\/code><\/pre>\n<p>\u8f93\u51fa<code>3CEHJNSZagn<\/code><\/p>\n<p>\u518d\u5f80\u4e0b\u770b\u770b\u89c1\u4e00\u4e9b\u8d4b\u503c\u4ee5\u53ca\u8c03\u7528\u4e86\u4e24\u6b21sub_401000()\u51fd\u6570\u5bf9v4\u548cv5\u8fdb\u884c\u8d4b\u503c\uff0c\u800csub_401000()\u51fd\u6570\u662f\u4e00\u4e2abase64\u7f16\u7801\u51fd\u6570\uff0c\u56e0\u6b64\u5c06\u4e0b\u65b9\u7684v4\u548cv5\u89e3\u5bc6\uff1a<\/p>\n<p>v4=&quot;jMp&quot;\uff0cv5=&quot;WP1&quot;<\/p>\n<p>\u4f46\u662f\u7531\u4e8e\u524d\u9762\u7684\u5224\u65ad\u5b57\u7b26\u4e32\u957f\u5ea6\uff0cflag\u663e\u7136\u662f8\u4f4d\u7684\uff0c\u800c\u6211\u4eec\u89e3\u7801\u51fa\u6765\u53ea\u67096\u4f4d\uff0c\u56e0\u6b64\u8fd8\u8981\u5bfb\u627e\u4e24\u4e2a\u5b57\u7b26\u5e76\u4e14\u5bf9\u5b83\u4eec\u8fdb\u884c\u6392\u5e8f\uff0c\u8fd9\u65f6\u5019\u4e3b\u51fd\u6570\u4e2d\u7684\u6700\u540e\u90a3\u6bb5if\u663e\u7136\u5c31\u662f\u6211\u4eec\u5bfb\u627eflag\u7684\u5173\u952e\uff0cString\u6570\u7ec4\u4e3aflag<\/p>\n<p><code>String[0] == v7[0] + 34<\/code> flag\u7b2c\u4e00\u4f4d\u662f\u4e0a\u9762\u8f93\u51fa\u4e2d\u7b2c\u4e00\u4f4d\u7684ASCII\u7801\u52a0\u4e0a34\u7684\u5b57\u7b26\u537351+34=&quot;U&quot;<br \/>\n<code>String[1] == v10<\/code> flag\u7b2c\u4e8c\u4f4dv10\u662f\u4e0a\u9762\u8f93\u51fa\u7684\u7b2c5\u4f4d\u5373\u4e3a&quot;J&quot;<br \/>\n<code>4 * String[2] - 141 == 3 * v8<\/code> flag\u7b2c\u4e09\u4f4d\u7684ASCII\u7801\u4e584\u51cf\u53bb141\u4e0e\u4e0a\u9762\u8f93\u51fa\u7684\u7b2c\u4e09\u4f4dv8\u4e583\u76f8\u7b49\uff0c\u5219flag\u7b2c\u4e09\u4f4d\u4e3a&quot;W&quot;<\/p>\n<p>\u57fa\u4e8e\u4e0a\u8ff0\u5b57\u7b26\u53ef\u4ee5\u63a8\u65ad\uff0cString\u4e2d\u7684\u524d\u4e09\u4e2a\u5143\u7d20\u4e3a\u201dUJW\u201c\uff0c\u5219WP1\u5728jMp\u524d\u9762<\/p>\n<p>\u56e0\u6b64\u53ef\u4ee5\u5f97\u5230\uff0cString=&quot;UJWP1jMp&quot;<\/p>\n<h3>[ACTF\u65b0\u751f\u8d5b2020]easyre<\/h3>\n<p>\u672a\u9b54\u6539\u7684UPX\u58f3\uff0c\u5c31\u4e0d\u591a\u4ecb\u7ecd\u4e86<\/p>\n<pre><code class=\"language-C\">int __cdecl main(int argc, const char **argv, const char **envp)\n{\n  _BYTE v4[12]; \/\/ [esp+12h] [ebp-2Eh] BYREF\n  _DWORD v5[3]; \/\/ [esp+1Eh] [ebp-22h]\n  _BYTE v6[5]; \/\/ [esp+2Ah] [ebp-16h] BYREF\n  int v7; \/\/ [esp+2Fh] [ebp-11h]\n  int v8; \/\/ [esp+33h] [ebp-Dh]\n  int v9; \/\/ [esp+37h] [ebp-9h]\n  char v10; \/\/ [esp+3Bh] [ebp-5h]\n  int i; \/\/ [esp+3Ch] [ebp-4h]\n\n  __main();\n  qmemcpy(v4, &quot;*F&#039;\\&quot;N,\\&quot;(I?+@&quot;, sizeof(v4));\n  printf(&quot;Please input:&quot;);\n  scanf(&quot;%s&quot;, v6);\n  if ( v6[0] != &#039;A&#039; || v6[1] != &#039;C&#039; || v6[2] != &#039;T&#039; || v6[3] != &#039;F&#039; || v6[4] != &#039;{&#039; || v10 != &#039;}&#039; )\n    return 0;\n  v5[0] = v7;\n  v5[1] = v8;\n  v5[2] = v9;\n  for ( i = 0; i &lt;= 11; ++i )\n  {\n    if ( v4[i] != _data_start__[*((char *)v5 + i) - 1] )\n      return 0;\n  }\n  printf(&quot;You are correct!&quot;);\n  return 0;\n}<\/code><\/pre>\n<p>\u903b\u8f91\u4e5f\u5f88\u6e05\u6670_data_start__\u662f\u4e00\u4e2a\u8868\uff0c\u76f4\u63a5\u6413\u811a\u672c<\/p>\n<pre><code class=\"language-python\">v4 = [42, 70, 39, 34, 78, 44, 34, 40, 73, 63, 43, 64] #v4\u63d0\u51fa\u6765\u7684\u6570\u636e\nflag = &#039;&#039;\n__data_start__ = &#039;~}|{zyxwvutsrqponmlkjihgfedcba`_^]\\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?&gt;=&lt;;:9876543210\/.-,+*)(\\&#039;&amp;%$# !&quot;&#039; \nfor i in v4:\n    flag = flag + chr(__data_start__.find(chr(i)) + 1)\n    print(flag)<\/code><\/pre>\n<p>flag{U9X_1S_W6@T?}<\/p>\n<h3>\u7b80\u5355\u6ce8\u518c\u5668<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u662f\u4e2aapk\uff0c\u7528JEB\u6253\u5f00\u770b\u770b\uff0c\u80fd\u76f4\u63a5\u770b\u5230main\uff0ctab\u770b\u770b\u4ee3\u7801<\/p>\n<pre><code class=\"language-java\">package com.example.flag;\n\nimport android.os.Bundle;\nimport android.support.v4.app.Fragment;\nimport android.support.v7.app.ActionBarActivity;\nimport android.view.LayoutInflater;\nimport android.view.Menu;\nimport android.view.MenuItem;\nimport android.view.View.OnClickListener;\nimport android.view.View;\nimport android.view.ViewGroup;\nimport android.widget.Button;\nimport android.widget.EditText;\nimport android.widget.TextView;\n\npublic class MainActivity extends ActionBarActivity {\n    public static class PlaceholderFragment extends Fragment {\n        @Override  \/\/ android.support.v4.app.Fragment\n        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {\n            return inflater.inflate(0x7F030018, container, false);  \/\/ layout:fragment_main\n        }\n    }\n\n    @Override  \/\/ android.support.v7.app.ActionBarActivity\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        this.setContentView(0x7F030017);  \/\/ layout:activity_main\n        if(savedInstanceState == null) {\n            this.getSupportFragmentManager().beginTransaction().add(0x7F05003C, new PlaceholderFragment()).commit();  \/\/ id:container\n        }\n\n        Button button = (Button)this.findViewById(0x7F05003F);  \/\/ id:button1\n        TextView textview = (TextView)this.findViewById(0x7F05003E);  \/\/ id:textView1\n        button.setOnClickListener(new View.OnClickListener() {\n            @Override  \/\/ android.view.View$OnClickListener\n            public void onClick(View v) {\n                int flag = 1;\n                String s = ((EditText)this.findViewById(0x7F05003D)).getText().toString();  \/\/ id:editText1\n                if(s.length() != 0x20 || s.charAt(0x1F) != 97 || s.charAt(1) != 98 || s.charAt(0) + s.charAt(2) - 0x30 != 56) {\n                    flag = 0;\n                }\n\n                if(flag == 1) {\n                    char[] arr_c = &quot;dd2940c04462b4dd7c450528835cca15&quot;.toCharArray();\n                    arr_c[2] = (char)(arr_c[2] + arr_c[3] - 50);\n                    arr_c[4] = (char)(arr_c[2] + arr_c[5] - 0x30);\n                    arr_c[30] = (char)(arr_c[0x1F] + arr_c[9] - 0x30);\n                    arr_c[14] = (char)(arr_c[27] + arr_c[28] - 97);\n                    int i;\n                    for(i = 0; i &lt; 16; ++i) {\n                        char a = arr_c[0x1F - i];\n                        arr_c[0x1F - i] = arr_c[i];\n                        arr_c[i] = a;\n                    }\n\n                    textview.setText(&quot;flag{&quot; + String.valueOf(arr_c) + &quot;}&quot;);\n                    return;\n                }\n\n                textview.setText(&quot;\u8f93\u5165\u6ce8\u518c\u7801\u9519\u8bef&quot;);\n            }\n        });\n    }\n\n    @Override  \/\/ android.app.Activity\n    public boolean onCreateOptionsMenu(Menu menu) {\n        this.getMenuInflater().inflate(0x7F0C0000, menu);  \/\/ menu:main\n        return true;\n    }\n\n    @Override  \/\/ android.app.Activity\n    public boolean onOptionsItemSelected(MenuItem item) {\n        return item.getItemId() == 0x7F050040 ? true : super.onOptionsItemSelected(item);  \/\/ id:action_settings\n    }\n}\n<\/code><\/pre>\n<p>\u663e\u7136\u4e2d\u95f4\u8fd9\u6bb5\u5c31\u662f\u4e3b\u903b\u8f91\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314231720.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314231720.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314231720.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8bd5\u8bd5\u80fd\u4e0d\u80fd\u5199\u4e2a\u811a\u672c<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314232740.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314232740.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314232740.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u6700\u5f00\u59cb\u5199\u51fa\u6765\u662f\u8fd9\u6837\uff0c\u53d1\u73b0\u8fd0\u884c\u62a5\u9519\u4e86\uff0c\u7136\u540e\u53bb\u67e5\u4e86\u4e00\u4e0b\uff0c\u5e94\u8be5\u662fstr\u7c7b\u578b\u7684\u95ee\u9898\uff0c\u8981\u5c06\u5176\u8f6c\u6362\u4e3a\u5217\u8868\u624d\u80fd\u8fdb\u884c\u6b63\u5e38\u7684\u8d4b\u503c\u8fd0\u7b97\uff0c\u91cd\u65b0\u5199\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-Python\">str=[&#039;d&#039;,&#039;d&#039;,&#039;2&#039;,&#039;9&#039;,&#039;4&#039;,&#039;0&#039;,&#039;c&#039;,&#039;0&#039;,&#039;4&#039;,&#039;4&#039;,&#039;6&#039;,&#039;2&#039;,&#039;b&#039;,&#039;4&#039;,&#039;d&#039;,&#039;d&#039;,&#039;7&#039;,&#039;c&#039;,&#039;4&#039;,&#039;5&#039;,&#039;0&#039;,&#039;5&#039;,&#039;2&#039;,&#039;8&#039;,&#039;8&#039;,&#039;3&#039;,&#039;5&#039;,&#039;c&#039;,&#039;c&#039;,&#039;a&#039;,&#039;1&#039;,&#039;5&#039;]  \na=&quot;&quot;  \nflag=&quot;&quot;  \nstr[2]=chr(ord(str[2])+ord(str[3])-50)  \nstr[4]=chr(ord(str[2])+ord(str[5])-0x30)  \nstr[30]=chr(ord(str[0x1F])+ord(str[9])-0x30)  \nstr[14]=chr(ord(str[27])+ord(str[28])-97)  \nfor i in range(16):  \n    a=str[0x1F-i]  \n    str[0x1F-i]=str[i]  \n    str[i]=a  \nfor i in range(len(str)):  \n    flag+=chr(ord(str[i]))  \nprint(flag)<\/code><\/pre>\n<p><code>59acc538825054c7de4b26440c0999dd<\/code><\/p>\n<h3>[GWCTF 2019]pyre<\/h3>\n<p>\u4e0b\u8f7d\u4e0b\u6765\u662f\u4e00\u4e2apyc\u6587\u4ef6\uff0c\u76f4\u63a5\u7528\u5728\u7ebf\u7f51\u7ad9\u53cd\u7f16\u8bd1\u4e86<\/p>\n<pre><code class=\"language-python\">#!\/usr\/bin\/env python\n# visit https:\/\/tool.lu\/pyc\/ for more information\n# Version: Python 2.7\n\nprint &#039;Welcome to Re World!&#039;\nprint &#039;Your input1 is your flag~&#039;\nl = len(input1)\nfor i in range(l):\n    num = ((input1[i] + i) % 128 + 128) % 128\n    code += num\n\nfor i in range(l - 1):\n    code[i] = code[i] ^ code[i + 1]\n\nprint code\ncode = [\n    &#039;%1f&#039;,\n    &#039;%12&#039;,\n    &#039;%1d&#039;,\n    &#039;(&#039;,\n    &#039;0&#039;,\n    &#039;4&#039;,\n    &#039;%01&#039;,\n    &#039;%06&#039;,\n    &#039;%14&#039;,\n    &#039;4&#039;,\n    &#039;,&#039;,\n    &#039;%1b&#039;,\n    &#039;U&#039;,\n    &#039;?&#039;,\n    &#039;o&#039;,\n    &#039;6&#039;,\n    &#039;*&#039;,\n    &#039;:&#039;,\n    &#039;%01&#039;,\n    &#039;D&#039;,\n    &#039;;&#039;,\n    &#039;%&#039;,\n    &#039;%13&#039;]<\/code><\/pre>\n<p>\u6c42\u89e3\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-python\"># \u5047\u8bbe\u7684\u52a0\u5bc6\u540e\u7684code\u5217\u8868\uff0c\u5c06\u7279\u6b8a\u683c\u5f0f\u8f6c\u6362\u4e3a\u5bf9\u5e94\u7684ASCII\u7801\nencrypted_code = [\n    0x1f, 0x12, 0x1d, ord(&#039;(&#039;), ord(&#039;0&#039;), ord(&#039;4&#039;), 0x01, 0x06,\n    0x14, ord(&#039;4&#039;), ord(&#039;,&#039;), 0x1b, ord(&#039;U&#039;), ord(&#039;?&#039;), ord(&#039;o&#039;),\n    ord(&#039;6&#039;), ord(&#039;*&#039;), ord(&#039;:&#039;), 0x01, ord(&#039;D&#039;), ord(&#039;;&#039;), ord(&#039;%&#039;), 0x13]\n\n# \u7b2c\u4e00\u6b65\uff1a\u9006\u5411\u5f02\u6216\u64cd\u4f5c\noriginal_code = [0] * len(encrypted_code)\noriginal_code[-1] = encrypted_code[-1]  # \u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4e0d\u53d8\nfor i in range(len(encrypted_code) - 2, -1, -1):\n    original_code[i] = encrypted_code[i] ^ original_code[i + 1]\n\n# \u7b2c\u4e8c\u6b65\uff1a\u9006\u5411\u8ba1\u7b97input1\ninput1 = [&#039;&#039;] * len(original_code)\nfor i in range(len(original_code)):\n    num = original_code[i]\n    original_input1_i = (num - i) % 128\n    input1[i] = chr(original_input1_i)\n\n# \u6253\u5370\u539f\u59cb\u8f93\u5165\nprint(&#039;&#039;.join(input1))<\/code><\/pre>\n<h3>findit<\/h3>\n<p>\u4f7f\u7528JEB\u770b\u770b\uff1a<\/p>\n<pre><code class=\"language-java\">package com.example.findit;\n\nimport android.os.Bundle;\nimport android.support.v7.app.ActionBarActivity;\nimport android.view.MenuItem;\nimport android.view.View.OnClickListener;\nimport android.view.View;\nimport android.widget.Button;\nimport android.widget.EditText;\nimport android.widget.TextView;\n\npublic class MainActivity extends ActionBarActivity {\n    @Override  \/\/ android.support.v7.app.ActionBarActivity\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        this.setContentView(0x7F030018);  \/\/ layout:activity_main\n        Button btn = (Button)this.findViewById(0x7F05003D);  \/\/ id:widget3\n        EditText edit = (EditText)this.findViewById(0x7F05003E);  \/\/ id:widget2\n        TextView text = (TextView)this.findViewById(0x7F05003F);  \/\/ id:widget1\n        btn.setOnClickListener(new View.OnClickListener() {\n            @Override  \/\/ android.view.View$OnClickListener\n            public void onClick(View v) {\n                char[] x = new char[17];\n                char[] y = new char[38];\n                int i;\n                for(i = 0; i &lt; 17; ++i) {\n                    if(new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &lt; 73 &amp;&amp; new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &gt;= 65 || new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &lt; 105 &amp;&amp; new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &gt;= 97) {\n                        x[i] = (char)(new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] + 18);\n                    }\n                    else if(new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &gt;= 65 &amp;&amp; new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &lt;= 90 || new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &gt;= 97 &amp;&amp; new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] &lt;= 0x7A) {\n                        x[i] = (char)(new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i] - 8);\n                    }\n                    else {\n                        x[i] = new char[]{&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;}[i];\n                    }\n                }\n\n                if(String.valueOf(x).equals(edit.getText().toString())) {\n                    int v1;\n                    for(v1 = 0; v1 &lt; 38; ++v1) {\n                        if(new char[]{&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;}[v1] &gt;= 65 &amp;&amp; new char[]{&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;}[v1] &lt;= 90 || new char[]{&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;}[v1] &gt;= 97 &amp;&amp; new char[]{&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;}[v1] &lt;= 0x7A) {\n                            y[v1] = (char)(new char[]{&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;}[v1] + 16);\n                            if(y[v1] &gt; 90 &amp;&amp; y[v1] &lt; 97 || y[v1] &gt;= 0x7A) {\n                                y[v1] = (char)(y[v1] - 26);\n                            }\n                        }\n                        else {\n                            y[v1] = new char[]{&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;}[v1];\n                        }\n                    }\n\n                    text.setText(String.valueOf(y));\n                    return;\n                }\n\n                text.setText(&quot;\u7b54\u6848\u9519\u4e86\u80bf\u4e48\u529e\u3002\u3002\u3002\u4e0d\u7ed9\u4f60\u53c8\u4e0d\u597d\u610f\u601d\u3002\u3002\u3002\u54ce\u5440\u597d\u7ea0\u7ed3\u554a~~~&quot;);\n            }\n        });\n    }\n\n    @Override  \/\/ android.app.Activity\n    public boolean onOptionsItemSelected(MenuItem item) {\n        return item.getItemId() == 0x7F050040 ? true : super.onOptionsItemSelected(item);  \/\/ id:action_settings\n    }\n}\n<\/code><\/pre>\n<p>\u53d1\u73b0\u4ee3\u7801\u5f88\u4e71\uff0c\u518d\u7528jadx\u770b\u770b\uff1a<\/p>\n<pre><code class=\"language-java\">package com.example.findit;\n\nimport android.os.Bundle;\n\nimport android.support.v7.app.ActionBarActivity;\n\nimport android.view.MenuItem;\n\nimport android.view.View;\n\nimport android.widget.Button;\n\nimport android.widget.EditText;\n\nimport android.widget.TextView;\n\n\/* loaded from: classes.dex *\/\n\npublic class MainActivity extends ActionBarActivity {\n\n    \/* JADX INFO: Access modifiers changed from: protected *\/\n\n    @Override \/\/ android.support.v7.app.ActionBarActivity, android.support.v4.app.FragmentActivity, android.app.Activity\n\n    public void onCreate(Bundle savedInstanceState) {\n\n        super.onCreate(savedInstanceState);\n\n        setContentView(R.layout.activity_main);\n\n        Button btn = (Button) findViewById(R.id.widget3);\n\n        final EditText edit = (EditText) findViewById(R.id.widget2);\n\n        final TextView text = (TextView) findViewById(R.id.widget1);\n\n        final char[] a = {&#039;T&#039;, &#039;h&#039;, &#039;i&#039;, &#039;s&#039;, &#039;I&#039;, &#039;s&#039;, &#039;T&#039;, &#039;h&#039;, &#039;e&#039;, &#039;F&#039;, &#039;l&#039;, &#039;a&#039;, &#039;g&#039;, &#039;H&#039;, &#039;o&#039;, &#039;m&#039;, &#039;e&#039;};\n\n        final char[] b = {&#039;p&#039;, &#039;v&#039;, &#039;k&#039;, &#039;q&#039;, &#039;{&#039;, &#039;m&#039;, &#039;1&#039;, &#039;6&#039;, &#039;4&#039;, &#039;6&#039;, &#039;7&#039;, &#039;5&#039;, &#039;2&#039;, &#039;6&#039;, &#039;2&#039;, &#039;0&#039;, &#039;3&#039;, &#039;3&#039;, &#039;l&#039;, &#039;4&#039;, &#039;m&#039;, &#039;4&#039;, &#039;9&#039;, &#039;l&#039;, &#039;n&#039;, &#039;p&#039;, &#039;7&#039;, &#039;p&#039;, &#039;9&#039;, &#039;m&#039;, &#039;n&#039;, &#039;k&#039;, &#039;2&#039;, &#039;8&#039;, &#039;k&#039;, &#039;7&#039;, &#039;5&#039;, &#039;}&#039;};\n\n        btn.setOnClickListener(new View.OnClickListener() { \/\/ from class: com.example.findit.MainActivity.1\n\n            @Override \/\/ android.view.View.OnClickListener\n\n            public void onClick(View v) {\n\n                char[] x = new char[17];\n\n                char[] y = new char[38];\n\n                for (int i = 0; i &lt; 17; i++) {\n\n                    if ((a[i] &lt; &#039;I&#039; &amp;&amp; a[i] &gt;= &#039;A&#039;) || (a[i] &lt; &#039;i&#039; &amp;&amp; a[i] &gt;= &#039;a&#039;)) {\n\n                        x[i] = (char) (a[i] + 18);\n\n                    } else if ((a[i] &gt;= &#039;A&#039; &amp;&amp; a[i] &lt;= &#039;Z&#039;) || (a[i] &gt;= &#039;a&#039; &amp;&amp; a[i] &lt;= &#039;z&#039;)) {\n\n                        x[i] = (char) (a[i] - &#039;\\b&#039;);\n\n                    } else {\n\n                        x[i] = a[i];\n\n                    }\n\n                }\n\n                String m = String.valueOf(x);\n\n                if (m.equals(edit.getText().toString())) {\n\n                    for (int i2 = 0; i2 &lt; 38; i2++) {\n\n                        if ((b[i2] &gt;= &#039;A&#039; &amp;&amp; b[i2] &lt;= &#039;Z&#039;) || (b[i2] &gt;= &#039;a&#039; &amp;&amp; b[i2] &lt;= &#039;z&#039;)) {\n\n                            y[i2] = (char) (b[i2] + 16);\n\n                            if ((y[i2] &gt; &#039;Z&#039; &amp;&amp; y[i2] &lt; &#039;a&#039;) || y[i2] &gt;= &#039;z&#039;) {\n\n                                y[i2] = (char) (y[i2] - 26);\n\n                            }\n\n                        } else {\n\n                            y[i2] = b[i2];\n\n                        }\n\n                    }\n\n                    String n = String.valueOf(y);\n\n                    text.setText(n);\n\n                    return;\n\n                }\n\n                text.setText(&quot;\u7b54\u6848\u9519\u4e86\u80bf\u4e48\u529e\u3002\u3002\u3002\u4e0d\u7ed9\u4f60\u53c8\u4e0d\u597d\u610f\u601d\u3002\u3002\u3002\u54ce\u5440\u597d\u7ea0\u7ed3\u554a~~~&quot;);\n\n            }\n\n        });\n\n    }\n\n    @Override \/\/ android.app.Activity\n\n    public boolean onOptionsItemSelected(MenuItem item) {\n\n        int id = item.getItemId();\n\n        if (id == R.id.action_settings) {\n\n            return true;\n\n        }\n\n        return super.onOptionsItemSelected(item);\n\n    }\n\n}<\/code><\/pre>\n<p>\u8fd9\u4e2a\u6e05\u695a\u591a\u4e86<\/p>\n<p>\u6709\u4e24\u884c\u53ef\u7591\u5b57\u7b26\u4e32\uff0c\u5206\u522b\u4e3a<code>ThisIsTheFlagHome<\/code>\u548c<code>pvkq{m164675262033l4m49lnp7p9mnk28k75}<\/code><\/p>\n<p>\u7136\u540e\u6211\u5c06\u82b1\u62ec\u53f7\u4e2d\u7684\u5b57\u7b26\u4e32\u4f5c\u4e3aflag\u4ea4\u4e86\u4e0a\u53bb\uff0c\u53d1\u73b0\u4e0d\u5bf9\uff0c\u8fd9\u4e2a\u5b57\u7b26\u4e32\u5e94\u8be5\u662f\u7ecf\u8fc7\u4e86\u67d0\u79cd\u4f4d\u79fb<\/p>\n<p>\u4f7f\u7528\u5de5\u5177\u770b\u4e00\u4e0b\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314234748.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314234748.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240314234748.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u53ef\u4ee5\u770b\u89c1\u90a3\u884cflag\u4e86\uff1a<code>flag{c164675262033b4c49bdf7f9cda28a75}<\/code><\/p>\n<h3>[ACTF\u65b0\u751f\u8d5b2020]rome<\/h3>\n<p>32\u4f4d\u65e0\u58f3\uff0c\u7528IDA\u6253\u5f00\uff0c\u6ca1\u627e\u5230\u4e3b\u8981\u52a0\u5bc6\u51fd\u6570\uff0c\u67e5\u627e\u5b57\u7b26\u4e32\u4e4b\u540e\u4ea4\u53c9\u5f15\u7528\u5230\u5173\u952e\u51fd\u6570<\/p>\n<p>\u8fdb\u5165func\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int func()\n{\n  int result; \/\/ eax\n  int v1[4]; \/\/ [esp+14h] [ebp-44h]\n  unsigned __int8 v2; \/\/ [esp+24h] [ebp-34h] BYREF\n  unsigned __int8 v3; \/\/ [esp+25h] [ebp-33h]\n  unsigned __int8 v4; \/\/ [esp+26h] [ebp-32h]\n  unsigned __int8 v5; \/\/ [esp+27h] [ebp-31h]\n  unsigned __int8 v6; \/\/ [esp+28h] [ebp-30h]\n  int v7; \/\/ [esp+29h] [ebp-2Fh]\n  int v8; \/\/ [esp+2Dh] [ebp-2Bh]\n  int v9; \/\/ [esp+31h] [ebp-27h]\n  int v10; \/\/ [esp+35h] [ebp-23h]\n  unsigned __int8 v11; \/\/ [esp+39h] [ebp-1Fh]\n  char v12[29]; \/\/ [esp+3Bh] [ebp-1Dh] BYREF\n\n  strcpy(v12, &quot;Qsw3sj_lz4_Ujw@l&quot;);\n  printf(&quot;Please input:&quot;);\n  scanf(&quot;%s&quot;, &amp;v2);\n  result = v2;\n  if ( v2 == &#039;A&#039; )\n  {\n    result = v3;\n    if ( v3 == &#039;C&#039; )\n    {\n      result = v4;\n      if ( v4 == &#039;T&#039; )\n      {\n        result = v5;\n        if ( v5 == &#039;F&#039; )\n        {\n          result = v6;\n          if ( v6 == &#039;{&#039; )\n          {\n            result = v11;\n            if ( v11 == &#039;}&#039; )\n            {\n              v1[0] = v7;\n              v1[1] = v8;\n              v1[2] = v9;\n              v1[3] = v10;\n              *(_DWORD *)&amp;v12[17] = 0;\n              while ( *(int *)&amp;v12[17] &lt;= 15 )\n              {\n                if ( *((char *)v1 + *(_DWORD *)&amp;v12[17]) &gt; &#039;@&#039; &amp;&amp; *((char *)v1 + *(_DWORD *)&amp;v12[17]) &lt;= &#039;Z&#039; )\n                  *((_BYTE *)v1 + *(_DWORD *)&amp;v12[17]) = (*((char *)v1 + *(_DWORD *)&amp;v12[17]) - 51) % 26 + 65;\n                if ( *((char *)v1 + *(_DWORD *)&amp;v12[17]) &gt; &#039;`&#039; &amp;&amp; *((char *)v1 + *(_DWORD *)&amp;v12[17]) &lt;= &#039;z&#039; )\n                  *((_BYTE *)v1 + *(_DWORD *)&amp;v12[17]) = (*((char *)v1 + *(_DWORD *)&amp;v12[17]) - 79) % 26 + 97;\n                ++*(_DWORD *)&amp;v12[17];\n              }\n              *(_DWORD *)&amp;v12[17] = 0;\n              while ( *(int *)&amp;v12[17] &lt;= 15 )\n              {\n                result = (unsigned __int8)v12[*(_DWORD *)&amp;v12[17]];\n                if ( *((_BYTE *)v1 + *(_DWORD *)&amp;v12[17]) != (_BYTE)result )\n                  return result;\n                ++*(_DWORD *)&amp;v12[17];\n              }\n              return printf(&quot;You are correct!&quot;);\n            }\n          }\n        }\n      }\n    }\n  }\n  return result;\n}<\/code><\/pre>\n<p>\u5206\u6790\u51fd\u6570\uff1a<br \/>\n\u4e3b\u4f53\u52a0\u5bc6\u4e3a\u7b2c\u4e00\u4e2awhile\u5faa\u73af\uff0c\u4e24\u4e2aif\u5206\u522b\u4ee3\u8868v12\u5b57\u7b26\u4e32\u4e2d\u7684\u5927\u5c0f\u5199\u5b57\u7b26\u8fdb\u884c\u52a0\u5bc6\uff0c\u6700\u540e\u4e0eresult\u4f5c\u6bd4\u8f83\uff0c\u6b63\u786e\u7684\u8bdd\u5c31\u4f1a\u8f93\u51facorrect<\/p>\n<p>exp<\/p>\n<pre><code class=\"language-C\">#include&lt;stdio.h&gt;\nint main()\n{\n    char str[]=&quot;Qsw3sj_lz4_Ujw@l&quot;;\n    int i;\n    char flag[17]={0};\n    for(i=0;i&lt;=15;i++)\n    {\n        if(str[i]&gt;&#039;@&#039;&amp;&amp;str[i]&lt;=&#039;Z&#039;)\n        {\n        flag[i]=str[i]-65+51;\n        if(flag[i]&lt;64)\n            {\n             flag[i]+=26;\n            }\n        }\n        else if(str[i]&gt;&#039;`&#039;&amp;&amp;str[i]&lt;=&#039;z&#039;)\n        {\n            flag[i]=str[i]-97+79;\n            if(flag[i]&lt;96)\n            {\n                flag[i]+=26;\n            }\n        }\n        else \n        flag[i]=str[i];\n    }\n    for(i = 0 ; i &lt; 16 ; i ++)\n   {\n       printf(&quot;%c&quot;,flag[i]);\n   }\n} <\/code><\/pre>\n<p>flag{Cae3ar_th4_Gre@t}<\/p>\n<h3>rsa<\/h3>\n<p>\u5bc6\u7801\u9898\u522b\u6765\u6cbe\u8fb9<\/p>\n<h3>[FlareOn4]login<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u53d1\u73b0\u662f\u4e2ahtml\uff0c\u6253\u5f00\u8fd9\u4e2a\u7f51\u7ad9\u67e5\u770b\u6e90\u4ee3\u7801\uff1a<\/p>\n<pre><code class=\"language-JavaScript\">&lt;!DOCTYPE Html \/&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;FLARE On 2017&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;input type=&quot;text&quot; name=&quot;flag&quot; id=&quot;flag&quot; value=&quot;Enter the flag&quot; \/&gt;\n&lt;input type=&quot;button&quot; id=&quot;prompt&quot; value=&quot;Click to check the flag&quot; \/&gt;\n&lt;script type=&quot;text\/javascript&quot;&gt;|\ndocument.getElementById(&quot;prompt&quot;).onclick = function () {\nvar flag = document.getElementById(&quot;flag&quot;).value;\nvar rotFlag = flag.replace(\/[a-zA-Z]\/g, function(c){return String.fromCharCode((c &lt;= &quot;Z&quot; ? 90 : 122) &gt;= (c = c.charCodeAt(0) + 13) ? c : c - 26);});\nif (&quot;PyvragFvqrYbtvafNerRnfl@syner-ba.pbz&quot; == rotFlag) {\nalert(&quot;Correct flag!&quot;);\n} else {\nalert(&quot;Incorrect flag, rot again&quot;);\n}\n}\n&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>\u662f\u4e2aJS\u4ee3\u7801\uff0c\u7531\u4e8e\u6211\u6ca1\u5b66\uff0c\u5c31\u76f4\u63a5\u4e22\u7ed9AI\u4e86\uff1a<\/p>\n<p><em>\u8fd9\u6bb5HTML\u4ee3\u7801\u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u7f51\u9875\uff0c\u5305\u542b\u4e00\u4e2a\u6587\u672c\u8f93\u5165\u6846\u548c\u4e00\u4e2a\u6309\u94ae\u3002\u7528\u6237\u53ef\u4ee5\u5728\u6587\u672c\u6846\u4e2d\u8f93\u5165\u6570\u636e\uff0c\u5e76\u901a\u8fc7\u70b9\u51fb\u6309\u94ae\u6765\u68c0\u67e5\u8f93\u5165\u7684\u6570\u636e\u662f\u5426\u7b26\u5408\u7279\u5b9a\u6761\u4ef6\u3002\u8fd9\u4e2a\u68c0\u67e5\u662f\u901a\u8fc7JavaScript\u811a\u672c\u5b9e\u73b0\u7684\u3002<\/em><\/p>\n<p><em>JavaScript\u4ee3\u7801\u7684\u6838\u5fc3\u529f\u80fd\u662f\u5bf9\u7528\u6237\u8f93\u5165\u7684\u6570\u636e\u8fdb\u884cROT13\u52a0\u5bc6\uff0c\u7136\u540e\u5c06\u52a0\u5bc6\u540e\u7684\u7ed3\u679c\u4e0e\u9884\u8bbe\u7684\u5b57\u7b26\u4e32<code>&quot;PyvragFvqrYbtvafNerRnfl@syner-ba.pbz&quot;<\/code>\u6bd4\u8f83\u3002\u5982\u679c\u4e24\u8005\u76f8\u7b49\uff0c\u5219\u5f39\u51fa\u63d0\u793a\u6846\u663e\u793a\u201cCorrect flag!\u201d\uff1b\u5982\u679c\u4e0d\u76f8\u7b49\uff0c\u5219\u63d0\u793a\u201cIncorrect flag, rot again\u201d\u3002<\/em><\/p>\n<p><em>ROT13\u662f\u4e00\u79cd\u7b80\u5355\u7684\u5b57\u7b26\u66ff\u6362\u52a0\u5bc6\u65b9\u6cd5\uff0c\u5b83\u5c06\u5b57\u6bcd\u8868\u4e2d\u7684\u6bcf\u4e2a\u5b57\u6bcd\u66ff\u6362\u4e3a\u5b83\u5728\u5b57\u6bcd\u8868\u4e2d13\u4f4d\u4e4b\u540e\u7684\u5b57\u6bcd\u3002\u8fd9\u79cd\u52a0\u5bc6\u65b9\u6cd5\u662f\u53ef\u9006\u7684\uff0c\u5373\u5bf9\u52a0\u5bc6\u540e\u7684\u6587\u672c\u518d\u6b21\u5e94\u7528ROT13\u52a0\u5bc6\uff0c\u5c31\u80fd\u5f97\u5230\u539f\u6587\u3002<\/em><\/p>\n<p><em>\u8981\u627e\u5230\u6b63\u786e\u7684flag\uff0c\u6211\u4eec\u9700\u8981\u5bf9\u7ed9\u5b9a\u7684\u5b57\u7b26\u4e32<code>&quot;PyvragFvqrYbtvafNerRnfl@syner-ba.pbz&quot;<\/code>\u8fdb\u884cROT13\u89e3\u5bc6\u3002<\/em><\/p>\n<p><code>flag{ClientSideLoginsAreEasy@flare-on.com}<\/code><\/p>\n<h3>[WUSTCTF2020]level1<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u6709\u4e00\u4e2aELF\u548c\u4e00\u4e2aoutput.txt\u6587\u4ef6\uff0c\u5148\u7528IDA64\u67e5\u770bELF\u6587\u4ef6<\/p>\n<p>\u8fdb\u5165main\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int __fastcall main(int argc, const char **argv, const char **envp)\n{\n  int i; \/\/ [rsp+4h] [rbp-2Ch]\n  FILE *stream; \/\/ [rsp+8h] [rbp-28h]\n  char ptr[24]; \/\/ [rsp+10h] [rbp-20h] BYREF\n  unsigned __int64 v7; \/\/ [rsp+28h] [rbp-8h]\n\n  v7 = __readfsqword(0x28u);\n  stream = fopen(&quot;flag&quot;, &quot;r&quot;);\n  fread(ptr, 1uLL, 0x14uLL, stream);\n  fclose(stream);\n  for ( i = 1; i &lt;= 19; ++i )\n  {\n    if ( (i &amp; 1) != 0 )\n      printf(&quot;%ld\\n&quot;, (unsigned int)(ptr[i] &lt;&lt; i));\n    else\n      printf(&quot;%ld\\n&quot;, (unsigned int)(i * ptr[i]));\n  }\n  return 0;\n}<\/code><\/pre>\n<ul>\n<li>\u901a\u8fc7\u4e00\u4e2afor\u5faa\u73af\uff0c\u4ece1\u8fed\u4ee3\u523019\uff08\u5305\u542b\uff09\uff0c\u5bf9<code>ptr<\/code>\u6570\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u5b57\u7b26\u8fdb\u884c\u5904\u7406\u548c\u8f93\u51fa\u3002<\/li>\n<li>\u5982\u679c<code>i<\/code>\u662f\u5947\u6570\uff0c\u5c06<code>ptr[i]<\/code>\u7684\u503c\u5de6\u79fb<code>i<\/code>\u4f4d\uff08\u5373<code>ptr[i] &lt;&lt; i<\/code>\uff09\uff0c\u7136\u540e\u8f93\u51fa\u3002<\/li>\n<li>\u5982\u679c<code>i<\/code>\u662f\u5076\u6570\uff0c\u8ba1\u7b97<code>i<\/code>\u4e0e<code>ptr[i]<\/code>\u7684\u4e58\u79ef\uff08\u5373<code>i * ptr[i]<\/code>\uff09\uff0c\u7136\u540e\u8f93\u51fa\u3002<\/li>\n<\/ul>\n<p>\u518d\u770b\u770b\u90a3\u4e2a.txt\u6587\u4ef6\uff0c\u91cc\u9762\u662f\u4e00\u4e32\u6570\u5b57<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240302221333.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240302221333.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240302221333.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u90a3\u5c31\u5e94\u8be5\u662f\u5c06flag\u6587\u4ef6\u8fdb\u884c\u4e0a\u8ff0\u8fd0\u7b97\u6700\u540e\u5f97\u5230output\uff0c\u7136\u540e\u5c31\u53ef\u4ee5\u5f00\u59cb\u5199\u9006\u5411\u6c42\u89e3\u811a\u672c\u4e86:<\/p>\n<pre><code class=\"language-C\">#include&lt;stdio.h&gt;\nint main()\n{\n    int output[]={1,198,232,816,200,1536,300,6144,984,51200,570,92160,1200,565248,756,1474560,800,6291456,1782,65536000};\n    int i;\n    char flag[20]=&quot;0&quot;;\n     for ( i = 1; i &lt;= 19; ++i )\n     {\n        if ( (i &amp; 1) != 0 )\n        flag[i]=char((output[i])&gt;&gt;i);\n        else\n        flag[i]=char((output[i])\/i);\n     }\n     flag[i]=&#039;\\0&#039;;\n     printf(&quot;%s&quot;,flag);\n}\n\/\/\uff08\u6ce8\u610f\u5faa\u73af\u662f\u4ece1\u5f00\u59cb\u7684\uff0ctxt\u4e2d\u53ea\u670919\u4f4d\uff0c\u9996\u4f4d\u6ca1\u6709\uff0c\u5148\u968f\u4fbf\u5199\u4e00\u4e2a\uff09<\/code><\/pre>\n<p>flag{d9-dE6-20c}<\/p>\n<h3>[GUET-CTF2019]re<\/h3>\n<p>\u7b80\u5355\u7684UPX\u58f3\uff0c\u8fdb\u53bb\u6ca1\u6709main\u51fd\u6570\uff0c\u76f4\u63a5\u67e5\u627e\u5b57\u7b26\u4e32<\/p>\n<p>\u6700\u7ec8\u5b9a\u4f4d\u5230\u4e3b\u4f53<\/p>\n<pre><code class=\"language-C\">__int64 __fastcall sub_400E28(__int64 a1, int a2, int a3, int a4, int a5, int a6)\n{\n    int v6; \/\/ edx\n    int v7; \/\/ ecx\n    int v8; \/\/ r8d\n    int v9; \/\/ r9d\n    __int64 result; \/\/ rax\n    __int64 v11; \/\/ [rsp+0h] [rbp-30h] BYREF\n    unsigned __int64 v12; \/\/ [rsp+28h] [rbp-8h]\n\n    v12 = __readfsqword(0x28u);\n    sub_40F950((unsigned int)&quot;input your flag:&quot;, a2, a3, a4, a5, a6, 0LL, 0LL, 0LL, 0LL);\n    sub_40FA80((unsigned int)&quot;%s&quot;, (unsigned int)&amp;v11, v6, v7, v8, v9, v11);\n    if ( (unsigned int)sub_4009AE(&amp;v11) )\n        sub_410350(&quot;Correct!&quot;);\n    else\n        sub_410350(&quot;Wrong!&quot;);\n    result = 0LL;\n    if ( __readfsqword(0x28u) != v12 )\n        sub_443550();\n    return result;\n}<\/code><\/pre>\n<p>\u4e0d\u96be\u770b\u51fasub_4009AE\u662f\u5173\u952e\u7684\u51fd\u6570\uff0c\u70b9\u8fdb\u53bb\u53d1\u73b0\u662f\u4e00\u4e2az3<\/p>\n<pre><code class=\"language-C\">_BOOL8 __fastcall sub_4009AE(char *a1)\n{\n  if ( 1629056 * *a1 != 166163712 )\n    return 0LL;\n  if ( 6771600 * a1[1] != 731332800 )\n    return 0LL;\n  if ( 3682944 * a1[2] != 357245568 )\n    return 0LL;\n  if ( 10431000 * a1[3] != 1074393000 )\n    return 0LL;\n  if ( 3977328 * a1[4] != 489211344 )\n    return 0LL;\n  if ( 5138336 * a1[5] != 518971936 )\n    return 0LL;\n  if ( 7532250 * a1[7] != 406741500 )\n    return 0LL;\n  if ( 5551632 * a1[8] != 294236496 )\n    return 0LL;\n  if ( 3409728 * a1[9] != 177305856 )\n    return 0LL;\n  if ( 13013670 * a1[10] != 650683500 )\n    return 0LL;\n  if ( 6088797 * a1[11] != 298351053 )\n    return 0LL;\n  if ( 7884663 * a1[12] != 386348487 )\n    return 0LL;\n  if ( 8944053 * a1[13] != 438258597 )\n    return 0LL;\n  if ( 5198490 * a1[14] != 249527520 )\n    return 0LL;\n  if ( 4544518 * a1[15] != 445362764 )\n    return 0LL;\n  if ( 3645600 * a1[17] != 174988800 )\n    return 0LL;\n  if ( 10115280 * a1[16] != 981182160 )\n    return 0LL;\n  if ( 9667504 * a1[18] != 493042704 )\n    return 0LL;\n  if ( 5364450 * a1[19] != 257493600 )\n    return 0LL;\n  if ( 13464540 * a1[20] != 767478780 )\n    return 0LL;\n  if ( 5488432 * a1[21] != 312840624 )\n    return 0LL;\n  if ( 14479500 * a1[22] != 1404511500 )\n    return 0LL;\n  if ( 6451830 * a1[23] != 316139670 )\n    return 0LL;\n  if ( 6252576 * a1[24] != 619005024 )\n    return 0LL;\n  if ( 7763364 * a1[25] != 372641472 )\n    return 0LL;\n  if ( 7327320 * a1[26] != 373693320 )\n    return 0LL;\n  if ( 8741520 * a1[27] != 498266640 )\n    return 0LL;\n  if ( 8871876 * a1[28] != 452465676 )\n    return 0LL;\n  if ( 4086720 * a1[29] != 208422720 )\n    return 0LL;\n  if ( 9374400 * a1[30] == 515592000 )\n    return 5759124 * a1[31] == 719890500;\n  return 0LL;\n}<\/code><\/pre>\n<p>\u7136\u540e\u7528Python\u5199\u4e86\u4e2az3\u6c42\u89e3\uff0c\u53d1\u73b0\u6c42\u4e0d\u51fa\u6765\uff0c\u67e5\u4e86\u4e00\u4e0b\u8bf4\u4f2a\u4ee3\u7801\u5c11\u4e86a1[6],\u800c\u4e14a1[16],a1[17]\u53cd\u4e86\uff0c\u7206\u7834\u51fa\u6765a1[6]=1\uff0c\u53ef\u4ee5\u5199\u811a\u672c\u4e86<\/p>\n<pre><code class=\"language-Python\">from z3 import *\na1 = [Int(f&#039;a1[{i}]&#039;) for i in range(32)]\nflag=&quot;&quot;\nsolver = Solver()\nsolver.add(1629056 * a1[0] == 166163712)\nsolver.add(6771600 * a1[1] == 731332800)\nsolver.add(3682944 * a1[2] == 357245568)\nsolver.add(10431000 * a1[3] == 1074393000)\nsolver.add(3977328 * a1[4] == 489211344)\nsolver.add(5138336 * a1[5] == 518971936)\nsolver.add(a1[6]==ord(&#039;1&#039;))\nsolver.add(7532250 * a1[7] == 406741500)\nsolver.add(5551632 * a1[8] == 294236496)\nsolver.add(3409728 * a1[9] == 177305856)\nsolver.add(13013670 * a1[10] == 650683500)\nsolver.add(6088797 * a1[11] == 298351053)\nsolver.add(7884663 * a1[12] == 386348487)\nsolver.add(8944053 * a1[13] == 438258597)\nsolver.add(5198490 * a1[14] == 249527520)\nsolver.add(4544518 * a1[15] == 445362764)\nsolver.add(10115280 * a1[16] == 981182160)\nsolver.add(3645600 * a1[17] == 174988800)\nsolver.add(9667504 * a1[18] == 493042704)\nsolver.add(5364450 * a1[19] == 257493600)\nsolver.add(13464540 * a1[20] == 767478780)\nsolver.add(5488432 * a1[21] == 312840624)\nsolver.add(14479500 * a1[22] == 1404511500)\nsolver.add(6451830 * a1[23] == 316139670)\nsolver.add(6252576 * a1[24] == 619005024)\nsolver.add(7763364 * a1[25] == 372641472)\nsolver.add(7327320 * a1[26] == 373693320)\nsolver.add(8741520 * a1[27] == 498266640)\nsolver.add(8871876 * a1[28] == 452465676)\nsolver.add(4086720 * a1[29] == 208422720)\nsolver.add(9374400 * a1[30] == 515592000)\nsolver.add(5759124 * a1[31] == 719890500)\nif solver.check() == sat:\n    model = solver.model()\n    solution = [model[a1[i]].as_long() for i in range(32)]\n    print(&quot;Solution found:&quot;)\n    print(solution)\nelse:\n    print(&quot;No solution found.&quot;)\nfor j in range(len(solution)):\n    flag+=chr(solution[j])\nprint(flag)<\/code><\/pre>\n<h3>CrackRTF<\/h3>\n<p>\u626b\u4e86\u4e00\u773c\uff0c\u8fd9\u9898\u597d\u50cf\u6709\u70b9\u96be\u5ea6\uff0c\u4e8e\u662f\u4e00\u8fb9\u770bwp\u4e00\u8fb9\u5199\u5199\u770b<\/p>\n<p>\u76f4\u63a5\u53ef\u4ee5\u8fdb\u5165\u4e3b\u903b\u8f91\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int __cdecl main_0(int argc, const char **argv, const char **envp)\n{\n  DWORD v3; \/\/ eax\n  DWORD v4; \/\/ eax\n  char Str[260]; \/\/ [esp+4Ch] [ebp-310h] BYREF\n  int v7; \/\/ [esp+150h] [ebp-20Ch]\n  char String1[260]; \/\/ [esp+154h] [ebp-208h] BYREF\n  char Destination[260]; \/\/ [esp+258h] [ebp-104h] BYREF\n\n  memset(Destination, 0, sizeof(Destination));\n  memset(String1, 0, sizeof(String1));\n  v7 = 0;\n  printf(&quot;pls input the first passwd(1): &quot;);\n  scanf(&quot;%s&quot;, Destination);                     \/\/ \u8f93\u5165\u7b2c\u4e00\u4e2a\u5bc6\u7801\n  if ( strlen(Destination) != 6 )               \/\/ \u957f\u5ea6\u4e0d\u4e3a6\u9000\u51fa\n  {\n    printf(&quot;Must be 6 characters!\\n&quot;);\n    ExitProcess(0);\n  }\n  v7 = atoi(Destination);\n  if ( v7 &lt; 100000 )                            \/\/ \u5bc6\u7801\u5c0f\u4e8e100000\u9000\u51fa\n    ExitProcess(0);\n  strcat(Destination, &quot;@DBApp&quot;);                \/\/ \u62fc\u63a5\u51fd\u6570\n  v3 = strlen(Destination);\n  sub_40100A((BYTE *)Destination, v3, String1); \/\/ SHA-1\n  if ( !_strcmpi(String1, &quot;6E32D0943418C2C33385BC35A1470250DD8923A9&quot;) )\/\/ \u6bd4\u8f83\u54c8\u5e0c\u503c\n  {\n    printf(&quot;continue...\\n\\n&quot;);\n    printf(&quot;pls input the first passwd(2): &quot;);\n    memset(Str, 0, sizeof(Str));\n    scanf(&quot;%s&quot;, Str);                           \/\/ \u8f93\u5165\u7b2c\u4e8c\u4e2a\u5bc6\u7801\n    if ( strlen(Str) != 6 )                     \/\/ \u957f\u5ea6\u4e0d\u4e3a6\u9000\u51fa\n    {\n      printf(&quot;Must be 6 characters!\\n&quot;);\n      ExitProcess(0);\n    }\n    strcat(Str, Destination);\n    memset(String1, 0, sizeof(String1));\n    v4 = strlen(Str);\n    sub_401019((BYTE *)Str, v4, String1);       \/\/ MD5\n    if ( !_strcmpi(&quot;27019e688a4e62a649fd99cadaafdb4e&quot;, String1) )\n    {\n      if ( !(unsigned __int8)sub_40100F(Str) )  \/\/ \u751f\u6210\u5305\u542bflag\u7684\u6587\u4ef6\n      {\n        printf(&quot;Error!!\\n&quot;);\n        ExitProcess(0);\n      }\n      printf(&quot;bye ~~\\n&quot;);\n    }\n  }\n  return 0;\n}<\/code><\/pre>\n<p>\u5728sub_40100A\u51fd\u6570\u4e2d\u53ef\u4ee5\u901a\u8fc7\u54c8\u5e0c\u7b97\u6cd5\u6807\u8bc6\u7b26\u5224\u65ad\u51fa\u662fSHA-1<\/p>\n<p>\u7b2c\u4e00\u4e2a\u5bc6\u7801\u7ed9\u4e86\u9650\u5236\u6761\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u54c8\u5e0c\u503c\u7206\u7834\u51fa\u7b2c\u4e00\u4e2a\u5bc6\u7801\uff1a<\/p>\n<pre><code class=\"language-Python\">import hashlib\nstring=&#039;@DBApp&#039;\nfor i in range(100000,999999):\n    flag=str(i)+string\n    x = hashlib.sha1(flag.encode(&quot;utf8&quot;))\n    y = x.hexdigest()\n    if &quot;6e32d0943418c2c33385bc35a1470250dd8923a9&quot; == y:\n            print(flag)\n            break\n<\/code><\/pre>\n<p>\u7206\u7834\u51fa\u6765\u662f\u5bc6\u7801\u662f<code>123321<\/code><\/p>\n<p>\u5f80\u540e\u770b\u53d1\u73b0\u7b2c\u4e8c\u4e2a\u5bc6\u7801\u53ea\u7ed9\u4e86MD5\u503c\uff0c\u5e76\u6ca1\u6709\u7ed9\u5176\u4ed6\u7684\u9650\u5236\u6761\u4ef6\uff0c\u56e0\u6b64\u7206\u7834\u662f\u5f88\u56f0\u96be\u7684\uff0c\u53ea\u77e5\u9053\u662f\u4e00\u4e2a6\u4f4d\u5bc6\u7801<\/p>\n<p>\u5728\u540e\u9762\u5224\u65ad\u7684\u65f6\u5019\u6709\u4e00\u4e2asub_40100F\u51fd\u6570\uff0c\u5e94\u8be5\u662f\u5173\u952e\u51fd\u6570\uff0c\u8fdb\u53bb\u770b\u770b<\/p>\n<p>\u8df3\u8f6c\u5230sub_4014D0\u51fd\u6570<\/p>\n<pre><code class=\"language-C\">char __cdecl sub_4014D0(LPCSTR lpString)\n{\n  LPCVOID lpBuffer; \/\/ [esp+50h] [ebp-1Ch]\n  DWORD NumberOfBytesWritten; \/\/ [esp+58h] [ebp-14h] BYREF\n  DWORD nNumberOfBytesToWrite; \/\/ [esp+5Ch] [ebp-10h]\n  HGLOBAL hResData; \/\/ [esp+60h] [ebp-Ch]\n  HRSRC hResInfo; \/\/ [esp+64h] [ebp-8h]\n  HANDLE hFile; \/\/ [esp+68h] [ebp-4h]\n\n  hFile = 0;\n  hResData = 0;\n  nNumberOfBytesToWrite = 0;\n  NumberOfBytesWritten = 0;\n  hResInfo = FindResourceA(0, (LPCSTR)0x65, &quot;AAA&quot;);\n  if ( !hResInfo )\n    return 0;\n  nNumberOfBytesToWrite = SizeofResource(0, hResInfo);\n  hResData = LoadResource(0, hResInfo);\n  if ( !hResData )\n    return 0;\n  lpBuffer = LockResource(hResData);\n  sub_401005(lpString, (int)lpBuffer, nNumberOfBytesToWrite);\n  hFile = CreateFileA(&quot;dbapp.rtf&quot;, 0x10000000u, 0, 0, 2u, 0x80u, 0);\n  if ( hFile == (HANDLE)-1 )\n    return 0;\n  if ( !WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, &amp;NumberOfBytesWritten, 0) )\n    return 0;\n  CloseHandle(hFile);\n  return 1;\n}<\/code><\/pre>\n<p>\u770b\u4e0d\u61c2\u8fd9\u5806\uff0c\u53ea\u80fd\u95ee\u4e00\u4e0bAI\u4e86\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303195814.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303195814.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303195814.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u518d\u53bb\u67e5\u4e86\u4e00\u4e0b\uff0c\u4f7f\u7528ResourceHacker\u53ef\u4ee5\u67e5\u627e\u5230\u201cAAA\u201d\u7684\u6587\u4ef6\u6e90\uff0c\u4e0b\u9762\u8fd8\u6709\u4e00\u4e2asub_401005\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">unsigned int __cdecl sub_401420(LPCSTR lpString, int a2, unsigned int a3)\n{\n  unsigned int result; \/\/ eax\n  unsigned int i; \/\/ [esp+4Ch] [ebp-Ch]\n  unsigned int v5; \/\/ [esp+54h] [ebp-4h]\n\n  v5 = lstrlenA(lpString);\n  for ( i = 0; ; ++i )\n  {\n    result = i;\n    if ( i &gt;= a3 )\n      break;\n    *(_BYTE *)(i + a2) ^= lpString[i % v5];\n  }\n  return result;\n}<\/code><\/pre>\n<p>\u53d1\u73b0\u662f\u7b80\u5355\u7684\u5f02\u6216\uff0c\u518d\u53bb\u95ee\u4e86\u95ee\u5b66\u957f\uff0c\u4e3a\u4e86\u4fdd\u8bc1\u8f93\u51fa\u7684\u6587\u4ef6\u53ef\u7528\uff0c\u9700\u4fdd\u8bc1\u5176\u6587\u4ef6\u5934\u4e3a.rtf\u6587\u4ef6\uff0c\u4e8e\u662f\u5bfb\u627e.rtf\u6587\u4ef6\u7684\u6587\u4ef6\u5934\uff1a<code>{\\rtf1<\/code><\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303203730.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303203730.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303203730.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u5bc6\u7801\u4e0e\u201cAAA\u201d\u5f02\u6216\u5f97\u5230.rtf\u6587\u4ef6<\/p>\n<p>\u518d\u67e5\u770b\u201cAAA\u201d\u4e2d\u7684\u524d\u516d\u4f4d16\u8fdb\u5236<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303203558.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303203558.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303203558.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u56e0\u4e3a\u5f02\u6216\u662f\u53ef\u9006\u8fd0\u7b97\uff0c\u6240\u4ee5\u5c31\u53ef\u4ee5\u6c42\u89e3\u5bc6\u7801\u4e86<\/p>\n<p>\u6284\u4e2a\u811a\u672c\uff1a<\/p>\n<pre><code class=\"language-Python\">rtf = &#039;{\\\\rtf1&#039; \\\\\u9700\u8981\u6ce8\u610f\uff0c\\r\u9700\u8981\u8f6c\u4e49\uff0c\u53d8\u6210\\\\r\nA = [0x05, 0x7D, 0x41, 0x15, 0x26, 0x01]\npassword=&#039;&#039;\nfor i in range(len(rtf)):\n    x = ord(rtf[i]) ^ A[i]\n    password+=chr(x)\nprint(password)\n<\/code><\/pre>\n<p>\u5f97\u5230\u7b2c\u4e8c\u4e2a\u5bc6\u7801\u662f<code>~!3a@0<\/code><\/p>\n<p>\u8fd9\u65f6\u5c31\u53ef\u4ee5\u53bb\u7a0b\u5e8f\u4e2d\u9a8c\u8bc1\u4e86\uff0c\u8f93\u5165\u4e24\u6b21\u5bc6\u7801\u4e4b\u540e\u63a7\u5236\u53f0\u5c31\u5173\u6389\u4e86\uff0c\u7136\u540e\u684c\u9762\u4e0a\u5c31\u751f\u6210\u4e86\u4e00\u4e2a.rtf\u6587\u4ef6<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303204135.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303204135.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303204135.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u6253\u5f00\u6587\u4ef6\u5c31\u662fflag\u5566\uff1aFlag{N0_M0re_Free_Bugs}<\/p>\n<h3>[WUSTCTF2020]level2<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u67e5\u58f3\u53d1\u73b0\u6709\u4e00\u4e2aUPX\u58f3<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310162429.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310162429.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310162429.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8131\u5b8c\u58f3\u4e4b\u540e\u7528IDA\u6253\u5f00<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310162539.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310162539.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310162539.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>flag\u76f4\u63a5\u5c31\u9001\u4e86\uff0c\u6211\u6ca1\u60f3\u5230\u5c45\u7136\u8fd9\u4e48\u7b80\u5355<\/p>\n<h3>[MRCTF2020]Transform<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u7528IDA\u6253\u5f00\uff0c\u8fdb\u53bb\u4e4b\u540e\u5c31\u662f\u51fd\u6570\u7684\u4e3b\u903b\u8f91:<\/p>\n<pre><code class=\"language-C\">int __fastcall main(int argc, const char **argv, const char **envp)\n{\n  char Str[104]; \/\/ [rsp+20h] [rbp-70h] BYREF\n  int j; \/\/ [rsp+88h] [rbp-8h]\n  int i; \/\/ [rsp+8Ch] [rbp-4h]\n\n  sub_402230(argc, argv, envp);\n  printf(&quot;Give me your code:\\n&quot;);\n  scanf(&quot;%s&quot;, Str);\n  if ( strlen(Str) != 33 )\n  {\n    printf(&quot;Wrong!\\n&quot;);\n    system(&quot;pause&quot;);\n    exit(0);\n  }\n  for ( i = 0; i &lt;= 32; ++i )\n  {\n    result[i] = Str[init[i]];\n    result[i] ^= LOBYTE(init[i]);\n  }\n  for ( j = 0; j &lt;= 32; ++j )\n  {\n    if ( byte_40F0E0[j] != result[j] )\n    {\n      printf(&quot;Wrong!\\n&quot;);\n      system(&quot;pause&quot;);\n      exit(0);\n    }\n  }\n  printf(&quot;Right!Good Job!\\n&quot;);\n  printf(&quot;Here is your flag: %s\\n&quot;, Str);\n  system(&quot;pause&quot;);\n  return 0;\n}<\/code><\/pre>\n<p>\u53d1\u73b0\u662f\u4e00\u4e2a\u6253\u4e71\u5b57\u7b26\u4e32\u5728\u5f02\u6216\u8fd0\u7b97\u7684\u64cd\u4f5c\uff0cLOBYTE()\u7684\u610f\u601d\u662f\u53d6\u516b\u4f4d\u6700\u4f4e\u5b57\u8282\uff0c\u5982\u56fe\u6240\u793a\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310161722.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310161722.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310161722.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u6700\u540e\u8fd8\u8981\u52a0\u4e2a00\uff0c\u7136\u540e\u6211\u4eec\u5c31\u53ef\u4ee5\u53d6\u5f97\u9700\u8981\u8fdb\u884c\u5f02\u6216\u7684\u4e24\u4e2a\u6570\u7ec4\u4e86\uff0c\u7531\u6b64\u5199\u51fa\u811a\u672c<\/p>\n<pre><code class=\"language-Python\">result=[0x67,0x79,0x7B,0x7F,0x75,0x2B,0x3C,0x52,0x53,0x79,0x57,0x5E,0x5D,0x42,0x7B,0x2D,0x2A,0x66,0x42,0x7E,0x4C,0x57,0x79,0x41,0x6B,0x7E,0x65,0x3C,0x5C,0x45,0x6F,0x62,0x4D]  \ninit  =[0x09,0x0A,0x0F,0x17,0x07,0x18,0x0C,0x06,0x01,0x10,0x03,0x11,0x20,0x1D,0x0B,0x1E,0x1B,0x16,0x04,0x0D,0x13,0x14,0x15,0x02,0x19,0x05,0x1F,0x08,0x12,0x1A,0x1C,0x0E,0x00]  \nstr=[0]*33  \nflag=&quot;&quot;  \nfor i in range(33):  \n  result[i]^=init[i]  \nfor j in range(33):  \n  str[init[j]]=result[j]  \nfor k in range(33):  \n  flag+=chr(str[k])  \nprint(flag)<\/code><\/pre>\n<p>MRCTF{Tr4nsp0sltiON_Clph3r_1s_3z}<\/p>\n<h3>[2019\u7ea2\u5e3d\u676f]easyRE<\/h3>\n<p>\u6700\u5f00\u59cb\u5199\u4e86\u4e00\u4e0b\uff0c\u9006\u5929\u9898\u76ee<\/p>\n<p>elf\u6587\u4ef6\uff0c\u7528IDA64\u6253\u5f00\uff0c\u53d1\u73b0\u91cc\u9762\u6709\u5f88\u591a\u51fd\u6570\uff0cshift+F12\u67e5\u627e\u4e00\u4e0b<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303212154.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303212154.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303212154.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u53d1\u73b0\u6709\u4e00\u957f\u4e32\u5b57\u7b26\u548c\u4e00\u4e2a\u8868\uff0c\u770b\u7740\u5c31\u662fbase64<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303212227.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303212227.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240303212227.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u672c\u6765\u4ee5\u4e3a\u89e3\u5bc6\u4e4b\u540e\u5c31\u80fd\u5f97\u5230flag\u4e86\uff0c\u8fd8\u662f\u6211\u60f3\u7684\u592a\u7b80\u5355\u4e86<\/p>\n<p>\u89e3\u5bc6\u4e4b\u540e\u53d1\u73b0\u8fd8\u662f\u4e2abase64\u52a0\u5bc6\uff0c\u7136\u540e\u4e00\u76f4\u4e00\u76f4\u4e00\u76f4\u89e3\u5bc6\uff0c10\u6b21\u4e4b\u540e\u5f97\u5230\u4e00\u4e2a\u7f51\u7ad9\uff0c\u662f\u770b\u96ea\u7684\u5e16\u5b50<\/p>\n<p>\u88ab\u9a97\u4e86\uff01\uff01\uff01<\/p>\n<p>\u7136\u540e\u4ece\u67e5\u627e\u5230\u7684you found me\u5165\u624b\uff0c\u4e00\u76f4\u4ea4\u53c9\u5f15\u7528\u627e\u5230\u4e3b\u8981\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">__int64 sub_4009C6()\n{\n  __int64 result; \/\/ rax\n  int i; \/\/ [rsp+Ch] [rbp-114h]\n  __int64 v2; \/\/ [rsp+10h] [rbp-110h]\n  __int64 v3; \/\/ [rsp+18h] [rbp-108h]\n  __int64 v4; \/\/ [rsp+20h] [rbp-100h]\n  __int64 v5; \/\/ [rsp+28h] [rbp-F8h]\n  __int64 v6; \/\/ [rsp+30h] [rbp-F0h]\n  __int64 v7; \/\/ [rsp+38h] [rbp-E8h]\n  __int64 v8; \/\/ [rsp+40h] [rbp-E0h]\n  __int64 v9; \/\/ [rsp+48h] [rbp-D8h]\n  __int64 v10; \/\/ [rsp+50h] [rbp-D0h]\n  __int64 v11; \/\/ [rsp+58h] [rbp-C8h]\n  char v12[13]; \/\/ [rsp+60h] [rbp-C0h] BYREF\n  char v13[4]; \/\/ [rsp+6Dh] [rbp-B3h] BYREF\n  char v14[19]; \/\/ [rsp+71h] [rbp-AFh] BYREF\n  char v15[32]; \/\/ [rsp+90h] [rbp-90h] BYREF\n  int v16; \/\/ [rsp+B0h] [rbp-70h]\n  char v17; \/\/ [rsp+B4h] [rbp-6Ch]\n  char v18[72]; \/\/ [rsp+C0h] [rbp-60h] BYREF\n  unsigned __int64 v19; \/\/ [rsp+108h] [rbp-18h]\n\n  v19 = __readfsqword(0x28u);\n  qmemcpy(v12, &quot;Iodl&gt;Qnb(ocy&quot;, 12);\n  v12[12] = 127;\n  qmemcpy(v13, &quot;y.i&quot;, 3);\n  v13[3] = 127;\n  qmemcpy(v14, &quot;d`3w}wek9{iy=~yL@EC&quot;, sizeof(v14));\n  memset(v15, 0, sizeof(v15));\n  v16 = 0;\n  v17 = 0;\n  sub_4406E0(0LL, v15, 37LL);\n  v17 = 0;\n  if ( sub_424BA0(v15) == 36 )\n  {\n    for ( i = 0; i &lt; (unsigned __int64)sub_424BA0(v15); ++i )\n    {\n      if ( (unsigned __int8)(v15[i] ^ i) != v12[i] )\n      {\n        result = 4294967294LL;\n        goto LABEL_13;\n      }\n    }\n    sub_410CC0(&quot;continue!&quot;);\n    memset(v18, 0, 65);\n    sub_4406E0(0LL, v18, 64LL);\n    v18[39] = 0;\n    if ( sub_424BA0(v18) == 39 )\n    {\n      v2 = sub_400E44(v18);\n      v3 = sub_400E44(v2);\n      v4 = sub_400E44(v3);\n      v5 = sub_400E44(v4);\n      v6 = sub_400E44(v5);\n      v7 = sub_400E44(v6);\n      v8 = sub_400E44(v7);\n      v9 = sub_400E44(v8);\n      v10 = sub_400E44(v9);\n      v11 = sub_400E44(v10);\n      if ( !(unsigned int)sub_400360(v11, off_6CC090) )\n      {\n        sub_410CC0(&quot;You found me!!!&quot;);\n        sub_410CC0(&quot;bye bye~&quot;);\n      }\n      result = 0LL;\n    }\n    else\n    {\n      result = 4294967293LL;\n    }\n  }\n  else\n  {\n    result = 0xFFFFFFFFLL;\n  }\nLABEL_13:\n  if ( __readfsqword(0x28u) != v19 )\n    sub_444020();\n  return result;\n}<\/code><\/pre>\n<p>\u53d1\u73b0\u51fd\u6570\u5f00\u5934\u7684\u5730\u65b9\u505a\u4e86\u4e00\u4e2a\u4f4d\u79fb\u5f02\u6216\u8fd0\u7b97\uff0c\u5199\u4e2a\u811a\u672c\u89e3\u5bc6\u4e00\u4e0b\uff1a<\/p>\n<pre><code class=\"language-python\">v12=&quot;Iodl&gt;Qnb(ocy\\x7Fy.i\\x7Fd`3w}wek9{iy=~yL@EC&quot;  \nv15=&quot;&quot;  \nfor i in range(len(v12)):  \n    v15+=chr(ord(v12[i])^i)  \nprint(v15)<\/code><\/pre>\n<p>\u5f97\u5230\u7684\u7ed3\u679c\u662f\uff1aInfo:The first four chars are <code>flag<\/code><\/p>\n<p>\u524d\u56db\u4e2a\u5b57\u8282\u662fflag\u2026\u2026\u4f60\u4e0d\u8bf4\u6211\u4e5f\u77e5\u9053\u7684<\/p>\n<p>\u518d\u5f80\u4e0b\u770b\u5c31\u662fbase64\u4e86\uff0c\u4f46\u662f\u8fd9\u91cc\u5e76\u6ca1\u6709\u770b\u89c1\u4e4b\u524d\u9700\u8981\u89e3\u5bc6\u7684\u5b57\u7b26\u4e32<\/p>\n<p>if\u5224\u65ad\u90a3\u91cc\u6709\u4e00\u884c<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310014356.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310014356.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310014356.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u540e\u9762\u770b\u4e86\u522b\u4eba\u7684wp\u8bf4base64\u7ed3\u675f\u4e4b\u540e\u4e0b\u9762\u53c8\u8c03\u7528\u4e86\u4e00\u4e2a\u51fd\u6570\uff0c\u5c31\u5728\u8fd9\u5f20\u56fe\u7684\u4e0b\u534a\u90e8\u5206<\/p>\n<p>\u8fdb\u5165\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">unsigned __int64 sub_400D35()\n{\n  unsigned __int64 result; \/\/ rax\n  unsigned int v1; \/\/ [rsp+Ch] [rbp-24h]\n  int i; \/\/ [rsp+10h] [rbp-20h]\n  int j; \/\/ [rsp+14h] [rbp-1Ch]\n  unsigned int v4; \/\/ [rsp+24h] [rbp-Ch]\n  unsigned __int64 v5; \/\/ [rsp+28h] [rbp-8h]\n\n  v5 = __readfsqword(0x28u);\n  v1 = sub_43FD20(0LL) - qword_6CEE38;\n  for ( i = 0; i &lt;= 1233; ++i )\n  {\n    sub_40F790(v1);\n    sub_40FE60();\n    sub_40FE60();\n    v1 = sub_40FE60() ^ 0x98765432;\n  }\n  v4 = v1;\n  if ( (v1 ^ byte_6CC0A0[0]) == &#039;f&#039; &amp;&amp; (HIBYTE(v4) ^ byte_6CC0A3) == &#039;g&#039; )\n  {\n    for ( j = 0; j &lt;= 24; ++j )\n      sub_410E90((byte_6CC0A0[j] ^ *(&amp;v4 + j % 4)));\n  }\n  result = __readfsqword(0x28u) ^ v5;\n  if ( result )\n    sub_444020();\n  return result;\n}<\/code><\/pre>\n<p>\u6700\u5f00\u59cb\u6211\u662f\u4e0d\u80fd\u7406\u89e3\u8fd9\u6bb5\u4ee3\u7801\u7684\uff0c\u4e8e\u662f\u53ea\u80fd\u53bb\u591a\u627e\u51e0\u4e2a\u76f8\u5bf9\u8be6\u7ec6\u7684wp\u53bb\u770b\u770b<\/p>\n<p>HIBYTE()\u662f\u53d6\u6700\u9ad8\u4f4d\u5b57\u8282\u7684\u610f\u601d\uff0c\u800cv4\u53c8\u662fint\u578b\uff0c\u6240\u4ee5<code>v4<\/code>\u4e0e<code>byte_6CC0A0<\/code>\u6570\u7ec4\u7684\u524d\u56db\u4e2a\u5b57\u8282\u5f02\u6216\u5c31\u80fd\u5f97\u5230flag\u5934\u7684\u5b57\u7b26\u4e32,\u800c\u4e0b\u6587for\u5faa\u73af\u53c8\u662f<code>byte_6CC0A0<\/code>\u6570\u7ec4\u4e0e<code>v4<\/code>\u6570\u7ec4\u4e2d\u4e0e4\u53d6\u6a21\u4e4b\u540e\u7684\u5143\u7d20\u5f02\u6216\uff0c\u4e5f\u5c31\u662f\u5bf9<code>v4<\/code>\u6570\u7ec4\u4e2d\u7684\u56db\u4e2a\u5143\u7d20\u5faa\u73af\u5f02\u6216\uff0c\u56e0\u6b64\u6211\u4eec\u9700\u8981\u5c06<code>byte_6CC0A0<\/code>\u6570\u7ec4\u4e2d\u7684\u524d\u56db\u4e2a\u5143\u7d20\u4e0e\u201cflag\u201d\u5f02\u6216\u5f97\u5230\u4f5c\u4e3a\u201c\u5bc6\u94a5\u201d\u7684<code>v4<\/code>\u6570\u7ec4\uff0c\u76f4\u5230\u8fd9\u91cc\u6211\u624d\u53d1\u73b0\u524d\u6587\u89e3\u51fa\u7684\u524d\u56db\u4e2a\u5b57\u8282\u4e3aflag\u662f\u6709\u7528\u7684\u63d0\u793a<\/p>\n<p>\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ef\u4ee5\u6413\u811a\u672c\u4e86\uff1a<\/p>\n<pre><code class=\"language-Python\">v4=&quot;&quot;  \nbyte_6CC0A0=&quot;@5 V]\\x18\\&quot;E\\x17\/$nb&lt;&#039;THl$nr&lt;2E[&quot;  \nxor=&quot;flag&quot;  \nflag=&quot;&quot;  \nfor i in range(4):  \n    v4+=chr(ord(byte_6CC0A0[i])^ord(xor[i]))  \nprint(v4)  \nfor j in range(len(byte_6CC0A0)):  \n    flag+=chr(ord(byte_6CC0A0[j])^ord(v4[j%4]))  \nprint(flag)<\/code><\/pre>\n<p>\u5f97\u5230\u7684\u7ed3\u679c\u5c31\u662f\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310021343.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310021343.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310021343.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><br \/>\n\u5f88\u6709\u610f\u601d\u7684\u4e00\u9053\u9898\uff0c\u4e0d\u8fc7\u771f\u8ba9\u6211\u5934\u5927\uff0c\u770b\u7740wp\u5199\u90fd\u6709\u70b9\u78d5\u78d5\u7eca\u7eca\u7684<\/p>\n<h3>[SUCTF2019]SignIn<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\u4e4b\u540eIDA\u6253\u5f00\uff0c\u6ca1\u770b\u89c1\u4e3b\u8981\u51fd\u6570\uff0c\u67e5\u627e\u5b57\u7b26\u4e32\u4e4b\u540e\u53d1\u73b0\u6709\u4e2ainput flag\uff0c\u4ea4\u53c9\u5f15\u7528\u5230\u5177\u4f53\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">__int64 __fastcall main(int a1, char **a2, char **a3)\n{\n  char v4[16]; \/\/ [rsp+0h] [rbp-4A0h] BYREF\n  char v5[16]; \/\/ [rsp+10h] [rbp-490h] BYREF\n  char v6[16]; \/\/ [rsp+20h] [rbp-480h] BYREF\n  char v7[16]; \/\/ [rsp+30h] [rbp-470h] BYREF\n  char v8[112]; \/\/ [rsp+40h] [rbp-460h] BYREF\n  char v9[1000]; \/\/ [rsp+B0h] [rbp-3F0h] BYREF\n  unsigned __int64 v10; \/\/ [rsp+498h] [rbp-8h]\n\n  v10 = __readfsqword(0x28u);\n  puts(&quot;[sign in]&quot;);\n  printf(&quot;[input your flag]: &quot;);\n  __isoc99_scanf(&quot;%99s&quot;, v8);\n  sub_96A(v8, v9);\n  __gmpz_init_set_str(v7, &quot;ad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35&quot;, 16LL);\n  __gmpz_init_set_str(v6, v9, 16LL);\n  __gmpz_init_set_str(v4, &quot;103461035900816914121390101299049044413950405173712170434161686539878160984549&quot;, 10LL);\n  __gmpz_init_set_str(v5, &quot;65537&quot;, 10LL);\n  __gmpz_powm(v6, v6, v5, v4);\n  if ( (unsigned int)__gmpz_cmp(v6, v7) )\n    puts(&quot;GG!&quot;);\n  else\n    puts(&quot;TTTTTTTTTTql!&quot;);\n  return 0LL;\n}<\/code><\/pre>\n<p>\u770b\u89c1\u8fd9\u4e2a65537\u7684\u65f6\u5019\u6211\u7b2c\u4e00\u53cd\u5e94\u5c31\u662fRSA\uff0c\u7136\u540eC\u662f\u752816\u8fdb\u5236\u8868\u793a\u7684\uff0cn\u662f\u90a3\u957f\u4e32\u5927\u7d20\u6570\uff0c\u5148\u53bb\u5728\u7ebf\u7f51\u7ad9\u5206\u89e3\u4e00\u4e0bn,\u7136\u540e\u53bb\u6284\u4e2aRSA\u811a\u672c\u5c31\u53ef\u4ee5\u89e3\u5bc6\u4e86\uff1a<\/p>\n<pre><code class=\"language-Python\">import gmpy2  \nfrom Crypto.Util.number import long_to_bytes  \n\nq = 366669102002966856876605669837014229419  \np = 282164587459512124844245113950593348271  \n\ne = 65537  \nc = 0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35  \n# n = 103461035900816914121390101299049044413950405173712170434161686539878160984549  \nn = q * p  \n# print(n)  \nd = gmpy2.invert(e, (p - 1) * (q - 1))  \nprint(&quot;d=&quot;, d)  \nm = pow(c, d, n)  \nprint(m)  \nprint(long_to_bytes(m))<\/code><\/pre>\n<p>\u653e\u865a\u62df\u673a\u91cc\u9762\u8dd1\u51fa\u6765\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310201100.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310201100.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240310201100.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p><code>suctf{Pwn_@_hundred_years}<\/code><\/p>\n<h3>[ACTF\u65b0\u751f\u8d5b2020]usualCrypt<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u7528IDA\u6253\u5f00\uff0c\u67e5\u627e\u5b57\u7b26\u4e32\u4e4b\u540e\u53d1\u73b0\u6709\u4e00\u4e2abase64\u8868\u4ee5\u53ca\u4e00\u4e2a\u5b57\u7b26\u4e32<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312135731.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312135731.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312135731.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u6211\u7b2c\u4e00\u53cd\u5e94\u662f\u53bb\u89e3\u8fd9\u4e2abase64\uff0c\u7ed3\u679c\u53d1\u73b0\u8fd9\u5e76\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684base64\u5b57\u7b26\u4e32<\/p>\n<p>\u4e8e\u662f\u53bb\u770b\u4e86\u773cwp\u7684\u601d\u8def<\/p>\n<p>\u8fdb\u5165_main()\u51fd\u6570\u770b\u770b\uff1a<\/p>\n<pre><code class=\"language-C\">int __cdecl main(int argc, const char **argv, const char **envp)\n{\n  int v3; \/\/ esi\n  int v5[3]; \/\/ [esp+8h] [ebp-74h] BYREF\n  __int16 v6; \/\/ [esp+14h] [ebp-68h]\n  char v7; \/\/ [esp+16h] [ebp-66h]\n  char v8[100]; \/\/ [esp+18h] [ebp-64h] BYREF\n\n  printf(&amp;unk_40E140);\n  scanf(&quot;%s&quot;, v8);\n  memset(v5, 0, sizeof(v5));\n  v6 = 0;\n  v7 = 0;\n  base64_fun(v8, strlen(v8), v5);\n  v3 = 0;\n  while ( *(v5 + v3) == byte_40E0E4[v3] )\n  {\n    if ( ++v3 &gt; strlen(v5) )\n      goto LABEL_6;\n  }\n  printf(aError);\nLABEL_6:\n  if ( v3 - 1 == strlen(byte_40E0E4) )\n    return printf(aAreYouHappyYes);\n  else\n    return printf(aAreYouHappyNo);\n}<\/code><\/pre>\n<p>\u90e8\u5206\u51fd\u6570\u6211\u5df2\u91cd\u547d\u540d\uff0c\u8fdb\u5165base64_fun()\uff1a<\/p>\n<pre><code class=\"language-C\">int __cdecl sub_401080(int a1, int a2, int a3)\n{\n  int v3; \/\/ edi\n  int v4; \/\/ esi\n  int v5; \/\/ edx\n  int v6; \/\/ eax\n  int v7; \/\/ ecx\n  int v8; \/\/ esi\n  int v9; \/\/ esi\n  int v10; \/\/ esi\n  int v11; \/\/ esi\n  _BYTE *v12; \/\/ ecx\n  int v13; \/\/ esi\n  int v15; \/\/ [esp+18h] [ebp+8h]\n\n  v3 = 0;\n  v4 = 0;\n  sub_401000();\n  v5 = a2 % 3;\n  v6 = a1;\n  v7 = a2 - a2 % 3;\n  v15 = a2 % 3;\n  if ( v7 &gt; 0 )\n  {\n    do\n    {\n      LOBYTE(v5) = *(a1 + v3);\n      v3 += 3;\n      v8 = v4 + 1;\n      *(v8 + a3 - 1) = aAbcdefghijklmn[(v5 &gt;&gt; 2) &amp; 0x3F];\n      *(++v8 + a3 - 1) = aAbcdefghijklmn[16 * (*(a1 + v3 - 3) &amp; 3) + ((*(a1 + v3 - 2) &gt;&gt; 4) &amp; 0xF)];\n      *(++v8 + a3 - 1) = aAbcdefghijklmn[4 * (*(a1 + v3 - 2) &amp; 0xF) + ((*(a1 + v3 - 1) &gt;&gt; 6) &amp; 3)];\n      v5 = *(a1 + v3 - 1) &amp; 0x3F;\n      v4 = v8 + 1;\n      *(v4 + a3 - 1) = aAbcdefghijklmn[v5];\n    }\n    while ( v3 &lt; v7 );\n    v5 = v15;\n  }\n  if ( v5 == 1 )\n  {\n    LOBYTE(v7) = *(v3 + a1);\n    v9 = v4 + 1;\n    *(v9 + a3 - 1) = aAbcdefghijklmn[(v7 &gt;&gt; 2) &amp; 0x3F];\n    v10 = v9 + 1;\n    *(v10 + a3 - 1) = aAbcdefghijklmn[16 * (*(v3 + a1) &amp; 3)];\n    *(v10 + a3) = 61;\nLABEL_8:\n    v13 = v10 + 1;\n    *(v13 + a3) = 61;\n    v4 = v13 + 1;\n    goto LABEL_9;\n  }\n  if ( v5 == 2 )\n  {\n    v11 = v4 + 1;\n    *(v11 + a3 - 1) = aAbcdefghijklmn[(*(v3 + a1) &gt;&gt; 2) &amp; 0x3F];\n    v12 = (v3 + a1 + 1);\n    LOBYTE(v6) = *v12;\n    v10 = v11 + 1;\n    *(v10 + a3 - 1) = aAbcdefghijklmn[16 * (*(v3 + a1) &amp; 3) + ((v6 &gt;&gt; 4) &amp; 0xF)];\n    *(v10 + a3) = aAbcdefghijklmn[4 * (*v12 &amp; 0xF)];\n    goto LABEL_8;\n  }\nLABEL_9:\n  *(v4 + a3) = 0;\n  return sub_401030(a3);\n}<\/code><\/pre>\n<p>\u51fd\u6570\u5934\u6709\u4e00\u4e2asub_401000()\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int sub_401000()\n{\n  int result; \/\/ eax\n  char v1; \/\/ cl\n\n  for ( result = 6; result &lt; 15; ++result )\n  {\n    v1 = aAbcdefghijklmn[result + 10];\n    aAbcdefghijklmn[result + 10] = aAbcdefghijklmn[result];\n    aAbcdefghijklmn[result] = v1;\n  }\n  return result;\n}<\/code><\/pre>\n<p>\u8fd9\u91cc\u662f\u5bf9base64\u8868\u8fdb\u884c\u64cd\u4f5c\uff0c\u5177\u4f53\u6765\u8bf4\u5c31\u662f\u5c06\u8868\u4e2d6-14\u4e0e16-24\u4e2d\u7684\u5143\u7d20\u8fdb\u884c\u4e92\u6362<\/p>\n<p>\u53d1\u73b0\u51fd\u6570\u6700\u540e\u8fd8\u6709\u4e00\u4e2a\u8fd4\u56de\u503c\uff0c\u8fdb\u5165sub_401030()\u51fd\u6570\uff1a<\/p>\n<pre><code class=\"language-C\">int __cdecl sub_401030(const char *a1)\n{\n  __int64 v1; \/\/ rax\n  char v2; \/\/ al\n\n  v1 = 0i64;\n  if ( strlen(a1) )\n  {\n    do\n    {\n      v2 = a1[HIDWORD(v1)];\n      if ( v2 &lt; &#039;a&#039; || v2 &gt; &#039;z&#039; )\n      {\n        if ( v2 &lt; &#039;A&#039; || v2 &gt; &#039;Z&#039; )\n          goto LABEL_9;\n        LOBYTE(v1) = v2 + 32;\n      }\n      else\n      {\n        LOBYTE(v1) = v2 - 32;\n      }\n      a1[HIDWORD(v1)] = v1;\nLABEL_9:\n      LODWORD(v1) = 0;\n      ++HIDWORD(v1);\n    }\n    while ( HIDWORD(v1) &lt; strlen(a1) );\n  }\n  return v1;\n}<\/code><\/pre>\n<p>\u8fd9\u4e2a\u51fd\u6570\u7684\u4f5c\u7528\u662f\u5c06base64\u52a0\u5bc6\u540e\u7684\u5b57\u7b26\u4e32\u4e2d\u7684\u5927\u5199\u5b57\u6bcd\u8f6c\u5c0f\u5199\uff0c\u5c0f\u5199\u5b57\u6bcd\u8f6c\u5927\u5199<\/p>\n<p>\u7531\u6b64\u5c31\u53ef\u4ee5\u6784\u9020\u811a\u672c\u89e3\u5bc6\u4e86\uff1a<\/p>\n<pre><code class=\"language-C++\">#include&lt;iostream&gt;\n#include&lt;string&gt;\n#include&lt;cstring&gt;\n\nusing namespace std;\n\nvoid base64_fun() {\n    char b[] = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/&quot;;\n    char result;\n    for (int i = 6; i &lt; 15; i++) {\n        result = b[i];\n        b[i] = b[i + 10];\n        b[i + 10] = result;\n    }\n    cout&lt;&lt;b&lt;&lt;endl;\n}\n\nvoid exchange() {\n    char str[]=&quot;zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9&quot;;\n    int len_str=strlen(str);\n    for (int i=0;i&lt;len_str;i++) {\n        if (str[i] &gt;= &#039;a&#039; &amp;&amp; str[i] &lt;= &#039;z&#039;) {\n            str[i] = str[i] - 32; \n        } else if (str[i] &gt;= &#039;A&#039; &amp;&amp; str[i] &lt;= &#039;Z&#039;) {\n            str[i] = str[i] + 32; \n        }\n    }\n    cout&lt;&lt;str&lt;&lt;endl;\n}\n\nint main()\n{\n    base64_fun();\n    exchange();\n\n}\n<\/code><\/pre>\n<p>\u8fd9\u6837\u4ee5\u6765\u5c31\u53ef\u4ee5\u5f97\u5230\u539f\u672c\u7684\u8868\u548c\u539f\u672c\u7684\u5b57\u7b26\u4e32\u4e86\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312143455.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312143455.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312143455.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u7136\u540e\u4f7f\u7528Python\u7684base64\u6a21\u5757\u8fdb\u884c\u6362\u8868\u7684\u89e3\u5bc6\uff1a<\/p>\n<pre><code class=\"language-Python\">import base64  \nimport string  \n\nstr1 = &quot;ZmxhZ3tiGNXlXjHfaDTzN2FfK3LycRTpc2L9&quot;  # \u5f85\u89e3\u79d8\u5b57\u7b26\u4e32  \n\nstring1 = &quot;ABCDEFQRSTUVWXYPGHIJKLMNOZabcdefghijklmnopqrstuvwxyz0123456789+\/&quot;  # \u65b0\u8868  \nstring2 = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/&quot;  \n\nprint(base64.b64decode(str1.translate(str.maketrans(string1, string2))))<\/code><\/pre>\n<p>b'flag{bAse64_h2s_a_Surprise}'<\/p>\n<h3>[MRCTF2020]Xor<\/h3>\n<p>\u8fdb\u53bb\u4e4b\u540e\u76f4\u63a5\u5c31\u662f\u4e3b\u51fd\u6570\uff0c\u4f46\u662f\u6309F5\u4e4b\u540e\u4f1a\u62a5\u9519<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182240.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182240.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182240.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u65e0\u6cd5\u53cd\u6c47\u7f16\uff0c\u76f4\u63a5\u770b\u6c47\u7f16<br \/>\n<a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182306.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182306.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182306.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><br \/>\n<a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182328.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182328.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312182328.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>flag\u5176\u5b9e\u50a8\u5b58\u5728byte_4212C0\u4e2d\uff0c\u770b\u5230 loc_4010B6 \u6211\u4eec\u53ef\u4ee5\u77e5\u9053 edx <a href=\"https:\/\/so.csdn.net\/so\/search?q=%E5%AF%84%E5%AD%98%E5%99%A8&amp;spm=1001.2101.3001.7020\">\u5bc4\u5b58\u5668<\/a>\u4e0d\u65ad\u81ea\u589e,\u6700\u540e\u9000\u51fa\u5faa\u73af,\u7136\u540e\u518d\u4e0e27 \u8fdb\u884c\u6bd4\u8f83,\u8fd9\u4e2a\u65f6\u5019\u6211\u4eec\u5c31\u77e5\u9053,flag\u7684\u957f\u5ea6\u5c31\u4e3a27\uff0c\u5982\u679c\u8f93\u5165\u7684\u957f\u5ea6 \u5927\u4e8e27 \u90a3\u4e48\u5c31\u63d0\u793a\u9519\u8bef\uff0c\u5982\u679c\u4e0d\u5c0f\u4e8e \u90a3\u4e48\u5148\u4e0eeax\u5f02\u6216 \u7136\u540e \u518d\u4e0ebyte_41EA08\u8fdb\u884c\u6bd4\u8f83\uff0c\u6240\u4ee5byte_41EA08\u5c31\u662f\u5f02\u6216\u540e\u7684flag\uff0c\u6211\u4eec\u5199\u811a\u672c\u8fd8\u539f\u5c31\u884c\u4e86<\/p>\n<pre><code>str1 = &#039;MSAWB~FXZ:J:`tQJ&quot;N@ bpdd}8g&#039;\nflag = &quot;&quot;\nfor i in range(len(str1)):\n    flag+= chr(i ^ ord(str1[i]))\nprint(flag)<\/code><\/pre>\n<h3>[HDCTF2019]Maze<\/h3>\n<p>\u4e0b\u8f7d\u9644\u4ef6\uff0c\u6709\u4e00\u4e2a\u7b80\u5355\u7684UPX\u58f3\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312164336.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312164336.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312164336.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u76f4\u63a5\u7528\u5de5\u5177\u53bb\u9664\u4e86\uff0c\u7528IDA\u6253\u5f00\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312164516.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312164516.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312164516.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u53d1\u73b0\u4e00\u5904\u7206\u7ea2\uff0c\u4e00\u5927\u5806\u5b57\u8282\u7801\u4ee5\u53ca\u4e00\u4e2ajnz\u539f\u5730\u8df3\u8f6c\uff0c\u56e0\u4e3a\u8df3\u8f6c\u7684\u5730\u5740+1\u6240\u4ee5\u624d\u662f\u539f\u5730\u8df3\u8f6c(\u6211\u731c\u7684)<\/p>\n<p>\u5148\u6309D\u5c06call\u7684\u9519\u8bef\u7684\u5730\u5740\u8f6c\u6362\u4e3a\u5b57\u8282\u7801\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312165818.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312165818.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312165818.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u53c8\u53bb\u67e5\u4e86\u4e00\u4e0b\uff0c\u53d1\u73b00E8h\u662f\u6dfb\u52a0\u82b1\u6307\u4ee4\uff0c\u5c06jnz\u4e0e0E8h\u90fdnop\u6389\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312170007.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312170007.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312170007.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u8fd9\u6837\u5c31\u5f88\u6b63\u5e38\u4e86\uff0c\u4f46\u662f\u8fd8\u662f\u4e0d\u80fdF5\uff0c\u6211\u4eec\u9700\u8981\u6309P\u91cd\u65b0\u5b9a\u4e49\u51fd\u6570\uff0c\u9009\u4e2d\u9700\u8981\u5b9a\u4e49\u7684\u90e8\u5206\u6309P<\/p>\n<p>\u7136\u540e\u5c31\u53ef\u4ee5F5\u4e86\uff1a<\/p>\n<pre><code class=\"language-C\">int __cdecl main(int argc, const char **argv, const char **envp)\n{\n  int i; \/\/ [esp+10h] [ebp-14h]\n  char v5[16]; \/\/ [esp+14h] [ebp-10h] BYREF\n\n  sub_401140(aGoThroughTheMa);\n  scanf(&quot;%14s&quot;, v5);\n  for ( i = 0; i &lt;= 13; ++i )\n  {\n    switch ( v5[i] )\n    {\n      case &#039;a&#039;:\n        --*(_DWORD *)asc_408078;\n        break;\n      case &#039;d&#039;:\n        ++*(_DWORD *)asc_408078;\n        break;\n      case &#039;s&#039;:\n        --dword_40807C;\n        break;\n      case &#039;w&#039;:\n        ++dword_40807C;\n        break;\n      default:\n        continue;\n    }\n  }\n  if ( *(_DWORD *)asc_408078 == 5 &amp;&amp; dword_40807C == -4 )\n  {\n    sub_401140(aCongratulation);\n    sub_401140(aHereIsTheFlagF);\n  }\n  else\n  {\n    sub_401140(aTryAgain);\n  }\n  return 0;\n}<\/code><\/pre>\n<p>\u53ef\u4ee5\u770b\u89c1\u6211\u4eec\u7528\u952e\u76d8\u4e2d\u7684adsw\u8fdb\u884c\u64cd\u4f5c\uff0c\u800casc_408078\u548cdword_40807C\u5206\u522b\u4ee3\u8868\u6a2a\u5750\u6807\u548c\u7eb5\u5750\u6807\uff0c\u5219\u7ec8\u70b9\u5c31\u662f(5,-4)<\/p>\n<p>\u7ed3\u5408\u9898\u76ee\u540d\u5b57\u548c\u4f2a\u4ee3\u7801adsw\u7684\u63d0\u793a\uff0c\u8fd9\u662f\u4e00\u4e2a\u8ff7\u5bab\u9898\uff1a<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312170703.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312170703.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240312170703.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n<p>\u6211\u4eec\u5f88\u5bb9\u6613\u53ef\u4ee5\u67e5\u770b\u5230\u5730\u56fe\uff0c\u4e14\u8d77\u70b9\u5219\u662f(7,0)\uff0c\u5730\u56fe\u603b\u5171\u5360\u4e8670\u4e2a\u5b57\u8282\uff0c\u53ef\u4ee5\u7ed8\u5236\u5730\u56fe\u4e86\uff1a<\/p>\n<pre><code>*******+**\n******* **\n****    **\n**   *****\n** **F****\n**    ****\n**********<\/code><\/pre>\n<p>ssaaasaassdddw<\/p>\n<h3>[MRCTF2020]hello_world_go<\/h3>\n<p>\u597d\u50cf\u662fgo\u8bed\u8a00\u9006\u5411\uff0c\u7528IDA8.3\u6253\u5f00\u5c31\u7ed9flag<\/p>\n<p><a href=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240311192344.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240311192344.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/noobxiaomeng.top\/wp-content\/uploads\/2024\/11\/Pasted-image-20240311192344.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" \/><\/div><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f53\u6211\u8fd8\u662f\u4e2a\u5c0f\u767d\u7684\u65f6\u5019\u5199\u51fa\u6765\u7684wp\u4eec<\/p>\n","protected":false},"author":1,"featured_media":471,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-430","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-re"],"_links":{"self":[{"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/posts\/430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/comments?post=430"}],"version-history":[{"count":1,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/posts\/430\/revisions"}],"predecessor-version":[{"id":472,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/posts\/430\/revisions\/472"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/media\/471"}],"wp:attachment":[{"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/media?parent=430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/categories?post=430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/noobxiaomeng.top\/index.php\/wp-json\/wp\/v2\/tags?post=430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}