{"id":795,"date":"2026-02-10T16:46:35","date_gmt":"2026-02-10T08:46:35","guid":{"rendered":"http:\/\/shr1mp.top\/?p=795"},"modified":"2026-03-17T20:56:36","modified_gmt":"2026-03-17T12:56:36","slug":"shctf","status":"publish","type":"post","link":"http:\/\/shr1mp.top\/index.php\/2026\/02\/10\/shctf\/","title":{"rendered":"Shctf"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"\u7b7e\u5230\">\u7b7e\u5230<\/h2>\n\n\n\n<p>\u7565\uff0c\u626b\u4e8c\u7ef4\u7801\u5173\u6ce8\u516c\u4f17\u53f7<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u4e0d\u6b62\u4e8c\u7ef4\u7801\">\u4e0d\u6b62\u4e8c\u7ef4\u7801<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"601\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098970-\u5c4f\u5e55\u622a\u56fe-2026-02-03-120629-1024x601.png\" alt=\"\" class=\"wp-image-796\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098970-\u5c4f\u5e55\u622a\u56fe-2026-02-03-120629-1024x601.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098970-\u5c4f\u5e55\u622a\u56fe-2026-02-03-120629-300x176.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098970-\u5c4f\u5e55\u622a\u56fe-2026-02-03-120629-768x451.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098970-\u5c4f\u5e55\u622a\u56fe-2026-02-03-120629-1536x902.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098970-\u5c4f\u5e55\u622a\u56fe-2026-02-03-120629.png 1710w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u62ff\u5230\u4e00\u5f20\u4e8c\u7ef4\u7801\uff0c\u626b\u8fdb\u53bb\u540e\u6ca1\u5565\u5185\u5bb9\uff08\u4f46\u662f\u901a\u8fc7pz\u53d1\u73b0\u662fLSB\u9690\u5199\uff09<\/p>\n\n\n\n<p>\u62ff\u5230stegsolve\u91cc\uff0c\u53d1\u73b00\u901a\u9053\u7684\u4e8c\u7ef4\u7801\u6709\u53d8\u5316\uff0c\u6545\u800c\u5355\u72ec\u5c06RGB0\u901a\u9053\u4e09\u4e2a\u56fe\u7247\u62ff\u51fa\u6765<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"414\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099006-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140645-1024x414.png\" alt=\"\" class=\"wp-image-798\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099006-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140645-1024x414.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099006-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140645-300x121.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099006-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140645-768x311.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099006-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140645.png 1493w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"392\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098999-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140457-1024x392.png\" alt=\"\" class=\"wp-image-797\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098999-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140457-1024x392.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098999-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140457-300x115.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098999-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140457-768x294.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770098999-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140457.png 1435w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"401\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099011-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140708-1024x401.png\" alt=\"\" class=\"wp-image-799\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099011-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140708-1024x401.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099011-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140708-300x118.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099011-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140708-768x301.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770099011-\u5c4f\u5e55\u622a\u56fe-2026-02-03-140708.png 1475w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u8c03\u6574\u4e0d\u540c\u901a\u9053\u5f97\u5230\u4e0d\u540c\u7684\u4e8c\u7ef4\u7801\uff0c\u89e3\u51fa\u4e09\u4e2aflag\u90e8\u5206<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FLAG_PART_1: SHCTF{55a23d24-\nFLAG_PART_2: ABBB\/AABBB\/AAAAA\/BBBBB\/ABBBBA\/BBBBA\/B\/AABBB\/ABBB\nFLAG_PART_3: MkZkbDg3ZlY3ZEQxalNGenQyZUFYT3E0NmRrTXFV<\/code><\/pre>\n\n\n\n<p>part2\u662f\u83ab\u65af\u5bc6\u7801<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>B705-4E7B<\/code><\/pre>\n\n\n\n<p>part3\u662fBase\u7cfb\u5217<\/p>\n\n\n\n<p>\u6545\u800c\u5f97\u5230<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHCTF{55a23d24-B705-4E7B-942e-bdd}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"evan\">Evan<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"568\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770104897-\u5c4f\u5e55\u622a\u56fe-2026-02-03-124213-1024x568.png\" alt=\"\" class=\"wp-image-804\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770104897-\u5c4f\u5e55\u622a\u56fe-2026-02-03-124213-1024x568.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770104897-\u5c4f\u5e55\u622a\u56fe-2026-02-03-124213-300x166.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770104897-\u5c4f\u5e55\u622a\u56fe-2026-02-03-124213-768x426.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770104897-\u5c4f\u5e55\u622a\u56fe-2026-02-03-124213-1536x852.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770104897-\u5c4f\u5e55\u622a\u56fe-2026-02-03-124213-2048x1136.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u7ed9\u7684\u56fe\u7247\u540e\u9762\u6709\u4e2azip\u6587\u4ef6\u3002\u63d0\u53d6\u51fa\u6765\uff0c\u4f2a\u52a0\u5bc6\u3002\u89e3\u5f00\u540e\u5c31\u662fflag<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"885\" height=\"347\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770105214-\u5c4f\u5e55\u622a\u56fe-2026-02-03-155304.png\" alt=\"\" class=\"wp-image-807\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770105214-\u5c4f\u5e55\u622a\u56fe-2026-02-03-155304.png 885w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770105214-\u5c4f\u5e55\u622a\u56fe-2026-02-03-155304-300x118.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770105214-\u5c4f\u5e55\u622a\u56fe-2026-02-03-155304-768x301.png 768w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/figure>\n\n\n\n<p>\u6253\u5f00flag.txt\u5f97\u5230\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHCTF{Evan_1s_s0_h4nds0me!}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u63d0\u95ee\u524d\u8bf7\u5148\u641c\u7d22\">\u63d0\u95ee\u524d\u8bf7\u5148\u641c\u7d22<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u5f88\u591a\u4eba\u8ba4\u4e3a CTF \u53ea\u662f\u5173\u4e8e\u201c\u653b\u51fb\u201d\u7684\u827a\u672f\uff0c\u4f46\u5176\u5b9e\u5b83\u66f4\u662f\u5173\u4e8e\u201c\u5b66\u4e60\u201d\u7684\u827a\u672f<\/p>\n\n\n\n<p>\u8fd9\u91cc\u6ca1\u6709\u590d\u6742\u7684\u4ee3\u7801\uff0c\u4e5f\u6ca1\u6709\u9ad8\u6df1\u7684\u7b97\u6cd5\uff0c\u53ea\u6709\u4e00\u7bc7\u4f60\u9700\u8981\u53cd\u590d\u7814\u8bfb\u7684\u6587\u7ae0<\/p>\n\n\n\n<p>\u5982\u679c\u4f60\u65e0\u6cd5\u901a\u8fc7<strong>\u641c\u7d22<\/strong>\u89e3\u51b3\u62a5\u9519\uff0c\u4f60\u5c31\u65e0\u6cd5\u901a\u8fc7<strong>\u63d0\u95ee<\/strong>\u83b7\u5f97\u5e2e\u52a9<\/p>\n\n\n\n<p>\u8bf7\u9759\u4e0b\u5fc3\u6765\u4ed4\u7ec6\u9605\u8bfb\uff0c\u4f60\u4f1a\u6709\u6536\u83b7\u7684<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>tips: \u53ef\u80fd\u4f1a\u5206\u4e0d\u6e05\u5927\u5199O\u548c\u6570\u5b570<\/p>\n<\/blockquote>\n<\/blockquote>\n\n\n\n<p>\u6587\u7ae0\u91cc\u9762\u85cf\u4e86flag\uff0c\u76f4\u63a5\u590d\u5236\u7c98\u8d34\u4e0b\u6765<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770122194-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203625-1024x600.png\" alt=\"\" class=\"wp-image-820\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770122194-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203625-1024x600.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770122194-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203625-300x176.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770122194-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203625-768x450.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770122194-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203625.png 1266w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"office\">Office<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Office\u6211\u53ea\u63a8\u8350MS\uff0cWPS\u662f\u4ec0\u4e48\uff0c\u6211\u4e0d\u77e5\u9053<\/p>\n<\/blockquote>\n\n\n\n<p>\u9996\u5148doc\u6587\u4ef6\u91cc\u9762<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IRy1m2qYkmewkTqDrneCoTCQoUiFqm7zqoeRoT7DqDCAqm7QsTqRuT3PqjWUt5e7<\/code><\/pre>\n\n\n\n<p>\u7ed9\u4e86\u4e2adoc\u6587\u4ef6\uff0c\u6539\u540e\u7f00\u540d\u4f4dzip\uff0c\u627e\u5230\u91cc\u9762\u6709\u4e2a\u5f02\u5e38\u6587\u4ef6<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"301\" height=\"139\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108711-\u5c4f\u5e55\u622a\u56fe-2026-02-03-165152.png\" alt=\"\" class=\"wp-image-810\"\/><\/figure>\n\n\n\n<p>\u590d\u5236alphabet\u91cc\u9762\u7684\u5185\u5bb9<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>+\/0-6a-zA-Z7-9=<\/code><\/pre>\n\n\n\n<p>\u8fd9\u4e2a\u662fBase\u7f16\u7801\u7684\u7801\u8868\uff0c\u62ff\u53bbcyberchef<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"391\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108839-\u5c4f\u5e55\u622a\u56fe-2026-02-03-164958-1024x391.png\" alt=\"\" class=\"wp-image-811\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108839-\u5c4f\u5e55\u622a\u56fe-2026-02-03-164958-1024x391.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108839-\u5c4f\u5e55\u622a\u56fe-2026-02-03-164958-300x114.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108839-\u5c4f\u5e55\u622a\u56fe-2026-02-03-164958-768x293.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108839-\u5c4f\u5e55\u622a\u56fe-2026-02-03-164958-1536x586.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770108839-\u5c4f\u5e55\u622a\u56fe-2026-02-03-164958.png 1790w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u5f97\u5230flag<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u8d44\u6e90\u5e73\u6743\">\u8d44\u6e90\u5e73\u6743\uff01<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u82d5\u76ae\u54e5\u5728\u7f51\u4e0a\u4e0b\u8f7d\u8d44\u6e90\u65f6\u9047\u5230\u4e86\u65e0\u826f\u8d44\u6e90\u7ad9\uff0c\u4ece\u67d0\u514b\u7f51\u76d8\u4e0b\u4e86\u4e00\u4e2a\u5c0f\u65f6\uff0c\u7ed3\u679c\u53d1\u73b0\u538b\u7f29\u5305\u7684\u89e3\u538b\u5bc6\u7801\u7adf\u7136\u8fd8\u8981\u652f\u4ed8 1 \u4e2a\u6bd4\u7279\u5e01\uff1f\uff1f\uff1f<\/p>\n<\/blockquote>\n\n\n\n<p>\u7ed9\u4e86\u4e2azip\uff0c\u91cc\u9762\u6709exe\u6587\u4ef6\uff0c\u5229\u7528\u7ecf\u5178\u7684exe\u8fdb\u884c\u660e\u6587\u7206\u7834\uff0c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\Users\\q1388\\Desktop\\\u5de5\u5177\\bkcrack-1.8.1-win32&gt;bkcrack -C 2.zip -c flag.exe -p exe -o 64\nbkcrack 1.8.1 - 2025-10-25\n&#91;17:53:01] Z reduction using 56 bytes of known plaintext\n100.0 % (56 \/ 56)\n&#91;17:53:01] Attack on 140645 Z values at index 71\nKeys: 60101051 4cba82cb 48eac20c\n33.5 % (47060 \/ 140645)\nFound a solution. Stopping.\nYou may resume the attack with the option: --continue-attack 47060\n&#91;17:53:17] Keys\n60101051 4cba82cb 48eac20c\n\nbkcrack -C 2.zip -c flag.exe -k 60101051 4cba82cb 48eac20c  -U 22.zip 123\nbkcrack 1.8.1 - 2025-10-25\n&#91;17:56:59] Writing unlocked archive 22.zip with password \"123\"\n100.0 % (1 \/ 1)\nWrote unlocked archive.<\/code><\/pre>\n\n\n\n<p>\u6253\u5f00exe\u5f97\u5230flag<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"132\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770112666-\u5c4f\u5e55\u622a\u56fe-2026-02-03-175731.png\" alt=\"\" class=\"wp-image-815\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770112666-\u5c4f\u5e55\u622a\u56fe-2026-02-03-175731.png 982w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770112666-\u5c4f\u5e55\u622a\u56fe-2026-02-03-175731-300x40.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770112666-\u5c4f\u5e55\u622a\u56fe-2026-02-03-175731-768x103.png 768w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u8587\u8587\u5b89\u7684\u7f8e\u7167\">\u8587\u8587\u5b89\u7684\u7f8e\u7167<\/h2>\n\n\n\n<p>\u7ed9\u4e86\u4e2ajpg\u6587\u4ef6\uff0c\u672b\u5c3e\u6709flag\u5b57\u6837<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"449\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770121878-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203028-1024x449.png\" alt=\"\" class=\"wp-image-818\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770121878-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203028-1024x449.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770121878-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203028-300x132.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770121878-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203028-768x337.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770121878-\u5c4f\u5e55\u622a\u56fe-2026-02-03-203028.png 1137w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Base64\u89e3\u7801\u540e\u662f<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1_8_74_20_7_92_16_5_18_8_7<\/code><\/pre>\n\n\n\n<p>\u8fd9\u91cc\u8bd5\u4e86\u5f88\u591a\u6b21\uff0c\u90fd\u4e0d\u5bf9\uff0c\u60f3\u5230\u8fd8\u6709\u89e3\u5bc6\uff0c\u6700\u540e\u624d\u8bd5\u5230\u5316\u5b66\u5143\u7d20\u8fd9\u4e0a\u8fb9\uff0c\u5c06\u6570\u5b57\u8f6c\u5316\u4e3a\u5316\u5b66\u5143\u7d20\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHCTF{H_O_W_CA_N_U_S_B_AR_O_N}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u6ef4\u7b54\u6ef4\u7b54\">\u6ef4\u7b54\u6ef4\u7b54<\/h2>\n\n\n\n<p>\u7ed9\u4e86\u4e2aWav<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"437\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770123932-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210221-1024x437.png\" alt=\"\" class=\"wp-image-824\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770123932-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210221-1024x437.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770123932-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210221-300x128.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770123932-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210221-768x328.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770123932-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210221.png 1476w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u5148\u62ff\u5230\u4e00\u4e2aflag\uff0c\u4f46\u662f\u8fd9\u4e2aflag\u662f\u9519\u7684<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"499\" height=\"417\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770124048-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210723.png\" alt=\"\" class=\"wp-image-825\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770124048-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210723.png 499w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770124048-\u5c4f\u5e55\u622a\u56fe-2026-02-03-210723-300x251.png 300w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><\/figure>\n\n\n\n<p>\u7ee7\u7eed\u5f80\u4e0b\u542c\uff0c\u62ff\u5230flag<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHCTF{Radio_is_just_too_much_fun}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"open-my-puff\">Open my puff<\/h2>\n\n\n\n<p>\u7ed9\u4e86\u4e00\u4e2apng\u548c\u4e00\u4e2atxt<\/p>\n\n\n\n<p>txt\u6587\u4ef6\u91cc\u9762\u5185\u5b58\u6709\u70b9\u5927\uff0c\u4f46\u662f\u80fd\u770b\u89c1\u7684\u5c31\u53ea\u6709\u51e0\u4e2a\u5b57\u7b26<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"466\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130658-\u5c4f\u5e55\u622a\u56fe-2026-02-03-225705-1024x466.png\" alt=\"\" class=\"wp-image-838\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130658-\u5c4f\u5e55\u622a\u56fe-2026-02-03-225705-1024x466.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130658-\u5c4f\u5e55\u622a\u56fe-2026-02-03-225705-300x136.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130658-\u5c4f\u5e55\u622a\u56fe-2026-02-03-225705-768x349.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130658-\u5c4f\u5e55\u622a\u56fe-2026-02-03-225705-1536x699.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130658-\u5c4f\u5e55\u622a\u56fe-2026-02-03-225705-2048x932.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>keyA:12345678 keyB:qwertyui keyC:asdfghjk<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"143\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770128207-\u5c4f\u5e55\u622a\u56fe-2026-02-03-221639-1024x143.png\" alt=\"\" class=\"wp-image-829\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770128207-\u5c4f\u5e55\u622a\u56fe-2026-02-03-221639-1024x143.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770128207-\u5c4f\u5e55\u622a\u56fe-2026-02-03-221639-300x42.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770128207-\u5c4f\u5e55\u622a\u56fe-2026-02-03-221639-768x107.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770128207-\u5c4f\u5e55\u622a\u56fe-2026-02-03-221639.png 1030w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u770b\u5230\u53e6\u5916\u4e00\u4e2apng\u6587\u4ef6\u672b\u5c3e\u7ed3\u5408\u9898\u76ee\u540d\u5b57\uff0c\u76f4\u5230\u7528openpuff<\/p>\n\n\n\n<p>\u7528openpuff\u627e\u5230\u9690\u5199<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"296\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770129771-\u5c4f\u5e55\u622a\u56fe-2026-02-03-224048.png\" alt=\"\" class=\"wp-image-833\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770129771-\u5c4f\u5e55\u622a\u56fe-2026-02-03-224048.png 525w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770129771-\u5c4f\u5e55\u622a\u56fe-2026-02-03-224048-300x169.png 300w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>\u89e3\u51fa\u6765\u4e00\u4e2azip\u6587\u4ef6\uff0c\u91cc\u9762\u6709\u6ca1\u6709\u52a0\u5bc6\u7684flag.txt<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>niimmccw????zfip<\/code><\/pre>\n\n\n\n<p>\u8fd8\u6709\u4e00\u4e2a\u52a0\u5bc6\u7684flag.zip,\u91cc\u9762\u4e5f\u6709\u4e2aflag.txt\u3002\u8fd9\u91cc8\u4e2a\u8fde\u7eed\u5b57\u8282+4\u521a\u597d\u6ee1\u8db3\u660e\u6587\u653b\u51fb\u6761\u4ef6<\/p>\n\n\n\n<p>\u800c\u4e14\u91cc\u9762\u7684zip\u52a0\u5bc6\u7b97\u6cd5\u548c\u538b\u7f29\u65b9\u6cd5\u7b26\u5408\u6761\u4ef6<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"261\" height=\"171\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770131473-\u56fe\u7247.png\" alt=\"\" class=\"wp-image-844\"\/><\/figure>\n\n\n\n<p>\u91cc\u9762\u7684flag.txt:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"232\" height=\"127\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770131587-\u56fe\u7247.png\" alt=\"\" class=\"wp-image-846\"\/><\/figure>\n\n\n\n<p>\u5c1d\u8bd5\u7528\u5916\u5c42flag.txt\u7684\u5185\u5bb9\u8fdb\u884c\u660e\u6587\u653b\u51fb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>6e69696d6d636377\uff08\u504f\u79fb0\uff09<------------niimmccw\n          {\u504f\u79fb12<--------------????}\n7a666970<----------------------------zfip<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>bkcrack -C 1234.zip -c flag.txt  -x 0 6e69696d6d636377  -x 12 7a666970<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"199\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130880-\u5c4f\u5e55\u622a\u56fe-2026-02-03-230120-1024x199.png\" alt=\"\" class=\"wp-image-840\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130880-\u5c4f\u5e55\u622a\u56fe-2026-02-03-230120-1024x199.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130880-\u5c4f\u5e55\u622a\u56fe-2026-02-03-230120-300x58.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130880-\u5c4f\u5e55\u622a\u56fe-2026-02-03-230120-768x149.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130880-\u5c4f\u5e55\u622a\u56fe-2026-02-03-230120-1536x298.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770130880-\u5c4f\u5e55\u622a\u56fe-2026-02-03-230120.png 1807w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>bkcrack -C 1234.zip -c flag.txt -k 4543d810 f89b3d67 531a63b0 -U 111.zip 123<\/code><\/pre>\n\n\n\n<p>\u6253\u5f00txt<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>niimmccwcnsizfip\n\nAll these eyes from the side under blue lights\n\nMaking you confused, I'm selfish, I know\n\nThat now's not the time, I'm sure they wouldn't mind\n\nIf you'd wanna leave and follow me home\n\nthis is flag   :   SHCTF{N3ur4l_Gl1tch_1n_Th3_5yst3m}            <\/code><\/pre>\n\n\n\n<p>\u5f97\u5230flag<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u5947\u602a\u7684\u6570\u636e\">\u5947\u602a\u7684\u6570\u636e<\/h2>\n\n\n\n<p>\u7ed9\u4e86\u4e00\u4e2atxt\uff0c\u91cc\u9762\u90fd\u662f\uff08xx,xx,xx\uff09\u7c7b\u578b\uff0c\uff080\uff0c0\uff0c0\uff09\u548c\uff08255\uff0c255\uff0c255\uff09\uff0c\u611f\u89c9\u50cf\u662f\u50cf\u7d20<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from PIL import Image\nimport math\n\n# ==== 1. \u4fee\u6539\u8fd9\u91cc\uff1a\u8f93\u5165\u6587\u4ef6\u540d ====\ninput_file = \"flag.txt\"  # \u4f60\u7684\u6570\u636e\u6587\u4ef6\u540d\n# =============================\n\n# \u8bfb\u53d6\u6570\u636e\npixels = &#91;]\nwith open(input_file, \"r\", encoding=\"utf-8\") as f:\n    for line_num, line in enumerate(f, 1):\n        if line.strip():\n            # \u79fb\u9664\u672b\u5c3e\u5206\u53f7\uff0c\u5206\u5272\u50cf\u7d20\n            parts = line.strip().rstrip(';').split(';')\n            for part in parts:\n                if part.startswith('('):\n                    try:\n                        r, g, b = map(int, part&#91;1:-1].split(','))\n                        pixels.append((r, g, b))\n                    except:\n                        pass\n\n# \u81ea\u52a8\u8ba1\u7b97\u5c3a\u5bf8\ntotal = len(pixels)\nh = int(math.sqrt(total))\nwhile total % h != 0 and h &gt; 1:\n    h -= 1\nw = total \/\/ h\n\n# \u751f\u6210\u56fe\u7247\nimg = Image.new(\"RGB\", (w, h))\nimg.putdata(pixels&#91;:w*h])\nimg.save(\"output.png\")\n\nprint(f\"\u5b8c\u6210\")\nprint(f\"\u8f93\u5165\u6587\u4ef6: {input_file}\")\nprint(f\"\u50cf\u7d20\u6570\u91cf: {total}\")\nprint(f\"\u56fe\u7247\u5c3a\u5bf8: {w}\u00d7{h}\")\nprint(f\"\u8f93\u51fa\u6587\u4ef6: output.png\")<\/code><\/pre>\n\n\n\n<p>\u5f97\u5230\u4e86\u4e00\u4e2a\u4e8c\u7ef4\u7801<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"170\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175389-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112012-1024x170.png\" alt=\"\" class=\"wp-image-849\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175389-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112012-1024x170.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175389-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112012-300x50.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175389-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112012-768x127.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175389-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112012-1536x255.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175389-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112012.png 1771w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"338\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175404-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112144-1024x338.png\" alt=\"\" class=\"wp-image-850\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175404-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112144-1024x338.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175404-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112144-300x99.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175404-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112144-768x253.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175404-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112144-1536x507.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770175404-\u5c4f\u5e55\u622a\u56fe-2026-02-04-112144.png 1649w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u518d\u7ecf\u8fc7Base64\u89e3\u51faflag<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"base64encryption\">Base64Encryption<\/h2>\n\n\n\n<p>\u9644\u4ef6\u89e3\u538b\u540e\u662f\u8fd9\u51e0\u6837\u4e1c\u897f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Readme.txt<\/code>\uff08\u660e\u6587\uff09<\/li>\n\n\n\n<li><code>Readme.txt.enc<\/code>\uff08\u52a0\u5bc6\u540e\uff09<\/li>\n\n\n\n<li><code>png.png.enc<\/code><\/li>\n\n\n\n<li><code>flag.zip.enc<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u9898\u76ee\u4e00\u53e5\u8bdd\uff1a\u628a Base64 \u7684\u5b57\u7b26\u8868\u6253\u4e71\u4e86\uff0c\u522b\u4eba\u89e3\u4e0d\u5f00\u5c31\u7b97\u201c\u52a0\u5bc6\u201d\u3002<\/p>\n\n\n\n<p id=\"base64encryption\">\u5148\u786e\u8ba4\uff1a<code>.enc<\/code> \u5230\u5e95\u662f\u4ec0\u4e48<\/p>\n\n\n\n<p>\u6253\u5f00 <code>Readme.txt<\/code>\uff0c\u91cc\u9762\u9664\u4e86\u9898\u9762\uff0c\u8fd8\u591a\u4e86\u4e00\u884c 64 \u5b57\u7b26\u7684\u4e32\uff08\u6682\u65f6\u4e0d\u7ba1\u5b83\uff09\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u770b\u6211\u628aBase64\u7684\u5b57\u7b26\u8868\u5168\u90fd\u6253\u4e71\u4e86!\u53ea\u8981\u522b\u4eba\u89e3\u4e0d\u5f00,\u90a3\u5c31\u662f\u52a0\u5bc6?\nb4CYzZ3RWg7pBuTyVmGrxaHhjtQMUqEno5XJscD\/1d892vO+Pfk6NewlFLSKiI0A<\/code><\/pre>\n\n\n\n<p>\u518d\u770b <code>Readme.txt.enc<\/code>\uff0c\u660e\u663e\u662f\u4e00\u4e32\u300c\u770b\u8d77\u6765\u50cf base64\u300d\u7684\u5b57\u7b26\uff0c\u800c\u4e14\u957f\u5ea6\u521a\u597d\u662f 196\uff0c\u6b63\u597d\u5bf9\u5e94 147 \u5b57\u8282\u660e\u6587\u7684 base64 \u957f\u5ea6\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>base64 \u8f93\u51fa\u957f\u5ea6 = <code>4 * ceil(n\/3)<\/code><\/li>\n\n\n\n<li>147 \u5b57\u8282 \u2192 <code>4 * 49 = 196<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u6240\u4ee5\u57fa\u672c\u53ef\u4ee5\u786e\u5b9a\uff1a<code>.enc<\/code> \u5c31\u662f <strong>\u81ea\u5b9a\u4e49\u5b57\u7b26\u8868\u7684 Base64<\/strong>\u3002<\/p>\n\n\n\n<p>Readme.txt<code>\u548c<\/code>Readme.txt.enc \u662f\u4e00\u5bf9\u73b0\u6210\u7684\u300c\u660e\u6587 \u2192 \u52a0\u5bc6\u540e\u300d\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-small-font-size\">\u5148\u7528\u6807\u51c6 base64 \u5bf9 <code>Readme.txt<\/code> \u7f16\u7801\uff0c\u5f97\u5230 <code>std_b64<\/code><\/li>\n\n\n\n<li>\u518d\u628a <code>Readme.txt.enc<\/code> \u5f53\u4f5c <code>custom_b64<\/code><\/li>\n\n\n\n<li>\u9010\u4f4d\u5bf9\u9f50\uff1a<code>std_b64[i] -&gt; custom_b64[i]<\/code>\uff0c\u5c31\u80fd\u5f97\u5230\u5927\u90e8\u5206\u5b57\u7b26\u6620\u5c04<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code># quick_chinese.py\nimport sys\ndef quick_discover():\n    \"\"\"\u5feb\u901f\u53d1\u73b0\u4e2d\u6587\u6587\u4ef6\u7684Base64\u7f16\u7801\u8868\"\"\"\n    \n    with open('readme.txt', 'rb') as f1, open('readme.txt.enc', 'r', encoding='utf-8') as f2:\n        plain = f1.read()  # \u4e8c\u8fdb\u5236\u8bfb\u53d6\n        encoded = f2.read().replace('\\n', '').replace(' ', '').rstrip('=')\n    \n    print(f\"\u660e\u6587: {len(plain)} \u5b57\u8282\")\n    print(f\"\u7f16\u7801: {len(encoded)} \u5b57\u7b26\")\n    \n    # \u8f6c\u6362\u4e3a\u4e8c\u8fdb\u5236\n    binary = ''.join(f'{b:08b}' for b in plain)\n    \n    # \u521d\u59cb\u5316\u8868\n    table = &#91;'?'] * 64\n    \n    # \u5feb\u901f\u5904\u7406\n    for i, char in enumerate(encoded):\n        if i * 6 >= len(binary):\n            break\n        start = i * 6\n        chunk = binary&#91;start:start+6].ljust(6, '0')\n        idx = int(chunk, 2)\n        if idx < 64:\n            table&#91;idx] = char\n    result = ''.join(table)\n    # \u663e\u793a\u7ed3\u679c\n    print(f\"\\n\u53d1\u73b0\u7684\u8868: {result}\")\n    print(f\"\u53d1\u73b0: {64 - result.count('?')}\/64\")\n    # \u4fdd\u5b58\n    with open('table_result.txt', 'w', encoding='utf-8') as f:\n        f.write(result)\n    print(\"\u5df2\u4fdd\u5b58\u5230 table_result.txt\")\n    return result\nif __name__ == \"__main__\":\n    quick_discover()<\/code><\/pre>\n\n\n\n<p>\u8fd9\u4e00\u8f6e\u80fd\u62ff\u5230 59 \u4e2a\u5b57\u7b26\u7684\u6620\u5c04\uff0c\u8fd8\u5dee 5 \u4e2a\u6ca1\u51fa\u73b0\u8fc7<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>?yr8RIkJwCtaTNdBYifW7Zo6UbmqPG9?pSc\/?0hxg52jALDl?enV1+EM4Hv?3Fsu<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770188334-\u5c4f\u5e55\u622a\u56fe-2026-02-04-145736-1024x539.png\" alt=\"\" class=\"wp-image-856\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770188334-\u5c4f\u5e55\u622a\u56fe-2026-02-04-145736-1024x539.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770188334-\u5c4f\u5e55\u622a\u56fe-2026-02-04-145736-300x158.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770188334-\u5c4f\u5e55\u622a\u56fe-2026-02-04-145736-768x404.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770188334-\u5c4f\u5e55\u622a\u56fe-2026-02-04-145736-1536x808.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770188334-\u5c4f\u5e55\u622a\u56fe-2026-02-04-145736.png 1771w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>cyberchef\u91cc\u8bd5\u51fa\u5176\u4e2d\u4e24\u4f4d<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>k1=\"Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9OpSc\/X0hxg52jALDlQenV1+EM4Hvz3Fsu\u201c\nk2=\"Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9OpSc\/z0hxg52jALDlQenV1+EM4HvX3Fsu\u201c\nk3=\"Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9XpSc\/O0hxg52jALDlQenV1+EM4Hvz3Fsu\u201c\nk4=\"Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9XpSc\/z0hxg52jALDlQenV1+EM4HvO3Fsu\u201c\nk5=\"Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9zpSc\/X0hxg52jALDlQenV1+EM4HvO3Fsu\u201c\nk6=\"Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9zpSc\/O0hxg52jALDlQenV1+EM4HvX3Fsu\u201c<\/code><\/pre>\n\n\n\n<p>\u6700\u7ec8\u8bd5\u51fa\u6765\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kyr8RIkJwCtaTNdBYifW7Zo6UbmqPG9zpSc\/O0hxg52jALDlQenV1+EM4HvX3Fsu<\/code><\/pre>\n\n\n\n<p>\u5f97\u5230\u4e86\u4e00\u4e2a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770189005-download4-1024x1024.png\" alt=\"\" class=\"wp-image-857\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770189005-download4-1024x1024.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770189005-download4-300x300.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770189005-download4-150x150.png 150w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770189005-download4-768x768.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770189005-download4.png 1300w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"660\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770197806-\u5c4f\u5e55\u622a\u56fe-2026-02-04-173619-1024x660.png\" alt=\"\" class=\"wp-image-867\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770197806-\u5c4f\u5e55\u622a\u56fe-2026-02-04-173619-1024x660.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770197806-\u5c4f\u5e55\u622a\u56fe-2026-02-04-173619-300x193.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770197806-\u5c4f\u5e55\u622a\u56fe-2026-02-04-173619-768x495.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770197806-\u5c4f\u5e55\u622a\u56fe-2026-02-04-173619.png 1113w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>import numpy as np\nimport cv2\ndef reconstruct_qr_advanced(gray: np.ndarray, N: int, m: int, ox: int = 0, oy: int = 0, margin_ratio: float = 0.35):\n    \"\"\"\n    \u91cd\u5efa\u5e72\u51c0\u7684\u4e8c\u7ef4\u7801 - \u6838\u5fc3\u7b97\u6cd5\n    \u539f\u7406\uff1a\u91c7\u6837\u6bcf\u4e2a\u6a21\u5757\u65f6\u5ffd\u7565\u8fb9\u7f18\uff08\u659c\u7ebf\u5e72\u6270\u533a\uff09\uff0c\u53ea\u7528\u4e2d\u5fc3\u533a\u57df\u6295\u7968\n    \n    Args:\n        gray: \u7070\u5ea6\u56fe\u50cf\n        N: QR\u7801\u6a21\u5757\u6570\uff08\u5982\u7248\u672c10=57\uff09\n        m: \u6bcf\u4e2a\u6a21\u5757\u7684\u50cf\u7d20\u5927\u5c0f\n        ox, oy: \u504f\u79fb\u91cf\u7528\u4e8e\u5bf9\u9f50\u7f51\u683c\n        margin_ratio: \u8fb9\u7f18\u5ffd\u7565\u6bd4\u4f8b\uff08\u5173\u952e\uff010.35\u8868\u793a\u5ffd\u756535%\u8fb9\u7f18\uff09\n    \"\"\"\n    size = N * m\n    sub = gray&#91;oy:oy + size, ox:ox + size]\n    \n    margin = int(m * margin_ratio)\n    mat = np.zeros((N, N), dtype=np.uint8)\n    \n    for r in range(N):\n        for c in range(N):\n            block = sub&#91;r*m:(r+1)*m, c*m:(c+1)*m]\n            # \u5173\u952e\uff1a\u53ea\u53d6\u4e2d\u5fc3\u533a\u57df\uff0c\u5ffd\u7565\u8fb9\u7f18\u7684\u659c\u7ebf\u5e72\u6270\n            core = block&#91;margin:-margin, margin:-margin] if margin > 0 else block\n            if core.size == 0:\n                core = block\n            # \u4e2d\u503c\u6295\u7968\u51b3\u5b9a\u9ed1\u767d\n            mat&#91;r, c] = 0 if np.median(core) < 128 else 255\n    # \u653e\u5927\u5e76\u6dfb\u52a0\u9759\u533a\u4fbf\u4e8e\u626b\u63cf\n    scale = 8\n    img_bin = np.kron(mat, np.ones((scale, scale), dtype=np.uint8))\n    q = 4 * scale\n    out = 255 * np.ones((img_bin.shape&#91;0] + 2*q, img_bin.shape&#91;1] + 2*q), dtype=np.uint8)\n    out&#91;q:-q, q:-q] = img_bin\n    return out\ndef auto_repair_qr(image_path: str):\n    \"\"\"\u81ea\u52a8\u641c\u7d22\u6700\u4f73\u53c2\u6570\u4fee\u590d\u4e8c\u7ef4\u7801\"\"\"\n    img = cv2.imread(image_path, cv2.IMREAD_COLOR)\n    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n    h, w = gray.shape\n    \n    # \u88c1\u526a\u5230\u4e8c\u7ef4\u7801\u533a\u57df\n    det = cv2.QRCodeDetector()\n    ok, pts = det.detect(img)\n    if ok:\n        pts = pts&#91;0].astype(int)\n        x0, y0 = pts&#91;:,0].min()-10, pts&#91;:,1].min()-10\n        x1, y1 = pts&#91;:,0].max()+10, pts&#91;:,1].max()+10\n        gray = gray&#91;y0:y1, x0:x1]\n        h, w = gray.shape\n    \n    # \u66b4\u529b\u641c\u7d22\u7248\u672c\u3001\u504f\u79fb\u3001margin\n    for version in range(1, 41):\n        N = 21 + 4*(version-1)  # \u6a21\u5757\u6570\u516c\u5f0f\n        m = round(h \/ N)\n        if not (4 <= m <= 60):\n            continue\n            \n        size = N * m\n        if size > h or size > w:\n            continue\n            \n        for oy in range(min(5, m\/\/3)):\n            for ox in range(min(5, m\/\/3)):\n                for margin_ratio in &#91;0.15, 0.25, 0.35]:\n                    rebuilt = reconstruct_qr_advanced(gray, N, m, ox, oy, margin_ratio)\n                    data, _, _ = cv2.QRCodeDetector().detectAndDecode(rebuilt)\n                    if data:\n                        return rebuilt, data\n    return None, None\n# \u4f7f\u7528\u793a\u4f8b\nresult, content = auto_repair_qr(\"png.png\")\ncv2.imwrite(\"repaired.png\", result)\nprint(f\"\u4fee\u590d\u6210\u529f: {content}\")  # password: base64_15_n0t_3ncrypt10n<\/code><\/pre>\n\n\n\n<p>\u89e3\u51fa\u6765\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u659c\u7ebf\u5e72\u6270<\/strong>\u662f\u6297\u952f\u9f7f\u4ea7\u751f\u7684\u4e2d\u95f4\u7070\u5ea6\u50cf\u7d20\uff0c\u4f4d\u4e8e\u6a21\u5757\u8fb9\u7f18<\/li>\n\n\n\n<li><strong>\u89e3\u51b3\u65b9\u6848<\/strong>\uff1a\u6bcf\u4e2a\u6a21\u5757\u53ea\u91c7\u6837\u4e2d\u5fc365%\u533a\u57df\uff08<code>margin_ratio=0.35<\/code>\uff09\uff0c\u5b8c\u5168\u907f\u5f00\u8fb9\u7f18\u5e72\u6270<\/li>\n\n\n\n<li><strong>\u6210\u529f\u53c2\u6570<\/strong>\uff1a\u7248\u672c10\uff0857\u00d757\u6a21\u5757\uff09\uff0c\u6a21\u5757\u5927\u5c0f~20px\uff0c\u504f\u79fb(4,1)\uff0c\u5ffd\u756535%\u8fb9\u7f18<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"662\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770203835-\u5c4f\u5e55\u622a\u56fe-2026-02-04-191656.png\" alt=\"\" class=\"wp-image-868\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770203835-\u5c4f\u5e55\u622a\u56fe-2026-02-04-191656.png 659w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770203835-\u5c4f\u5e55\u622a\u56fe-2026-02-04-191656-300x300.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770203835-\u5c4f\u5e55\u622a\u56fe-2026-02-04-191656-150x150.png 150w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/figure>\n\n\n\n<p>\u901a\u8fc7\u4e8c\u7ef4\u7801\u5f97\u5230\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>password: base64_15_n0t_3ncrypt10n<\/code><\/pre>\n\n\n\n<p>\u89e3\u538bzip\uff0c\u91cc\u9762\u7684txt\u518d\u6b21\u89e3\u5bc6<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"449\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770204518-\u5c4f\u5e55\u622a\u56fe-2026-02-04-192814-1024x449.png\" alt=\"\" class=\"wp-image-870\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770204518-\u5c4f\u5e55\u622a\u56fe-2026-02-04-192814-1024x449.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770204518-\u5c4f\u5e55\u622a\u56fe-2026-02-04-192814-300x132.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770204518-\u5c4f\u5e55\u622a\u56fe-2026-02-04-192814-768x337.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770204518-\u5c4f\u5e55\u622a\u56fe-2026-02-04-192814-1536x673.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770204518-\u5c4f\u5e55\u622a\u56fe-2026-02-04-192814.png 1592w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>SHCTF{fbf655a2-0661-4665-ac56-2331ca65e887} <\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u83b7\u53d6-shsolver-\u4e4b\u8def\">\u83b7\u53d6 SHSolver \u4e4b\u8def<\/h2>\n\n\n\n<p>\u9898\u9762\u4e00\u53e5\u8bdd\u63d0\u793a\u201c\u63d0\u5347QQ\u7b49\u7ea7\u201d\uff0c\u800c\u9776\u673a\u8fd4\u56de\u7684\u662f\u4e00\u5f20\u975e\u5e38\u9ad8\u7684 JPG\u3002\u628a\u56fe\u50cf\u7f29\u5c0f\u6216\u65cb\u8f6c\u540e\u80fd\u770b\u5230\u89c4\u5f8b\u6027\u7684\u201cQQ\u7b49\u7ea7\u56fe\u6807\u201d\u9635\u5217\uff08\u7687\u51a0\/\u592a\u9633\/\u6708\u4eae\/\u661f\u661f\uff09\u3002\u8fdb\u4e00\u6b65\u89c2\u5bdf\u53d1\u73b0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6574\u5f20\u56fe\u662f\u4e00\u4e2a\u56fa\u5b9a 9 \u5217\u3001933 \u884c\u7684\u7f51\u683c\u3002<\/li>\n\n\n\n<li>\u6bcf\u4e00\u884c\u7684\u56fe\u6807\u90fd\u9760\u5de6\u8fde\u7eed\u6392\u5217\uff0c\u53f3\u4fa7\u4e3a\u7a7a\u767d\uff0c\u6ca1\u6709\u5939\u6742\u7a7a\u683c\u3002<\/li>\n\n\n\n<li>\u6bcf\u79cd\u56fe\u6807\u5728\u5355\u884c\u91cc\u6700\u591a\u51fa\u73b0 3 \u4e2a\uff0c\u4e14\u201c\u7687\u51a0\u201d\u6700\u591a 1 \u4e2a\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u8fd9\u548c QQ \u7b49\u7ea7\u5c55\u793a\u89c4\u5219\u5b8c\u5168\u4e00\u81f4\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1 \u7687\u51a0 = 4 \u592a\u9633 = 16 \u6708\u4eae = 64 \u661f\u661f\u3002<\/li>\n\n\n\n<li>\u7531\u6b64\u60f3\u5230\u4e86\u6bcf\u4e00\u884c\u53ef\u4ee5\u770b\u4f5c\u662f\u201c\u4ee5 4 \u8fdb\u5236\u8ba1\u6570\u201d\u7684 7-bit ASCII \u503c\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u601d\u8def\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u5b9a\u4f4d\u7f16\u7801\u89c4\u5219<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9898\u9762\u5173\u952e\u8bcd\u201cQQ\u7b49\u7ea7\u201d\u76f4\u63a5\u6307\u5411 QQ \u7b49\u7ea7\u56fe\u6807\u7cfb\u7edf\u3002<\/li>\n\n\n\n<li>\u56fe\u6807\u6570\u91cf\u4e0a\u9650\uff083\u30013\u30013\u30011\uff09\u4e0e QQ \u7b49\u7ea7\u7684\u8fdb\u4f4d\u89c4\u5219\u543b\u5408\u3002<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u56fe\u50cf\u5207\u5206<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e8c\u503c\u5316\u540e\u6309\u884c\u626b\u63cf\uff0c\u627e\u5230\u6240\u6709\u201c\u8fde\u7eed\u6709\u50cf\u7d20\u201d\u7684\u884c\u6bb5\uff0c\u5f97\u5230 933 \u4e2a\u884c\u5757\u3002<\/li>\n\n\n\n<li>\u6309\u5217\u626b\u63cf\uff0c\u5f97\u5230 9 \u4e2a\u5217\u5757\u3002<\/li>\n<\/ul>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u56fe\u6807\u5206\u7c7b<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5bf9\u6bcf\u4e2a\u683c\u5b50\u88c1\u526a\u5e76\u7f29\u653e\u4e3a 16x16 \u4e8c\u503c\u56fe\u3002<\/li>\n\n\n\n<li>\u7528\u6c49\u660e\u8ddd\u79bb\u805a\u7c7b\uff0c\u7a33\u5b9a\u5f97\u5230 4 \u4e2a\u7c7b\u578b\uff08\u5bf9\u5e94 4 \u79cd\u56fe\u6807\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u786e\u5b9a\u56fe\u6807\u987a\u5e8f<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u904d\u5386 4 \u79cd\u56fe\u6807\u7684\u6392\u5217\uff0c\u627e\u5230\u80fd\u8ba9\u6240\u6709\u884c\u90fd\u4fdd\u6301\u201c\u4ece\u9ad8\u5230\u4f4e\u6709\u5e8f\u201d\u7684\u552f\u4e00\u987a\u5e8f\u3002<\/li>\n\n\n\n<li>\u6700\u7ec8\u987a\u5e8f\u4e3a\uff1a\u7687\u51a0 -&gt; \u592a\u9633 -&gt; \u6708\u4eae -&gt; \u661f\u661f\u3002<\/li>\n<\/ul>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li><strong>\u89e3\u7801\u4e0e\u8fd8\u539f<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6bcf\u884c\u8ba1\u6570\uff1a<code>\u7687\u51a0*64 + \u592a\u9633*16 + \u6708\u4eae*4 + \u661f\u661f*1<\/code> \u5f97\u5230 ASCII\u3002<\/li>\n\n\n\n<li>\u6587\u672c\u4e2d\u6709\u4e00\u884c\u63d0\u793a\u201cremove all spaces\u201d\uff0c\u4e0b\u4e00\u884c\u662f\u5e26\u7a7a\u683c\u7684 Base64\u3002<\/li>\n\n\n\n<li>\u53bb\u7a7a\u683c\u540e Base64 \u89e3\u7801\u5f97\u5230\u53cd\u5411\u5b57\u7b26\u4e32\uff0c\u518d\u6574\u4f53\u53cd\u8f6c\u5373\u53ef\u5f97\u5230 flag\u3002<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"689\" height=\"382\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770190071-\u5c4f\u5e55\u622a\u56fe-2026-02-04-152559.png\" alt=\"\" class=\"wp-image-864\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770190071-\u5c4f\u5e55\u622a\u56fe-2026-02-04-152559.png 689w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770190071-\u5c4f\u5e55\u622a\u56fe-2026-02-04-152559-300x166.png 300w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/figure>\n\n\n\n<p>\u4ee3\u7801\u6838\u5fc3\u903b\u8f91\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1. \u4e8c\u503c\u5316\u56fe\u50cf (\u9608\u503c50)                 \n     arr = (img > 50).astype(uint8)                     \n                 \u2502\n                 \u25bc\n2. \u6295\u5f71\u5206\u5272\u627e\u7f51\u683c                       \n     \u884c\u6295\u5f71: arr.sum(axis=1) > 0        \n     \u5217\u6295\u5f71: arr.sum(axis=0) > 0        \n                                             \u2192 \u5f97\u5230 row_runs, col_runs          \n                 \u2502\n                 \u25bc\n3. \u805a\u7c7b\u8bc6\u522b4\u79cd\u7b26\u53f7                      \n     \u6bcf\u4e2a\u5355\u5143\u683c \u2192 \u7f29\u653e\u523016\u00d716 \u2192 \u5c55\u5e73256\u7ef4  \n     \u6c49\u660e\u8ddd\u79bb<30\u5f52\u4e3a\u540c\u7c7b                   \n                                             \u2192 \u5f97\u52304\u7c7b: A,B,C,D                  \n                 \u2502\n                 \u25bc\n4. \u62d3\u6251\u6392\u5e8f\u786e\u5b9a\u6743\u91cd\u987a\u5e8f                  \n     \u679a\u4e3e4!\u79cd\u6392\u5217,\u9a8c\u8bc1\u6bcf\u884c\u7b26\u53f7\u987a\u5e8f\u7ea6\u675f       \n                                             \u2192 \u786e\u5b9a &#91;?, ?, ?, ?] \u5bf9\u5e94 &#91;64,16,4,1] \n                 \u2502\n                 \u25bc\n5. \u6bcf\u884c\u89e3\u7801\u4e3a1\u5b57\u8282                      \n     val = count(A)*64 + count(B)*16      \n           + count(C)*4 + count(D)*1      \n                                             \u2192 bytes(values) \u2192 \u6587\u672c               \n                 \u2502\n                 \u25bc\n6. \u63d0\u53d6Base64\u5e76\u53cd\u8f6c                     \n     \u627e\"gift\"\u884c\u7684\u4e0b\u4e00\u884c \u2192 \u53bb\u7a7a\u683c \u2192 b64decode \n                                              \u2192 \u7ed3\u679c\u5b57\u7b26\u4e32\u53cd\u8f6c = flag              \n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>import base64\nimport itertools\nfrom pathlib import Path\n\nimport numpy as np\nimport requests\nfrom PIL import Image\n\n# Leave BASE_URL empty to avoid leaking target info.\n# You can fill it manually (domain:port, no scheme) or place the image as work\/challenge.jpg.\nBASE_URL = \"\"\n\nOUT_DIR = Path(__file__).resolve().parent\nIMG_PATH = OUT_DIR \/ \"challenge.jpg\"\nTHRESH = 50\nCLUSTER_DIST = 30\nGRID_SIZE = (16, 16)\n\n\ndef _get_runs(mask):\n    runs = &#91;]\n    start = None\n    for i, v in enumerate(mask):\n        if v and start is None:\n            start = i\n        elif not v and start is not None:\n            runs.append((start, i - 1))\n            start = None\n    if start is not None:\n        runs.append((start, len(mask) - 1))\n    return runs\n\n\ndef _load_image():\n    if BASE_URL:\n        url = BASE_URL.strip()\n        if not url.startswith((\"http:\/\/\", \"https:\/\/\")):\n            url = \"http:\/\/\" + url\n        r = requests.get(url, timeout=20)\n        r.raise_for_status()\n        IMG_PATH.write_bytes(r.content)\n    if not IMG_PATH.exists():\n        raise SystemExit(\"No image found. Fill BASE_URL or put challenge.jpg in work\/\")\n    return Image.open(IMG_PATH).convert(\"L\")\n\n\ndef _cluster_cells(arr, row_runs, col_runs):\n    reps = &#91;]\n    items = &#91;]\n    for li, (rs, re) in enumerate(row_runs):\n        for ci, (cs, ce) in enumerate(col_runs):\n            cell = arr&#91;rs : re + 1, cs : ce + 1]\n            if cell.sum() &lt; 10:\n                continue\n            im = Image.fromarray((cell * 255).astype(np.uint8)).resize(GRID_SIZE, Image.NEAREST)\n            data = (np.array(im) &gt; 0).astype(np.uint8).flatten()\n            if not reps:\n                reps.append(data)\n                items.append(&#91;(li, ci)])\n                continue\n            dists = &#91;np.count_nonzero(data != r) for r in reps]\n            m = min(dists)\n            if m &lt;= CLUSTER_DIST:\n                idx = dists.index(m)\n                items&#91;idx].append((li, ci))\n            else:\n                reps.append(data)\n                items.append(&#91;(li, ci)])\n    return reps, items\n\ndef _infer_order(row_strings, labels):\n    for perm in itertools.permutations(labels):\n        rank = {c: i for i, c in enumerate(perm)}\n        ok = True\n        for s in row_strings:\n            if not s:\n                continue\n            prev = -1\n            for ch in s:\n                r = rank&#91;ch]\n                if prev != -1 and r &lt; prev:\n                    ok = False\n                    break\n                prev = r\n            if not ok:\n                break\n        if ok:\n            return perm\n    return None\n\ndef main():\n    img = _load_image()\n    arr = (np.array(img) &gt; THRESH).astype(np.uint8)\n    row_runs = _get_runs(arr.sum(axis=1) ; 0)\n    col_runs = _get_runs(arr.sum(axis=0) ; 0)\n\n    reps, items = _cluster_cells(arr, row_runs, col_runs)\n    if len(reps) != 4:\n        raise SystemExit(f\"Expected 4 icon types, got {len(reps)}\")\n    order = sorted(range(len(reps)), key=lambda i: len(items&#91;i]), reverse=True)\n    labels = &#91;\"A\", \"B\", \"C\", \"D\"]\n    pos2type = {}\n    for t, ri in enumerate(order):\n        for pos in items&#91;ri]:\n            pos2type&#91;pos] = labels&#91;t]\n    row_strings = &#91;\n        \"\".join(pos2type.get((li, ci), \".\") for ci in range(len(col_runs))).rstrip(\".\")\n        for li in range(len(row_runs))\n    ]\n\n    # Find the left-to-right order of symbols in each row.\n    sym_order = _infer_order(row_strings, labels)\n    if not sym_order:\n        raise SystemExit(\"Failed to infer symbol order\")\n\n    weights = &#91;64, 16, 4, 1]\n    weight_map = {sym_order&#91;i]: weights&#91;i] for i in range(4)}\n\n    values = &#91;]\n    for s in row_strings:\n        val = 0\n        for sym in labels:\n            val += s.count(sym) * weight_map&#91;sym]\n        values.append(val)\n    text = bytes(values).decode(\"latin1\")\n    lines = text.splitlines()\n    b64_line = None\n    for i, line in enumerate(lines):\n        if \"gift\" in line and i + 1 &lt; len(lines):\n            b64_line = lines&#91;i + 1]\n            break\n    if not b64_line:\n        raise SystemExit(\"Failed to locate base64 line\")\n    b64 = b64_line.replace(\" \", \"\")\n    raw = base64.b64decode(b64)\n    flag = raw.decode()&#91;::-1]\n    print(flag)\n\n\nif __name__ == \"__main__\":\n    main()<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u9636\u6bb53-\u73cd\u8d35\u7684signature\">[\u9636\u6bb53] \u73cd\u8d35\u7684Signature<\/h2>\n\n\n\n<p>\u7ed9\u4e86\u4e2adoc\uff0c\u6253\u4e0d\u5f00<\/p>\n\n\n\n<p>\u540e\u7f00\u540d\u6539\u4e3azip\uff0c\u53d1\u73b0\u662f\u4f2a\u52a0\u5bc6\uff0c\u6253\u5f00word\/_rels\/doc<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637437-\u5c4f\u5e55\u622a\u56fe-2026-02-09-193954-1024x574.png\" alt=\"\" class=\"wp-image-948\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637437-\u5c4f\u5e55\u622a\u56fe-2026-02-09-193954-1024x574.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637437-\u5c4f\u5e55\u622a\u56fe-2026-02-09-193954-300x168.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637437-\u5c4f\u5e55\u622a\u56fe-2026-02-09-193954-768x430.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637437-\u5c4f\u5e55\u622a\u56fe-2026-02-09-193954-1536x860.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637437-\u5c4f\u5e55\u622a\u56fe-2026-02-09-193954.png 1603w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"226\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637444-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194022-1024x226.png\" alt=\"\" class=\"wp-image-949\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637444-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194022-1024x226.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637444-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194022-300x66.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637444-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194022-768x169.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637444-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194022-1536x339.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637444-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194022.png 1886w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Base64\u89e3\u5bc6\uff1a\u5f97\u5230\u4e00\u4e2abmp<\/p>\n\n\n\n<p>\u53d1\u73b0\u6709\u5355\u56fe\u76f2\u6c34\u5370<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637449-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194203-1024x564.png\" alt=\"\" class=\"wp-image-950\" srcset=\"http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637449-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194203-1024x564.png 1024w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637449-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194203-300x165.png 300w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637449-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194203-768x423.png 768w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637449-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194203-1536x845.png 1536w, http:\/\/shr1mp.top\/wp-content\/uploads\/2026\/02\/1770637449-\u5c4f\u5e55\u622a\u56fe-2026-02-09-194203.png 1866w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>U0hDVEZ7N2hhbmtfeTB1X2Ywcl9sMWsxbmdfTHNjY2N9<\/code><\/pre>\n\n\n\n<p>base64\u89e3\u7801:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHCTF{7hank_y0u_f0r_l1k1ng_Lsccc}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u7b7e\u5230 \u7565\uff0c\u626b\u4e8c\u7ef4\u7801\u5173\u6ce8\u516c\u4f17\u53f7 \u4e0d\u6b62\u4e8c\u7ef4\u7801 \u62ff\u5230\u4e00\u5f20\u4e8c\u7ef4\u7801\uff0c\u626b\u8fdb\u53bb\u540e\u6ca1\u5565\u5185\u5bb9\uff08\u4f46\u662f\u901a\u8fc7pz\u53d1\u73b0\u662fLSB\u9690\u5199\uff09 \u62ff\u5230stegsolve &#8230;<\/p>\n","protected":false},"author":1,"featured_media":995,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":"","emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[9],"tags":[],"class_list":["post-795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-misc"],"_links":{"self":[{"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/posts\/795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/comments?post=795"}],"version-history":[{"count":53,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/posts\/795\/revisions"}],"predecessor-version":[{"id":958,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/posts\/795\/revisions\/958"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/media\/995"}],"wp:attachment":[{"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/media?parent=795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/categories?post=795"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/shr1mp.top\/index.php\/wp-json\/wp\/v2\/tags?post=795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}