Total Commander FTP password recovery (Go)
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.

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 Go 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
Installation
The preferred way to install the library is via Go modules.
go get github.com/PELock/Total-Commander-FTP-Password-Recovery-Go
The module path is github.com/PELock/Total-Commander-FTP-Password-Recovery-Go.
Usage examples
Example — simple/main.go
/******************************************************************************
* Total Commander FTP Password Recovery usage example.
*
* Version : v1.0.1
* Language : Go
* Author : Bartosz Wójcik
* Web page : https://www.pelock.com
*
*****************************************************************************/
package main
import (
"encoding/hex"
"fmt"
"os"
totalcommanderftppasswordrecovery "github.com/PELock/Total-Commander-FTP-Password-Recovery-Go"
)
func main() {
const cipherHex = "00112233445566778899aabbccddeeff"
decoder := totalcommanderftppasswordrecovery.New()
plain, err := decoder.DecryptPassword(cipherHex)
if err != nil {
fmt.Fprintln(os.Stderr, "Decode failed.")
os.Exit(1)
}
fmt.Println(string(plain))
fmt.Println("hex: " + hex.EncodeToString(plain))
}
See the examples/ directory in this repository for complete samples.
References
Author
Bartosz Wójcik