
Herramienta de recuperación de contraseñas FTP de Total Commander para Python que le permite descifrar la información de contraseñas de cuentas FTP para todas las versiones de Total Commander con el complemento FTP.
Total Commander (antes conocido como Windows Commander) es un administrador de archivos clásico para Windows, Windows CE, Windows Phone y ahora también Android.
Total Commander tiene un cliente FTP/FXP integrado y guarda los inicios de sesión FTP y las contraseñas cifradas en el archivo de configuración wcx_ftp.ini.

Hace años realicé ingeniería inversa y recreé el algoritmo de descifrado de contraseñas.
Lo puse a disposición de otro software, FlashFXP, para importar perfiles de conexión FTP desde Total Commander.
Te proporciono los códigos fuente tanto del algoritmo de descifrado original en ensamblador como de una implementación en Python de este algoritmo.
Puedes usar uno de los códigos fuente proporcionados o usar mi propia implementación en línea para agilizar el proceso:
https://www.pelock.com/products/total-commander-ftp-password-recovery
pip install total-commander-ftp-password-recovery
Para desarrollo local desde un checkout de git:
pip install -e ".[dev]"
from binascii import hexlify
from total_commander_ftp_password import TotalCommanderPasswordDecoder
cipher_hex = "00112233445566778899aabbccddeeff"
decoder = TotalCommanderPasswordDecoder()
plain = decoder.decrypt_password(cipher_hex)
if plain is None:
raise RuntimeError("Invalid ciphertext (bad hex, odd length, or too short).")
print(plain) # decoded bytes
print(hexlify(plain).decode("ascii")) # optional hex view
decrypt_password() acepta entrada hexadecimal flexible: las mayúsculas y minúsculas ASCII se ignoran y se permiten espacios en blanco entre pares de bytes (útil al pegar desde un archivo .ini).
Tras la instalación mediante pip, usa el script de consola:
tc-ftp-password-decode 00112233445566778899aabbccddeeff
Desde un checkout de git (después de pip install -e .), también puedes ejecutar:
python -m total_commander_ftp_password.cli 00112233445566778899aabbccddeeff
examples/basic_usage.py — script mínimo de descifrado.pip install -e ".[dev]"
pytest
Bartosz Wójcik