记录一下不能F5反编译
加密方式
密文
- 异或操作函数
xor_string_with_key
:
- 接受两个字符串作为输入:待处理的
text
和key
。 - 对每个字符进行异或操作。使用
ord(char)
获取字符的 ASCII 值,ord(key[i % key_length])
是key
中对应位置的字符的 ASCII 值。 - 异或操作的结果转换回字符并添加到结果列表中。
- 主函数
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!!!}