From d7be2630c59d15b7060e1674fd23fe10bfd8ec27 Mon Sep 17 00:00:00 2001 From: Zaman <7amaaan@gmail.com> Date: Tue, 10 Sep 2019 21:14:07 +0430 Subject: [PATCH] add so file for now --- MANIFEST.in | 1 + README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++- wdpass/__init__.py | 5 +-- wdpass/py3_sg.so | Bin 0 -> 46584 bytes wdpass/version.py | 2 +- 5 files changed, 80 insertions(+), 4 deletions(-) create mode 100755 wdpass/py3_sg.so diff --git a/MANIFEST.in b/MANIFEST.in index 04f196a..25bd08d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include README.md include LICENSE +include wdpass/py3_sg.so diff --git a/README.md b/README.md index bcb96ac..9a018a4 100644 --- a/README.md +++ b/README.md @@ -1 +1,75 @@ -# wdpass \ No newline at end of file +# wdpass +WD Passport Ultra Complete Utilities for Linux. + +

Intro

+ +This script let you unlock, change password and erase Western Digital Passport devices on Linux platform. + +

Install

+ +In order to run this script you need to install "lsscsi" +``` +sudo dbf install lsscsi +pip3 install wdpass --user +``` + + + +

Usage

+ +Run script as root. + +There are few options: +``` +-h, --help show this help message and exit +``` +Lists all possible arguments. + +``` +-s, --status Check device status and encryption type +``` +Get device encryption status and cipher suites used. +``` +-u, --unlock Unlock +``` +You will be asked to enter the unlock password. If everything is fine device will be unlocked. + +``` +-us, --unlock_with_saved_passwd Unlock with the password saved +``` +Unlock using the saved password. If everything is fine device will be unlocked. + +``` +-sp, --save_passwd Save password +``` +When unlock password, it will save user password to passwd.bin, so you can use "-us" for next time to auto unlock. + +``` +-m, --mount Enable mount point for an unlocked device +``` +After unlock, your operating system still thinks that your device is a strange thing attached to his usb port and he don't know how to manage. You need this option to force the O.S. to rescan the device and handle it as a normal external usb harddrive. + +``` +-c, --change_passwd Change (or disable) password +``` +This option let you to encrypt your device, remove password protection and change your current password. +If device is "without lock" and you want it to be password protect leave the "OLD password" field empty and choose insert the new password. +If the device is password protected and you want to be as a normal unencrypted device, inser the old password and leave the "NEW password" field empty. +If you only want to change password do it as usual. + +``` +-e, --erase Secure erase device +``` +"Erase" the device. This will remove the internal key associated to you password and all your data will be unaccessible. You will also lose your partition table and you will need to create a new one (you can use fdisk and mkfs). + +``` +-d DEVICE, --device DEVICE Force device path (ex. /dev/sdb). Usually you don't need this option. +``` +The script will try to auto detect the current device path of your WD Passport device. +If something is wrong or you want to manually specify the device path yourself you can use this option. + +

Disclaimer

+I based my research on Dan Lukes (FreeBSD version) and KenMacD (very simple unlocker) works. +I'm in no way sponsored by or connected with Western Digital. +Use any of the information contained in this repository at your own risk. I accept no +responsibility. diff --git a/wdpass/__init__.py b/wdpass/__init__.py index c60df75..17bfdb6 100644 --- a/wdpass/__init__.py +++ b/wdpass/__init__.py @@ -10,8 +10,9 @@ import subprocess try: - import py_sg -except ImportError: + import py3_sg as py_sg +except ImportError as e: + print(e) print("You need to install the 'py_sg' module.") sys.exit(1) diff --git a/wdpass/py3_sg.so b/wdpass/py3_sg.so new file mode 100755 index 0000000000000000000000000000000000000000..e82e156b9e369e55473b5056f6613ac12e72161b GIT binary patch literal 46584 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 D4>0%d literal 0 HcmV?d00001 diff --git a/wdpass/version.py b/wdpass/version.py index 99c4176..210ebb3 100644 --- a/wdpass/version.py +++ b/wdpass/version.py @@ -1 +1 @@ -__version__ = '0.0.1' \ No newline at end of file +__version__ = '0.0.2' \ No newline at end of file