import binascii

# Séquences de bytes initiale et XOR
initial_sequence_hex = "8380f08f"
final_sequence_hex = "24090500"

# Conversion en bytes
initial_sequence_bytes = bytes.fromhex(initial_sequence_hex)
final_sequence_bytes = bytes.fromhex(final_sequence_hex)

# Fonction pour analyser les transformations
def analyze_transformations(initial_bytes, final_bytes):
    transformations = []
    for initial_byte, final_byte in zip(initial_bytes, final_bytes):
        transformation = {
            "initial": initial_byte,
            "final": final_byte,
            "addition_mod": (initial_byte + final_byte) % 256,
            "subtraction_mod": (initial_byte - final_byte) % 256,
            "xor": initial_byte ^ final_byte
        }
        transformations.append(transformation)
    return transformations

# Fonction pour appliquer la transformation XOR
def apply_xor_transformation(initial_bytes, xor_bytes):
    transformed_bytes = bytearray()
    for initial_byte, xor_byte in zip(initial_bytes, xor_bytes):
        transformed_byte = initial_byte ^ xor_byte
        transformed_bytes.append(transformed_byte)
    return transformed_bytes

# Analyse des transformations
transformations = analyze_transformations(initial_sequence_bytes, final_sequence_bytes)

# Affichage des résultats des transformations
print("Transformations appliquées:")
for i, transformation in enumerate(transformations):
    print(f"Byte {i}:")
    print(f"  Initial: {transformation['initial']:02x}")
    print(f"  Final: {transformation['final']:02x}")
    print(f"  Addition mod 256: {transformation['addition_mod']:02x}")
    print(f"  Subtraction mod 256: {transformation['subtraction_mod']:02x}")
    print(f"  XOR: {transformation['xor']:02x}")

# Appliquer la transformation XOR pour validation
xor_sequence_hex = "a7 89 f5 8f".replace(" ", "")
xor_sequence_bytes = bytes.fromhex(xor_sequence_hex)
transformed_bytes = apply_xor_transformation(initial_sequence_bytes, xor_sequence_bytes)

# Afficher les résultats de la validation
print("Transformed bytes:", transformed_bytes.hex())
