Dekoder haseł FTP dla Total Commandera

Z okazji rocznicy, okrągłej oczywiście — odkodowania 133541 (tak — stu trzydziestu trzech tysięcy pięciuset czterdziestu jeden) haseł przez mój dekoder online, publikuję kody źródłowe algorytmu dekodowania haseł FTP Total Commandera w formie paczek dla popularnych języków programowania.

Dostępne są paczki dla PHP, Pythona, JS i waszego ukochanego Rust. Kody źródłowe wszystkich paczek są dostępne na moim GitHubie.

https://www.pelock.com/pl/produkty/total-commander-odzyskanie-hasla-ftp/sdk

Więc, jakby ktoś potrzebował szybko wdrożyć dekodowanie w jakichś narzędziach forensic to polecam – za darmo to dobra cena 🙂

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)
print(hexlify(plain).decode("ascii"))

Wszystkie pakiety mają dodatkowo wbudowane proste narzędzie CLI.

PS. Wspierajmy twórców oprogramowania

Steganography Online Codec Web API

Dodałem SDK dla mojego kodeka steganograficznego Steganography Online Codec, pierwsza wersja SDK dla Pythona dostępna przez PyPi z kodami źródłowymi na GitHubie.

###############################################################################
#
# Steganography Online Codec WebApi interface usage example.
#
# This example shows how to hide an encrypted secret message in an image file.
#
# Version      : v1.00
# Language     : Python
# Author       : Bartosz Wójcik
# Project      : https://www.pelock.com/products/steganography-online-codec
# Homepage     : https://www.pelock.com
#
###############################################################################

#
# include Steganography Online Codec module
#
from steganography_online_codec import *

#
# create Steganography Online Codec class instance (we are using our activation key)
#
mySteganographyOnlineCodec = SteganographyOnlineCodec("YOUR-CODE-GOES-HERE")

#
# encode a hidden message (encrypted with your password) within an image file
#
result = mySteganographyOnlineCodec.encode("input_file.jpg", "Secret message", "Pa$$word", "output_file_with_hidden_secret_message.png")

#
# result[] array holds the encoding results as well as other information
#
if result and "error" in result:
    if result["error"] == Errors.SUCCESS:
        print(f'Secret messaged encoded and saved to the output PNG file.')
    else:
        print(f'Error code {result["error"]}')
else:
    print("Something unexpected happen while trying to encode the message.")

Sprawdzony w boju, bezpieczny (AES i 20k rund PBKDF2) sprawiają, że nie został jeszcze złamany, wykorzystano go w konkursie, gdzie nagrodą było 20000 USD.

Kolejne wersje SDK dla innych języków programowania oraz wersja okienkowa i z linii komend w drodze.

Kod do radia Fiat DAIICHI MOPAR

Kalkulator kodu radiowego dla radia Fiat DAIICHI MOPAR. Kody radiowe dla Fiat Punto, Fiorino, Ducato, Linea, Qubo i Lancia Ypsilon.

Kalkulator kodu radiowego dla Fiat DAIICHI MOPAR

Padł Ci akumulator, albo kupiłeś nowe auto i masz zablokowany radioodtwarzacz? Nie bój żaby! Postępuj zgodnie z tutorialem na stronie:

https://www.pelock.com/pl/produkty/fiat-daiichi-kod-do-radia-kalkulator-generator

Kody radiowe w wersji SDK

Dla osób, które chciałby masowo generować kody radiowe i sprzedawać je np. na Allegro czy OLX mam do zaoferowania SDK pozwalające generować nielimitowaną ilość kodów, w takich językach programowania jak JavaScript, Python i PHP.

Przykładowe użycie z poziomu JS:

"use strict";

/******************************************************************************
 *
 * Radio Code Calculator API - WebApi interface usage example
 *
 * In this example, we will demonstrate how to generate a code for a specific
 * type of car radio.
 *
 * Version      : v1.1.0
 * JS           : ES6
 * Dependencies : radio-code-calculator
 * Author       : Bartosz Wójcik ([email protected])
 * Project      : https://www.pelock.com/products/radio-code-calculator
 * Homepage     : https://www.pelock.com
 *
 * @link https://www.pelock.com/products/radio-code-calculator
 * @copyright Copyright (c) 2021-2023 PELock LLC
 * @license Apache-2.0
 *
/*****************************************************************************/

//
// include Radio Code Calculator API module
//
import { RadioCodeCalculator, RadioErrors, RadioModel, RadioModels } from "radio-code-calculator";

//
// create Radio Code Calculator API class instance (we are using our activation key)
//
let myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");

//
// generate radio code (using Web API)
//
myRadioCodeCalculator.calc(RadioModels.FORD_M_SERIES, "123456").then((result) => {

    console.log("Radio code is " + result["code"]);

}).catch((error) => {

    switch(error["error"])
    {
    case RadioErrors.INVALID_RADIO_MODEL: console.log("Invalid radio model (not supported)"); break;
    case RadioErrors.INVALID_SERIAL_LENGTH: console.log("Invalid serial number length (expected " + result["serialMaxLen"] + " characters)"); break;
    case RadioErrors.INVALID_SERIAL_PATTERN: console.log("Invalid serial number regular expression pattern (expected " + result["serialRegexPattern"]["php"] + " regex pattern)"); break;
    case RadioErrors.INVALID_SERIAL_NOT_SUPPORTED: console.log("This serial number is not supported"); break;
    case RadioErrors.INVALID_EXTRA_LENGTH: console.log("Invalid extra data length (expected " + result["extraMaxLen"] + " characters)"); break;
    case RadioErrors.INVALID_EXTRA_PATTERN: console.log("Invalid extra data regular expression pattern (expected " + result["extraRegexPattern"]["php"] + " regex pattern"); break;
    case RadioErrors.INVALID_INPUT: console.log("Invalid input data"); break;
    case RadioErrors.INVALID_COMMAND: console.log("Invalid command sent to the Web API interface"); break;
    case RadioErrors.INVALID_LICENSE: console.log("Invalid license key!"); break;
    default: console.log(`Something unexpected happen while trying to login to the service (error code ${error}).`); break;
    }
});

Więcej informacji na stronie Kalkulator Kodów Radiowych SDK.

Generator kodów radiowych w PHP

Kolejny generator kodów radiowych, tym razem w wersji dla języka PHP. Generuj kody radiowe i nawigacyjne dla popularnych modeli aut, sprzedawaj je i zarabiaj ile wlezie 🙂

Instalacja

Paczka instalacyjna dostępna dla composera:

https://packagist.org/packages/pelock/radio-code-calculator

Kody źródłowe z przykładami i unit testami:

https://github.com/PELock/Radio-Code-Calculator-PHP

Przykład, jak wygenerować kod radiowy

<?php declare(strict_types=1);

/******************************************************************************
 *
 * Radio Code Calculator API - WebApi interface usage example
 *
 * In this example, we will demonstrate how to generate a code for a specific
 * type of car radio.
 *
 * Version      : v1.00
 * PHP          : >= 8
 * Dependencies : cURL
 * Author       : Bartosz Wójcik ([email protected])
 * Project      : https://www.pelock.com/products/radio-code-calculator
 * Homepage     : https://www.pelock.com
 *
 * @link https://www.pelock.com/products/radio-code-calculator
 * @copyright Copyright (c) 2021-2023 PELock LLC
 * @license Apache-2.0
 *
/*****************************************************************************/

//
// include Radio Code Calculator API module
//
use PELock\RadioCodeCalculator\RadioCodeCalculator;
use PELock\RadioCodeCalculator\RadioErrors;
use PELock\RadioCodeCalculator\RadioModels;

//
// create Radio Code Calculator API class instance (we are using our activation key)
//
$myRadioCodeCalculator = new RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD");

//
// generate radio code (using Web API)
//
list($error, $result) = $myRadioCodeCalculator->calc(RadioModels::get(RadioModels::FORD_M_SERIES), "123456");

switch($error)
{
        case RadioErrors::SUCCESS: echo "Radio code is " . $result["code"]; break;
        case RadioErrors::INVALID_RADIO_MODEL: echo "Invalid radio model (not supported)"; break;
        case RadioErrors::INVALID_SERIAL_LENGTH: echo "Invalid serial number length (expected " . $result["serialMaxLen"] . " characters)"; break;
        case RadioErrors::INVALID_SERIAL_PATTERN: echo "Invalid serial number regular expression pattern (expected " . $result["serialRegexPattern"]["php"] . " regex pattern)"; break;
        case RadioErrors::INVALID_SERIAL_NOT_SUPPORTED: echo "This serial number is not supported"; break;
        case RadioErrors::INVALID_EXTRA_LENGTH: echo "Invalid extra data length (expected " . $result["extraMaxLen"] . " characters)"; break;
        case RadioErrors::INVALID_EXTRA_PATTERN: echo "Invalid extra data regular expression pattern (expected " . $result["extraRegexPattern"]["php"] . " regex pattern"; break;
        case RadioErrors::INVALID_INPUT: echo "Invalid input data"; break;
        case RadioErrors::INVALID_COMMAND: echo "Invalid command sent to the Web API interface"; break;
        case RadioErrors::INVALID_LICENSE: echo "Invalid license key!"; break;
        default: echo "Something unexpected happen while trying to login to the service (error code {error})."; break;
}

SDK dla Pythona i więcej przykładów

Więcej przykładów oraz wersje przykładów dla Pythona na:

https://www.pelock.com/pl/produkty/kalkulator-kodow-do-radia/sdk

Kalkulator Kodów Do Radia Samochodowego API i SDK

Kalkulator Kodów Do Radia samochodowego to usługa Web API umożliwiająca generowanie kodów odblokowujących radioodtwarzacze i nawigację w samochodach. Jest dostępna poprzez prosty interfejs online oraz API i wiele bibliotek SDK dla popularnych języków programowania, takich jak np. Python.

Przykład generowania kodu radiowego

Prościej się chyba nie da, obsługa wszelkich możliwych wyjątków:

#!/usr/bin/env python

###############################################################################
#
# Radio Code Calculator API - WebApi interface usage example
#
# In this example, we will demonstrate how to generate a code for a specific
# type of car radio.
#
# Version        : v1.00
# Language       : Python
# Author         : Bartosz Wójcik
# Project        : https://www.pelock.com/products/radio-code-calculator
# Homepage       : https://www.pelock.com
#
###############################################################################

#
# include Radio Code Calculator API module
#
from radio_code_calculator import *

#
# create Radio Code Calculator API class instance (we are using our activation key)
#
myRadioCodeCalculator = RadioCodeCalculator("ABCD-ABCD-ABCD-ABCD")

#
# generate radio code (using Web API)
#
error, result = myRadioCodeCalculator.calc(RadioModels.FORD_M_SERIES, "123456")

if error == RadioErrors.SUCCESS:
    print(f'Radio code is {result["code"]}')
elif error == RadioErrors.INVALID_RADIO_MODEL:
    print("Invalid radio model (not supported)")
elif error == RadioErrors.INVALID_SERIAL_LENGTH:
    print(f'Invalid serial number length (expected {result["serialMaxLen"]} characters)')
elif error == RadioErrors.INVALID_SERIAL_PATTERN:
    print(f'Invalid serial number regular expression pattern (expected {result["serialRegexPattern"]["python"]} regex pattern)')
elif error == RadioErrors.INVALID_SERIAL_NOT_SUPPORTED:
    print("This serial number is not supported")
elif error == RadioErrors.INVALID_EXTRA_LENGTH:
    print(f'Invalid extra data length (expected {result["extraMaxLen"]} characters)')
elif error == RadioErrors.INVALID_EXTRA_PATTERN:
    print(f'Invalid extra data regular expression pattern (expected {result["extraRegexPattern"]["python"]} regex pattern)')
elif error == RadioErrors.INVALID_INPUT:
    print("Invalid input data")
elif error == RadioErrors.INVALID_COMMAND:
    print("Invalid command sent to the Web API interface")
elif error == RadioErrors.INVALID_LICENSE:
    print("Invalid license key")
elif error == RadioErrors.ERROR_CONNECTION:
    print("Something unexpected happen while trying to login to the service.")
else:
    print(f'Unknown error {error}')

Dzięki temu rozwiązaniu możesz tworzyć aplikacje mobilne lub internetowe umożliwiające łatwe generowanie kodów radia i samemu zarabiać na generowaniu kodów radiowych. Przykładowej projekcje zarobków w zależności od cen na stronie projektu.

Wersja angielska – https://www.pelock.com/products/radio-code-calculator

PS. Nie wszystko jest jeszcze ukończone na 100%, obecnie jedynie wersja dla Pythona jest dostępna.

Licencjonowanie i zabezpieczenie oprogramowania

Upubliczniłem na GitHubie repozytorium z SDK dla swojego systemu ochrony i licencjonowania oprogramowania PELock v2.0.

Zaawansowane ustawienia ochrony aplikacji w PELock v2.0

SDK i setki przykładów użycia są dostępne w wersji dla C/C++, D, Delphi/Pascal, PureBasic, PowerBASIC oraz MASM.

Podgląd okienka z identyfikatorem sprzętowym - blokada na sprzętowy identyfikator w PELock v2.0

Jeśli interesujesz się metodami ochrony oprogramowania przed złamaniem być może znajdziesz także coś dla siebie, ponieważ PELock v2.0 oferuje wiele nowych, niespotykanych metod pozwalających zabezpieczyć oprogramowanie przed crackingiem i reverse engineeringiem.

https://github.com/PELock/PELock-Software-Protection-and-Licensing-SDK