Skip to content

PELock/Total-Commander-FTP-Password-Recovery-JavaScript

Repository files navigation

Total Commander FTP password recovery (JavaScript)

npm version Node.js License GitHub

Total Commander (formerly known as Windows Commander) is a classic file manager for Windows, Windows CE, Windows Phone, and now also Android.

Total Commander has a built-in FTP/FXP client and it keeps the FTP logins and encrypted passwords in wcx_ftp.ini configuration file.

Total Commander FTP Password Recovery Tool

I have reverse engineered and recreated the password decoding algorithm years ago.

It was made available by me to another FlashFXP software to import FTP connection profiles from Total Commander.

I give you source codes for both the original assembly decoding algorithm and a JavaScript implementation of this algorithm.

Total Commander Online Password Decoder

You can either use one of the provided source codes or use my own online implementation to make things faster:

https://www.pelock.com/products/total-commander-ftp-password-recovery

Requirements

  • Node.js 18+ (LTS recommended).
  • npm (or another package manager) to install the library.

Installation

npm install total-commander-ftp-password-recovery

Usage (library)

import { Buffer } from 'node:buffer';
import { TotalCommanderPasswordDecoder } from 'total-commander-ftp-password-recovery';

const cipherHex = '00112233445566778899aabbccddeeff';

const decoder = new TotalCommanderPasswordDecoder();
const plain = decoder.decryptPassword(cipherHex);

if (plain === null) {
  throw new Error('Invalid ciphertext (bad hex, odd length, or too short).');
}

// Decoded bytes as Uint8Array; in Node you can view as Latin-1 or hex:
console.log(Buffer.from(plain).toString('latin1'));
console.log(Buffer.from(plain).toString('hex'));

decryptPassword() accepts flexible hex input: ASCII case is ignored and whitespace between byte pairs is allowed (useful when pasting from an .ini file).

CLI

After installation, the package exposes a small helper binary:

npx tc-ftp-password-decode 00112233445566778899aabbccddeeff

From a git checkout (without a global install), run:

node bin/tc-ftp-password-decode 00112233445566778899aabbccddeeff

Examples

  • examples/basic-usage.mjs — minimal decrypt script.

Tests

npm install
npm test

References

Author

Bartosz Wójcik

About

Total Commander FTP Password Recovery Tool for Java & Node allows you to decrypt the FTP account password information for all Total Commander versions with the FTP plug-in.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors