from flag import*
length =len(flag)
arr =[]
enc =[238,257,150,137,167,169,184,193,210,147,219,128,140,135,185,242,204,128,132,159,222,173,226,159,207,169,154,156,216,139,168,187,220,237,207,187,218,138,218,178,246,239,246,241]for i inrange(length):arr.append(ord(flag[i]))for i inrange(0,16):for j inrange(0, length):arr[j]+= enc[j]enc[j]+= enc[j]enc = enc[::-1]print(arr)
直接寫逆腳本即可得到flag
res=[15728448,16362025,13718731,13740602,11425044,13216326,10048823,13740603,12757531,12255100,15138636,12408061,11228430,10289095,10114289,14723575,11272070,9524519,10267251,12517282,11796345,13653174,12495389,13172636,11468724,9458930,8956506,12320680,15291551,11119205,9568155,10201663,10398270,14745427,10944395,13260012,13194479,11053619,12145871,11184688,11359448,11774503,16602251,15662990]
enc=[238,257,150,137,167,169,184,193,210,147,219,128,140,135,185,242,204,128,132,159,222,173,226,159,207,169,154,156,216,139,168,187,220,237,207,187,218,138,218,178,246,239,246,241]for i inrange(0,16):for j inrange(0,len(res)):res[j]-=enc[j]enc[j]+=enc[j]enc=enc[::-1]print("".join(chr(i)for i in res))# 0xGame{b373edd6-2cea-11ec-8d3d-0242ac130003}
res=[21,44,45,104,31,30,26,121,65,125,23,112,77,46,47,126,89,112,7,109,7,88,10,105,104,59,54,91,83,98,32,54,15,65,113,119,113]
res=res[::-1]
flag=[]for i inrange(0,len(res)-3):flag.append(res[i]^res[i+3])print("".join(chr(i)for i in flag))# 0xGame{Th3_10ng_w4y_w3_901ng_fr33}
enc=[0x91,0x77,0xfb,0xe,0xb7,0xcc,0xe4,0x38,0x11,0x94,0xfd,0x85,0x5c,0x91,0x84,0x5c,0x7d,0x67,0x27,0x134,0x135,0xa,0xd8,0x23,0xd,0x30,0x65,0x3e,0x13,0x45,0x54,0x52,0x51,0x3e,0xb0,0xd9,0x13,0x33,0xc3,0xff]
check=[0xa1,0xf,0xbc,0x6f,0xda,0xa9,0x9f,0x5e,0x29,0xf6,0xc5,0xe4,0x6e,0xf2,0xb1,0x38,0x1b,0x1,0x11,0x100,0x100,0x32,0xe9,0x41,0x68,0x2,0x4,0x6,0x2a,0x70,0x37,0x6b,0x30,0x5d,0x82,0xe8,0x25,0x57,0xf2,0x82]
flag=[0]*len(enc)for i inrange(len(flag)):for j inrange(48,128):if check[i]&~j | j &~check[i]==enc[i]:flag[i]=jbreakprint("".join(chr(i)for i in flag))# 0xGame{f8b8a2c5dff64581be2a895c9ac216d1}
#include<stdio.h>#include<stdlib.h>intmain(){srand(8225);unsigned __int8 rand_num;for(int i =0; i <40; i++){rand_num =rand();printf("%d,", rand_num);}return0;}//18,178,64,120,149,158,83,249,40,227,205,240,83,117,33,22,186,246,183,68,161,45,143,136,175,180,40,120,242,240,160,198,36,70,28,21,45,140,106,11
寫enc數(shù)據(jù)與隨機數(shù)異或腳本即可得到flag
arr=[0x22,0xCA,0x07,0x19,0xF8,0xFB,0x28,0x9D,0x1E,0x80,0xAC,0xC9,0x60,0x46,0x18,0x21,0xDF,0x95,0xD5,0x70,0xC5,0x19,0xEA,0xB0,0x9C,0x83,0x11,0x4A,0x93,0xC7,0x91,0xF6,0x14,0x71,0x2F,0x22,0x14,0xBF,0x58,0x76]
rand_num=[18,178,64,120,149,158,83,249,40,227,205,240,83,117,33,22,186,246,183,68,161,45,143,136,175,180,40,120,242,240,160,198,36,70,28,21,45,140,106,11]for i inrange(len(arr)):arr[i]^=rand_num[i]print("".join(chr(i)for i in arr))# 0xGame{d6ca93397ecb4d4e83792a7100737932}
enc=[0xcc,0x84,0x43,0xdd,0x59,0x61,0x87,0x35,0x99,0x32,0x36,0xc9,0x98,0x30,0x9f,0xcc,0xc8,0x62,0x99,0x30,0xc8,0x9a,0xc5,0x9e,0x32,0xc4,0xc8,0x60,0x3d,0x35,0x3d,0xcb,0x34,0x3c,0x9f,0x65,0x65,0x33,0x66,0x79]
v3_=[0xfc,0xfc,0x04,0xbc,0x34,0x04,0xfc,0x04,0xfc,0x04,0x04,0xfc,0xfc,0x04,0xfc,0xfc,0xfc,0x04,0xfc,0x04,0xfc,0xfc,0xfc,0xfc,0x04,0xfc,0xfc,0x04,0x04,0x04,0x04,0xfc,0x04,0x04,0xfc,0x04,0x04,0x04,0x04,0x04]#idx=[0x9,0xf,0xc,0x3,0x2,0x10,0xb,0xe,0x7,0xa,0x2e,0x2d,0x2b,0x2e,0x2f,0x2d,0x2f,0x28,0x31,0x3a,0x31,0x33,0x33,0x2b,0x32,0x37,0x37,0x38,0x3c,0x30,0xffffffce,0xffffff93,0xffffffd8,0xfffffff2,0xffffffdf,0xffffff70,0xffffff72,0xffffffd0,0xffffffa6,0xffffff9a]
flag=[]for i inrange(len(v3_)):flag.append(enc[i]^v3_[i])print("".join(chr(i)for i in flag))# 0xGame{1e625d4c04fe44f9b684d919708caa7b}
enc=[0x30,0x78,0x47,0x61,0x6D,0x65,0x7B,0x5F,0x5F,0x5B,0x1F,0x1C,0x36,0x25,0x35,0x51,0x5D,0x19,0x74,0x34,0x34,0x19,0x14,0x2D,0x76,0x30,0x64,0x1F,0x1C,0x65,0x7F,0x68,0x51,0x0A,0x1A,0x33,0x69,0x7F,0x19,0x44,0x6C,0x1A,0x34,0x7D]
v2=[0xC,0x2C,0x43,0x55,0x11,0x5B,0xE,0x33,0x2A,0x2,0x7,0x46,0x46,0x22,0x1E,0x29,0x7]for i inrange(0,16+1):enc[i+9]^=v2[i]enc[i+26]^=v2[i]print("".join(chr(i)for i in enc))# 0xGame{__W3_c4n_n3v3r_63_7h3_0n3_901n9_fr33}
# coding:utf-8 -*-#s,任意字符串作為輸入
s="abcdefghijklmnopqrstuvwxyz0123456"
arr=[ord(c)for c in s]for i inrange(len(arr)-1):arr[i]^=arr[i+1]#arr_res,s經(jīng)程序RC4后的密文
arr_res=[0x82,0x40,0xB8,0x16,0x84,0x6F,0xAE,0x19,0x77,0x2C,0x0E,0x6C,0x9D,0xA0,0xE9,0x1E,0x2F,0xE8,0x2D,0x52,0x32,0x8F,0x17,0xBA,0xB2,0x71,0x8E,0x83,0x6F,0xB1,0x37,0x53,0x0A]#xor_num,s在程序RC4過程中去異或的那些值
xor_num=[]for i inrange(len(arr)):xor_num.append(arr[i]^arr_res[i])#enc,真正的密文
enc=[0xC9,0x7E,0x99,0x1B,0x8F,0x70,0xAE,0x04,0x2D,0x6F,0x25,0x03,0xDC,0x8D,0xC8,0x21,0x40,0xEE,0x6D,0x59,0x17,0xA5,0x00,0xA4,0x9D,0x16,0xCC,0xD6,0x61,0xAA,0x7D,0x12,0x41]#解密RC4for i inrange(len(enc)):enc[i]^=xor_num[i]#main函數(shù)中的異或的逆運算for i inrange(len(enc)-2,-1,-1):enc[i]^=enc[i+1]print("".join(chr(i)for i in enc))# 0xGame{th1s_1s_a_34sy_tls_r1ght?}
import base64
enc=[0x86,0x05,0xE4,0x96,0x77,0x94,0x44,0x86,0x76,0x16,0x75,0x13,0xD4,0x74,0x55,0x77,0x77,0xA4,0x44,0x24,0x87,0x64,0x65,0x14,0x15,0xA4,0x74,0x25,0x65,0x85,0x85,0x77,0x15,0x36,0x15,0x65,0xB6,0xA4,0x44,0x25,0xF6,0x45,0x24,0x14,0xE4,0x16,0x75,0x13,0xA5,0x15,0x65,0x15,0x55,0x84,0x55,0x64,0x43,0x46,0x36,0xD3]for i inrange(len(enc)):enc[i]=((enc[i]&0x0f)<<4)|((enc[i]&0xf0)>>4)
s="".join(chr(i)for i in enc)
s=base64.b64decode(s)
arr=[ord(c)for c in s]for i inrange(len(arr)-2,-1,-1):arr[i]^=arr[i+1]for i inrange(len(arr)):arr[i]=((arr[i]&0x0f)<<4)|((arr[i]&0xf0)>>4)
flag="".join(chr(i)for i in arr)print(flag)# 0xGame{c9ba7481-a404-4a69-a090-740c9b4dad3c}