DosSnake-入土为安第八天

记录一下不能F5反编译

加密方式

si对应密文指针,di对应key指针

密文

  1. 异或操作函数 xor_string_with_key

    • 接受两个字符串作为输入:待处理的 text 和 key
    • 对每个字符进行异或操作。使用 ord(char) 获取字符的 ASCII 值,ord(key[i % key_length]) 是 key 中对应位置的字符的 ASCII 值。
    • 异或操作的结果转换回字符并添加到结果列表中。
  2. 主函数 main

    • 定义原始字符串 original_string 和 key
    • 调用 xor_string_with_key 函数对字符串进行异或处理。
    • 输出处理后的字符串。
def xor_string_with_key(text, key_bytes):
    """
    对给定的字符串进行异或操作,使用字节密钥。
    """
    result = []
    key_length = len(key_bytes)

    for i, char in enumerate(text):
        # 对字符进行异或处理
        xor_char = chr(ord(char) ^ key_bytes[i % key_length])
        result.append(xor_char)

    return ''.join(result)

def expand_to_26_characters(original_string):
    """
    将字符串扩展到 26 个字符,简单重复或加填充字符。
    """
    while len(original_string) < 26:
        original_string += original_string  # 重复原字符串
    return original_string[:26]  # 截断到 26 个字符

def main():
    original_string = "DASCTF"
    extended_string = expand_to_26_characters(original_string)  # 扩展到 26 个字符

    # 给定的十六进制序列
    key_hex = [0x3F, 0x09, 0x63, 0x34, 0x32, 0x13, 0x2A, 0x2F,
               0x2A, 0x37, 0x3C, 0x23, 0x00, 0x2E, 0x20, 0x10, 0x3A,
               0x27, 0x2F, 0x24, 0x3A, 0x30, 0x75, 0x67, 0x65, 0x3C]

    # 进行异或处理
    processed_string = xor_string_with_key(extended_string, key_hex)

    # 输出处理后的字符串
    print("Processed String:", processed_string)
    
    # 输出处理后的字符串的十六进制表示
    hex_output = ' '.join(f'{ord(c):02X}' for c in processed_string)
    print("Hexadecimal Representation:", hex_output)

if __name__ == "__main__":
    main()

DASCTF{H0wfUnnytheDosSnakeis!!!}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值