flag1
打开文件提取zip,修复magic头
解压密码根据提示(Pay attention to the FileName.),输入Congratulations,获得flag1.png 二维码图片,扫描得到flag1
flag1{dX3$aK2$}
flag2
利用https://github.com/EricZimmerman/AmcacheParser
解析数据,查找flag2.exe
sha1 279446fe308f25cf1b3b84746b5a68bbb3e1445d
2024/11/9 2024/11/9
Unassociated 0006abdbc9d7fa5379ddaaf9477b7af75a770000ffff 279446fe308f25cf1b3b84746b5a68bbb3e1445d FALSE c:\flag2\flag2.exe flag2.exe .exe 124262 flag2.exe|b20d0ab4a00579aa pe64_amd64 FALSE 295852712 0
9:02 1:20
flag3
flag3{qJ2sO7sC}
x64dbg 调试直接修改cmp_1400112D5 返回值可得
__int64 main_140018B50()
{
// [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
v0 = &v11;
for ( i = 0x4Ai64; i; --i )
{
*(_DWORD *)v0 = 0xCCCCCCCC;
v0 += 4;
}
sub_14001170D((__int64)&unk_14002E072);
str_140011316((__int64)v12, (__int64)"guest");
if ( (unsigned __int8)cmp_1400112D5((__int64)v12, (__int64)"guest") )
{
// 您当前的身份为: guest,没有权限查看flag
v2 = sub_1400110E1(std::cout, (__int64)"您当前的身份为: guest,没有权限查看flag");
std::ostream::operator<<(v2, sub_140011055);
}
else if ( (unsigned __int8)cmp_1400112D5((__int64)v12, (__int64)"admin") )
{
str_140011316((__int64)a2, (__int64)"fXrbf083f0P=");
// 凯撒??
dec_140011122((__int64)a1, (__int64)a2, -3u);
base64_dec_14001119A(v15, a1);
v3 = sub_1400110E1(std::cout, (__int64)"flag3{");
v4 = sub_140011654(v3, v15);
v5 = sub_1400110E1(v4, (__int64)"}");
std::ostream::operator<<(v5, sub_140011055);
sub_14001115E((__int64)v15);
sub_14001115E((__int64)a1);
sub_14001115E((__int64)a2);
}
else
{
v6 = sub_1400110E1(std::cout, (__int64)"未知用户身份");
std::ostream::operator<<(v6, sub_140011055);
}
v7 = sub_1400110E1(std::cout, (__int64)"按任意键退出...");
std::ostream::operator<<(v7, sub_140011055);
getch();
v16 = 0;
sub_14001115E((__int64)v12);
v8 = v16;
sub_1400115CD((__int64)v10, (__int64)&unk_140025070);
return v8;
}
py
def get_flag3():
# qJ2sO7sC
input_str='fXrbf083f0P='
offset=-3
result = []
for char in input_str:
if char.isalpha(): # 检查是否为字母
if char.islower(): # 小写字母
base = ord('a')
else: # 大写字母
base = ord('A')
# 计算偏移后的字符
new_char = chr(base + (ord(char) - base + offset) % 26)
result.append(new_char)
else:
# 非字母字符直接保留
result.append(char)
ret=''.join(result)
ret=base64.b64decode(ret.encode()).decode()
ret='flag3{'+ret+'}'
print(ret)
return ret
flag4
zig程序
>backpack.exe
Enter flag: iidd~hq^spd`n\lpb^b_d`nmd`nz
Congratulations! You got the correct flag~
__int16 __fastcall sub_401000(__int64 *a1)
{
// [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
sub_401400(&v8);
v9 = v8;
sub_401430(&v10, &v9);
v11 = v10;
memset(v12, 0xAA, sizeof(v12));
p_Enter_flag_401440();
v13 = v11;
v14 = v12;
v15 = 0x100i64;
v16 = 0xA;
v17[0] = v11;
v17[1] = (__int64)v17;
v19 = v17;
*(_QWORD *)&v18 = v17;
*((_QWORD *)&v18 + 1) = sub_401650;
v20 = v18;
v6 = *a1;
sub_401730(&v21, a1, &v20, (__int64)v12, 0x100ui64, 0xA);
*a1 = v6;
if ( v23 != 0 && (unsigned __int16)(v23 - 1) > 0xCu )
sub_4019A0("invalid error code", 0x12i64, 0i64, &unk_480698);
if ( v23 )
{
v5 = v23;
sub_401A20(a1);
return v5;
}
else
{
if ( !v21 )
{
p_Invalid_input_402850();
return 0;
}
v24 = v21;
v25 = v22;
v27 = v22;
v26 = v21;
input = x_read_401B00(v21, v22, (__int64)"\r\n", 2i64);
v29 = v2; // 输入的长度
v28 = input;
if ( v2 == 28 )
{
sub_47E1E0(v30, byte_4806B0, 216ui64);
// 27*8=216
sub_401ED0(input, 28ui64, (__int64)table_480788, 0x10ui64, (__int64)v30, 27ui64);
v31 = 1;
for ( i = 0i64; i < 27; ++i )
{
v33 = i;
v3 = target_4805A8;
if ( v30[i] != target_4805A8[i] )
{
// 失败
v31 = 0;
break;
}
}
if ( (v31 & 1) != 0 )
// Congratulations! You got the correct flag~\n
p_Congratulations_402430((const char *)v3);
else
// Try again
p_Try_again_402640();
return 0;
}
// Flag must be 28 characters long\n
p_Flag_must_be_28_characters_long_401CC0();
return 0;
}
}
unsigned __int64 __fastcall sub_401ED0(
__int64 a1,
unsigned __int64 a2,
__int64 *a3,
unsigned __int64 a4,
__int64 *a5,
unsigned __int64 a6)
{
// [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
sub_47D7F0(v22, 0xAAi64, 0x1CBi64);
for ( i = 0i64; ; i = v17 + 1 )
{
v17 = i;
if ( i >= 0x1B )
break;
v24 = i;
sub_47D7F0(v22[i], 0i64, 0x11i64);
}
for ( j = 0i64; ; j = v16 + 1 )
{
// 2个字符1组,相加转成bit字符串
// 每次移动1位,所以会产生27项
v16 = j;
if ( j >= 27 )
break;
v26 = j;
if ( j >= a2 )
sub_4023F0(j, a2);
v14 = *(_BYTE *)(a1 + j);
v15 = j + 1;
if ( j + 1 >= a2 )
sub_4023F0(v15, a2);
v6 = *(_BYTE *)(a1 + v15);
v27 = *(_BYTE *)(a1 + j);
v28 = v6;
if ( __CFADD__(v6, v14) )
sub_4019A0("integer overflow", 0x10i64, 0i64, &unk_4808C8);
v29 = v6 + v14;
for ( k = 0i64; ; k = v13 + 1 )
{
v13 = k;
if ( k >= 0x10 )
break;
v31 = k;
if ( v16 >= 0x1B )
sub_4023F0(v16, 0x1Bi64);
v12 = 0xF - k;
if ( 0xF - k >= 0x11 )
sub_4023F0(v12, 0x11i64);
if ( (v29 & 1) == 1 )
v11 = '1';
else
v11 = '0';
v22[v16][v12] = v11;
v29 >>= 1;
}
}
for ( m = 0i64; ; m = v10 + 1 )
{
result = m;
v10 = m;
if ( m >= 0x1B )
break;
v33 = m;
v34 = 0i64;
for ( n = 0i64; n < 0x10; ++n )
{
v36 = n;
if ( v22[m][n] == '1' )
{
// bit 为1的位,对照a3 table 进行求和
// 注意字节序
v9 = v34;
v37 = v34;
if ( n >= a4 )
sub_4023F0(n, a4);
v8 = a3[n] + v34;
if ( __CFADD__(a3[n], v34) )
sub_4019A0("integer overflow", 0x10i64, 0i64, &unk_4808C8);
v34 += a3[n];
if ( v8 < v9 )
{
sub_403F30();
sub_404140(1i64);
}
}
}
v38 = a5;
v39 = a6;
if ( m >= a6 )
sub_4023F0(m, a6);
// 结果保存到a5
a5[m] = v34;
}
return result;
}
py
def get_flag4():
flag4 = r"iidd~hq^spd`n\lpb^b_d`nmd`nz" # 输入字符串,长度为 28
table_480788 = [
391141429, 3478124220, 3336047727, 3527421942, 1597786510,
2019990264, 2744862007, 3898825252, 486177504, 184886860,
781690097, 63429722, 1180618910, 1947105626, 1555881410, 2578824499
] # 权重数组
target_4805A8 = [
2290375496, 6377613399, 1851683274, 3008635871, 4955741497,
4493937495, 7933494809, 3313318585, 5587460370, 2681599712,
2618169990, 5354670310, 3407564684, 1851683274, 3862218622,
2290375496, 671064364, 671064364, 3249888863, 4805770273,
2618169990, 5354670310, 6049818905, 3313318585, 2618169990,
5354670310, 2633373371
]
recovered_flag4 = decode_flag4(target_4805A8, table_480788[::-1])
# print("Recovered a1:", recovered_a1)
re_flag4=recover(recovered_flag4)
re_flag4=bytes(re_flag4)
#print('re success?:',re_flag4==flag4.encode())
print('flag4:',re_flag4)
flag5
ce 搜 flag{ 一步到位
flag5{jA0fS5}
05.exe
Please enter the flag: flag{jA0fS5}
flag正确
py
def caesar_decrypt(text, shift):
"""加密函数:将文本加密,移动 shift 个位置"""
encrypted_text = ""
for char in text:
if char.isalpha(): # 仅处理字母
start = ord('A') if char.isupper() else ord('a')
# 计算新的字符
encrypted_text += chr((ord(char) - start -shift) % 26 + start)
else:
# 非字母字符不加密
encrypted_text += char
return encrypted_text
def get_flag5():
# flag5=b'jA0fS5'
str1 = 'dnHzCoP1'
shift = 3
str2 = caesar_decrypt(str1, shift).encode()
# print(str2)
decoded_bytes = base64.b64decode(str2)
str2 = decoded_bytes.decode('utf-8')
print('flag5{'+str2+'}')
flag6
flag6{GgACfF}
请输入flag:
GgACfF
flag正确
按任意键退出...
flag7
"flag{aR6tB7}" "flag7{aR6tB7}"
请输入flag:flag7{aR6tB7}
flag正确
按任意键退出...
flag8
{7660277C-49A9-4F1C-85B1-EFD388F79A42}
logon
action:rundll32.exe "C:\Program Files (x86)\Windows NT\Update.png",DllRegisterServer
情境: 今天下午,正在办公室里对账的小张收到了陌生人发送的"软件包下载.msi",并在无意间打开了该程序包。小张发现该程序包运行之
后,在 "C:\Program Files (x86)\Windows NT" 下释放了大量未知文件,小明将这些文件清理掉之后发现每次启动计算机后总会弹出报错提
示称“某某dll启动失败:找不到模块”。请你帮助小张找到该启动项。
提交内容: 该计划任务启动项的 Id .
本题flag示例: flag8{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
taskcache v.20200427
(Software) Checks TaskCache\Tree root keys (not subkeys)
Corpo
LastWrite: 2024-11-10 06:42:01Z
Id: {7660277C-49A9-4F1C-85B1-EFD388F79A42}
Task Reg Time: 2024-11-10 06:42:01Z
Task Last Run: 2024-11-10 06:50:46Z
Task Completed: 2024-11-10 06:51:01Z
flag9 密码学,todo
flag10
Kbkwgebk
Command Line: EHLO Kbkwgebk\r\n
Command: EHLO
Request parameter: Kbkwgebk
流量
情境: 今天下午,小红发现自己的计算机被感染了AgentTesla恶意软件,以下是从小红计算机中抓包得到的pcapng网络流量包,该网络流量
包中包含了AgentTesla恶意软件在这段时间内发送的网络流量。
提交内容: 小红计算机的 Computer Name (计算机名).
MIME-Version: 1.0
From: biz@ctdi.com.ph
To: ctdi.employees@ctdi.com.ph
Date: 8 Nov 2024 21:07:12 +0000
Subject: Contacts_Admin/KBKWGEBK
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Time: 11/08/2024 21:07:06<br>User Name: Admin<br>Computer Name: K=
BKWGEBK<br>OSFullName: Microsoft Windows 10 Pro<br>CPU: 12th Gen =
Intel(R) Core(TM) i5-12400<br>RAM: 8192 MB<br><hr>