MoeCTF 2021Re部分------大佬请喝咖啡,A_game
生活随笔
收集整理的這篇文章主要介紹了
MoeCTF 2021Re部分------大佬请喝咖啡,A_game
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 大佬請喝咖啡
- 反編譯
- 解釋\u:
- z3解碼
- A_game
- 數獨題:
- 這里判斷行數據是1~9:
- 這里判斷列數據是1~9:
- 9*9數獨陣分為9個3*3方陣,每個方陣數據1~9
- 進行異或magic
- 腳本
- 在線數獨求解器
大佬請喝咖啡
反編譯
解釋\u:
就是一個數字編碼,只不過它是兩個字節,所以需要使用Unicode編碼,ascii碼只有一字節,沒辦法大于256(官方是128),所以這里的話,只需要把\u換成0x,即可和字符進行相乘
z3解碼
from z3 import * s=Solver() charArray=[Int('a1[' + str(i) + ']') for i in range(9)] for i in range(9):s.add(charArray[0] *4778 + charArray[1] * 3659 + charArray[2] * 9011 + charArray[3] * 5734 + charArray[4] * 4076 + charArray[5] * 6812 + charArray[6] * 8341 + charArray[7] * 6765 + charArray[8] * 7435 == 5711942)s.add(charArray[0] * 4449+ charArray[1] * 5454 + charArray[2] * 4459 + charArray[3] * 5800 + charArray[4] * 6685 + charArray[5] * 6120 + charArray[6] * 7357 + charArray[7] * 3561 + charArray[8] * 5199 == 4885863)s.add(charArray[0] * 3188 + charArray[1] * 6278 + charArray[2] * 9411 + charArray[3] * 5760 + charArray[4] * 9909 + charArray[5] * 7618 + charArray[6] * 7184 + charArray[7] * 4791 + charArray[8] * 0x21ee == 6387690)s.add(charArray[0] * 0x227b + charArray[1] * 0x1cfb + charArray[2] * 0x1b79 + charArray[3] * 0x245a + charArray[4] * 0x1c84 + charArray[5] * 0x168e + charArray[6] * 0x19bc + charArray[7] * 0x15a5 + charArray[8] * 0x1214 == 6077067)s.add(charArray[0] * 0x164b + charArray[1] * 0x16a1 + charArray[2] * 0x11ed + charArray[3] * 0x1a17 + charArray[4] * 0xf84 + charArray[5] * 0x16f4 + charArray[6] * 0x1a0c + charArray[7] * 0x173f + charArray[8] * 0x2561 == 5492294)s.add(charArray[0] * 0x25d5 + charArray[1] * 0x1cca + charArray[2] * 0x1228 + charArray[3] * 0x1c3e + charArray[4] * 0x258e + charArray[5] * 0x26fb + charArray[6] * 0x2075 + charArray[7] *0x259f + charArray[8] * 0x2438 == 7562511)s.add(charArray[0] * 0x1b2b + charArray[1] * 0x2177 + charArray[2] * 0x1f0d + charArray[3] * 0x21fb + charArray[4] * 0xcd4 + charArray[5] * 0x19f7 + charArray[6] * 0x0c67 + charArray[7] * 0x213a + charArray[8] * 0x1998 == 5970432)s.add(charArray[0] * 0x10e3 + charArray[1] * 0x1262 + charArray[2] * 0x1f91 + charArray[3] * 0x1edc + charArray[4] * 0x12fe + charArray[5] * 0x2548 + charArray[6] * 0x145b + charArray[7] * 0x1d13 + charArray[8] * 0x162c == 5834523)s.add(charArray[0] * 0x0bce + charArray[1] * 0x2327 + charArray[2] * 0x13c2 + charArray[3] * 0x11b1 + charArray[4] * 0xf64 + charArray[5] * 0x10b7 + charArray[6] * 0x11fe + charArray[7] * 0xd64 + charArray[8] * 0x22b9 == 4681110) if s.check()==sat:print() print(s.model()) moectf{EXcalibur}A_game
數獨題:
輸入的東西進行數獨陣填充:
unsigned char box[] = {0, 0, 5, 0, 0, 4, 3, 6, 0,0, 0, 0, 0, 5, 0, 0, 2, 4,0, 4, 9, 6, 7, 0, 0, 0, 0,1, 0, 6, 0, 2, 0, 0, 3, 0,9, 0, 0, 7, 0, 0, 1, 0, 8,0, 3, 0, 0, 0, 5, 0, 9, 0,2, 0, 0, 5, 0, 7, 0, 0, 9,7, 0, 4, 0, 0, 0, 8, 0, 00, 9, 0, 0, 4, 0, 0, 0, 6, }主要是三個函數:
這里判斷行數據是1~9:
for ( i = 0; i <= 8; ++i ){for ( j = 1; j <= 9; ++j ){for ( k = 0; ; ++k ){result = (unsigned int)(char)box[9 * i + k];// 這里判斷行數據是1~9if ( j == (_DWORD)result )break;if ( k == 8 ){printf("Wrong!!!Try again!!!");system("pause");exit(0);}}}}這里判斷列數據是1~9:
for ( i = 0; i <= 8; ++i ){for ( j = 1; j <= 9; ++j ){for ( k = 0; ; ++k ){result = (unsigned int)(char)box[9 * k + i];// 判斷列數據是1~9if ( j == (_DWORD)result )break;if ( k == 8 ){printf("Wrong!!!Try again!!!");system("pause");exit(0);}}}}return result; }99數獨陣分為9個33方陣,每個方陣數據1~9
for ( i = 0; i <= 8; i += 3 ){for ( j = 0; j <= 8; j += 3 ){for ( k = 1; k <= 9; ++k ){v5 = 0;v4 = 0;while ( 1 ){result = (unsigned int)(char)box[9 * i + 9 * v5 + j + v4];// i代表行 j代表列if ( k == (_DWORD)result )break;if ( v5 == 2 && v4 == 2 ){printf("Wrong!!!Try again!!!");system("pause");exit(0);}if ( ++v4 == 3 ){++v5;v4 = 0;}}}}}進行異或magic
腳本
在線數獨求解器
本人所做第一道數獨題
a=b'8291767138932581849755263447186268341129653538127' magic =[107,2,102,112,68,105,126,110,67,74,120,74,109,96,86,0,81,89,80,67,80,81,109,116,2,85,80,82,110,111,121,64,93,75,30,25,28,116,3,84,7,76,82,106,96,80,88,64,88,]for i in range(len(a)):print(chr(a[i]^magic[i]),end='') moectf{S0_As_I_prAy_Un1imited_B1ade_WOrks---E1m1ya_Shiro}總結
以上是生活随笔為你收集整理的MoeCTF 2021Re部分------大佬请喝咖啡,A_game的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Re题目------Enm.exe
- 下一篇: 鹤城Re题目