Last active
October 3, 2017 11:53
-
-
Save suhailvs/bbd7ec7cba56cdf6d7a7a20f9d5e74e1 to your computer and use it in GitHub Desktop.
Wrap wallet cracker
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" Usage: | |
$ wget http://suhailvs.mooo.com/media/images/t1.sqlite3 | |
>>> import cracker as main | |
>>> main.save_a_pp() #"Generate Random Passphrase with salt a@b.c" | |
>>> main.show() # Show 10 items from Databse 'db.sqlite3' | |
>>> main.show(['l0Jl47s5','']) | |
>>> main.show(['','1MkupVKiCik9iyfnLrJoZLx9RH4rkF3hnA']) # warp wallet challenge2 | |
>>> main.manual() # manually input passphrase and salt | |
""" | |
from warp_wallet.warpWallet import generate_keypair | |
from warp_wallet.keyUtils import keyToAddr,privateKeyToWif | |
import sqlite3,random | |
l='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' | |
conn= sqlite3.connect('t1.sqlite3') | |
c=conn.cursor() | |
""" | |
Create table | |
c.execute('''CREATE TABLE IF NOT EXISTS crack (pp text, addr text)''') | |
""" | |
def filter(q=['','']): | |
if q[0]: return c.execute('SELECT * FROM crack WHERE pp=?', (q[0],)) | |
if q[1]: return c.execute('SELECT * FROM crack WHERE addr=?', (q[1],)) | |
count=c.execute('SELECT COUNT(*) FROM crack') | |
print ("Total Items:",count.fetchone()) | |
return c.execute('SELECT * FROM crack') | |
def save_a_pp(): | |
pp = str(''.join(random.choice(l) for i in range(8))) | |
salt=str('a@b.c') | |
d=filter([pp,'']) | |
if not d.fetchone(): | |
# print 'saving passphrase and address...' | |
privateKey = generate_keypair(pp,salt=salt) | |
address = keyToAddr(privateKey) | |
c.execute("INSERT INTO crack VALUES (?,?)",(pp,address)) | |
conn.commit() | |
#conn.close() | |
def show(q=['','']): | |
r = filter(q) | |
for row in r.fetchmany(10): print(row) | |
def success(): | |
show(['','1MkupVKiCik9iyfnLrJoZLx9RH4rkF3hnA']) | |
# Mannually creating Address | |
def manual(): | |
pp= raw_input('Enter Passphrase: ') | |
salt = raw_input ('Enter Salt: ') | |
privateKey = generate_keypair(pp,salt=salt) | |
return [privateKeyToWif(privateKey), | |
keyToAddr(privateKey)] | |
if __name__ == "__main__": | |
while True: save_a_pp() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment