[HNCTF 2022 WEEK2]getflag-入土为安的二十一天

简介: [HNCTF 2022 WEEK2]getflag-入土为安的二十一天

难点读程序,写exp

  • *(unsigned __int8 *)(i + a1) >> 4:
  • 这将字节 i + a1 右移 4 位,提取出字节的高 4 位。
  • *(_BYTE *)(i + a1):
  • 这获取原字节的低 4 位(即,i + a1 位置的字节的低 4 位)。
  • (16 * *(_BYTE *)(i + a1)):
  • 这是将低 4 位的值乘以 16,用于计算位权值。
  • (unsigned __int8)((*(unsigned __int8 *)(i + a1) >> 4) | (16 * *(_BYTE *)(i + a1))):
  • 高 4 位和低 4 位相加得到最终的字符值

def convert_to_string(a):
    result = []
    for i in range(len(a)):
        byte_value = a[i]
        high_nibble = byte_value >> 4
        low_nibble = byte_value & 0x0F
        char_value = high_nibble | (low_nibble * 16)
        result.append(chr(char_value))
    return ''.join(result)
# 输入数组
a = [228, 53, 53, 52, 69, 100, 183, 212, 100, 52, 245, 7, 39, 3, 118, 39, 67, 214, 214, 150, 230, 118,
     245, 150, 55, 245, 22, 119, 86, 55, 3, 214, 51, 215]
# 调用函数并输出结果
output_string = convert_to_string(a)
print(output_string)
//NSSCTF{MFC_pr0gr4mming_is_awes0m3}


目录
相关文章
|
3月前
|
数据安全/隐私保护
[LitCTF 2024]ezrc4——入土为安的第一天
[LitCTF 2024]ezrc4——入土为安的第一天
41 0
|
3月前
[LitCTF 2024]hello_upx——入土为安的第一天
[LitCTF 2024]hello_upx——入土为安的第一天
31 0
|
3月前
[HGAME 2022 week1]easyasm-入土为安的第十八天
[HGAME 2022 week1]easyasm-入土为安的第十八天
31 0
|
3月前
[HNCTF 2022 WEEK3]What‘s 1n DLL?入土为安的第四天
[HNCTF 2022 WEEK3]What‘s 1n DLL?入土为安的第四天
28 0
|
3月前
[LitCTF 2024]编码喵——入土为安的第一天
[LitCTF 2024]编码喵——入土为安的第一天
35 0
|
3月前
|
数据安全/隐私保护
BABYRE 入土为安的第七
BABYRE 入土为安的第七
28 0
|
6月前
|
安全
第十四届蓝桥杯集训——Date与Calendar函数
第十四届蓝桥杯集训——Date与Calendar函数
40 0
|
6月前
|
JavaScript 前端开发 Java
用代码送上 Happy New Year
用代码送上 Happy New Year
51 0
Zp
|
Oracle 关系型数据库
oracle 获取指定日期的第一天和最后一天和上个月的第一天和最后一天及当年第一天和当年最后一天
oracle 获取指定日期的第一天和最后一天和上个月的第一天和最后一天及当年第一天和当年最后一天
Zp
226 0