Bitcoin Forum
July 09, 2024, 03:39:42 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Brute Force Tool for Seed with One Wrong Word.  (Read 1749 times)
jonald_fyookball (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1004


Core dev leaves me neg feedback #abuse #political


View Profile
January 13, 2015, 01:01:26 AM
Last edit: January 13, 2015, 01:14:10 AM by jonald_fyookball
 #1

Python code -- if you have 1 wrong word in your seed
and know one of your receiving addresses, this will
cycle through roughly 19,000 combinations to try
to find your seed.

Change the clue variable to one of your receiving
addresses and the origseed array to your seed.

Currently, the clue is based on the default seed
with the first word changed to one of
the first words in the electrum dictionary,
the word "out".  Run it to see.

Note, I could have used change addresses
also but that would take twice as long,
so make sure it is a RECEIVING address.

Also if you need to , you can change
the gap limit with the
numberofreceivingaddresses, which is
set to 5, but this will take longer.

My PC runs this about 1 seed per second,
so would take about 5.5 hours or so
to do the complete brute force check.

Questions, just ask.

JF





Code:
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
#  - NOTE:  You will need to install the hashlib and ecdsa modules into Python!
#
#
#
import hashlib, ecdsa
from ecdsa.curves import SECP256k1
from ecdsa.ellipticcurve import Point
from ecdsa.util import string_to_number, number_to_string
from ecdsa.ecdsa import curve_secp256k1, generator_secp256k1
#
#
#
#
#
#





##--------------------------------------------------------------------------

numberofreceivingaddresses=5;
numberofchangeaddresses=5;

##--------------------------------------------------------------------------
def sha256(x):
    return hashlib.sha256(x).digest()

def Hash(x):
    if type(x) is unicode: x=x.encode('utf-8')
    return sha256(sha256(x))

def pw_decode(s, password):
    if password is not None:
        secret = Hash(password)
        try:
            d = DecodeAES(secret, s).decode("utf8")
        except Exception:
            raise Exception('Invalid password')
        return d
    else:
        return s

def get_address(mpk,  for_change, n):
        pubkey =  get_pubkey(mpk,for_change, n)
        address = public_key_to_bc_address( pubkey.decode('hex') )

        return address


def get_pubkey(mpk, for_change, n):
        curve = SECP256k1
        z = get_sequence(mpk,for_change,n);
        master_public_key = ecdsa.VerifyingKey.from_string( mpk, curve = SECP256k1 )
        pubkey_point = master_public_key.pubkey.point + z*curve.generator
        public_key2 = ecdsa.VerifyingKey.from_public_point( pubkey_point, curve = SECP256k1 )
        return '04' + public_key2.to_string().encode('hex')

def get_sequence(mpk, for_change, n):
        return string_to_number( Hash( "%d:%d:"%(n,for_change) + mpk ) )

def get_private_key_from_stretched_exponent(mpk,for_change, n, secexp):
        order = generator_secp256k1.order()
        secexp = ( secexp + get_sequence(mpk,for_change, n) ) % order
        pk = number_to_string( secexp, generator_secp256k1.order() )
        compressed = False
        return SecretToASecret( pk, compressed )
        
def get_private_key(mpk,seed, sequence):
        for_change, n = sequence
        secexp = stretch_key(seed)
        pk = get_private_key_from_stretched_exponent(mpk,for_change, n, secexp)
        return pk;

def stretch_key(seed):
        oldseed = seed
        for i in range(100000):
            seed = hashlib.sha256(seed + oldseed).digest()
        return string_to_number( seed )

def public_key_to_bc_address(public_key):
    h160 = hash_160(public_key)
    return hash_160_to_bc_address(h160)

def SecretToASecret(secret, compressed=False, addrtype=0):
    vchIn = chr((addrtype+128)&255) + secret
    if compressed: vchIn += '\01'
    return EncodeBase58Check(vchIn)

def EncodeBase58Check(vchIn):
    hash = Hash(vchIn)
    return b58encode(vchIn + hash[0:4])

def b58encode(v):
    """ encode v, which is a string of bytes, to base58."""

    long_value = 0L
    for (i, c) in enumerate(v[::-1]):
        long_value += (256**i) * ord(c)
    result = ''
    while long_value >= __b58base:
        div, mod = divmod(long_value, __b58base)
        result = __b58chars[mod] + result
        long_value = div
    result = __b58chars[long_value] + result

    # Bitcoin does a little leading-zero-compression:
    # leading 0-bytes in the input become leading-1s
    nPad = 0
    for c in v:
        if c == '\0': nPad += 1
        else: break

    return (__b58chars[0]*nPad) + result

def hash_160(public_key):
    try:
        md = hashlib.new('ripemd160')
        md.update(sha256(public_key))
        return md.digest()
    except Exception:
        import ripemd
        md = ripemd.new(sha256(public_key))
        return md.digest()
    
def hash_160_to_bc_address(h160, addrtype = 0):
    vh160 = chr(addrtype) + h160
    h = Hash(vh160)
    addr = vh160 + h[0:4]
    return b58encode(addr)

__b58chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
__b58base = len(__b58chars)

##-------------------------------------------------------------------------------

words = [ "like", "just", "love", "know", "never", "want", "time", "out", "there", "make", "look", "eye", "down", "only", "think", "heart", "back", "then", "into", "about", "more", "away", "still", "them", "take", "thing", "even", "through", "long", "always", "world", "too", "friend", "tell", "try", "hand", "thought", "over", "here", "other", "need", "smile", "again", "much", "cry", "been", "night", "ever", "little", "said", "end", "some", "those", "around", "mind", "people", "girl", "leave", "dream", "left", "turn", "myself", "give", "nothing", "really", "off", "before", "something", "find", "walk", "wish", "good", "once", "place", "ask", "stop", "keep", "watch", "seem", "everything", "wait", "got", "yet", "made", "remember", "start", "alone", "run", "hope", "maybe", "believe", "body", "hate", "after", "close", "talk", "stand", "own", "each", "hurt", "help", "home", "god", "soul", "new", "many", "two", "inside", "should", "true", "first", "fear", "mean", "better", "play", "another", "gone", "change", "use", "wonder", "someone", "hair", "cold", "open", "best", "any", "behind", "happen", "water", "dark", "laugh", "stay", "forever", "name", "work", "show", "sky", "break", "came", "deep", "door", "put", "black", "together", "upon", "happy", "such", "great", "white", "matter", "fill", "past", "please", "burn", "cause", "enough", "touch", "moment", "soon", "voice", "scream", "anything", "stare", "sound", "red", "everyone", "hide", "kiss", "truth", "death", "beautiful", "mine", "blood", "broken", "very", "pass", "next", "forget", "tree", "wrong", "air", "mother", "understand", "lip", "hit", "wall", "memory", "sleep", "free", "high", "realize", "school", "might", "skin", "sweet", "perfect", "blue", "kill", "breath", "dance", "against", "fly", "between", "grow", "strong", "under", "listen", "bring", "sometimes", "speak", "pull", "person", "become", "family", "begin", "ground", "real", "small", "father", "sure", "feet", "rest", "young", "finally", "land", "across", "today", "different", "guy", "line", "fire", "reason", "reach", "second", "slowly", "write", "eat", "smell", "mouth", "step", "learn", "three", "floor", "promise", "breathe", "darkness", "push", "earth", "guess", "save", "song", "above", "along", "both", "color", "house", "almost", "sorry", "anymore", "brother", "okay", "dear", "game", "fade", "already", "apart", "warm", "beauty", "heard", "notice", "question", "shine", "began", "piece", "whole", "shadow", "secret", "street", "within", "finger", "point", "morning", "whisper", "child", "moon", "green", "story", "glass", "kid", "silence", "since", "soft", "yourself", "empty", "shall", "angel", "answer", "baby", "bright", "dad", "path", "worry", "hour", "drop", "follow", "power", "war", "half", "flow", "heaven", "act", "chance", "fact", "least", "tired", "children", "near", "quite", "afraid", "rise", "sea", "taste", "window", "cover", "nice", "trust", "lot", "sad", "cool", "force", "peace", "return", "blind", "easy", "ready", "roll", "rose", "drive", "held", "music", "beneath", "hang", "mom", "paint", "emotion", "quiet", "clear", "cloud", "few", "pretty", "bird", "outside", "paper", "picture", "front", "rock", "simple", "anyone", "meant", "reality", "road", "sense", "waste", "bit", "leaf", "thank", "happiness", "meet", "men", "smoke", "truly", "decide", "self", "age", "book", "form", "alive", "carry", "escape", "damn", "instead", "able", "ice", "minute", "throw", "catch", "leg", "ring", "course", "goodbye", "lead", "poem", "sick", "corner", "desire", "known", "problem", "remind", "shoulder", "suppose", "toward", "wave", "drink", "jump", "woman", "pretend", "sister", "week", "human", "joy", "crack", "grey", "pray", "surprise", "dry", "knee", "less", "search", "bleed", "caught", "clean", "embrace", "future", "king", "son", "sorrow", "chest", "hug", "remain", "sat", "worth", "blow", "daddy", "final", "parent", "tight", "also", "create", "lonely", "safe", "cross", "dress", "evil", "silent", "bone", "fate", "perhaps", "anger", "class", "scar", "snow", "tiny", "tonight", "continue", "control", "dog", "edge", "mirror", "month", "suddenly", "comfort", "given", "loud", "quickly", "gaze", "plan", "rush", "stone", "town", "battle", "ignore", "spirit", "stood", "stupid", "yours", "brown", "build", "dust", "hey", "kept", "pay", "phone", "twist", "although", "ball", "beyond", "hidden", "nose", "taken", "fail", "float", "pure", "somehow", "wash", "wrap", "angry", "cheek", "creature", "forgotten", "heat", "rip", "single", "space", "special", "weak", "whatever", "yell", "anyway", "blame", "job", "choose", "country", "curse", "drift", "echo", "figure", "grew", "laughter", "neck", "suffer", "worse", "yeah", "disappear", "foot", "forward", "knife", "mess", "somewhere", "stomach", "storm", "beg", "idea", "lift", "offer", "breeze", "field", "five", "often", "simply", "stuck", "win", "allow", "confuse", "enjoy", "except", "flower", "seek", "strength", "calm", "grin", "gun", "heavy", "hill", "large", "ocean", "shoe", "sigh", "straight", "summer", "tongue", "accept", "crazy", "everyday", "exist", "grass", "mistake", "sent", "shut", "surround", "table", "ache", "brain", "destroy", "heal", "nature", "shout", "sign", "stain", "choice", "doubt", "glance", "glow", "mountain", "queen", "stranger", "throat", "tomorrow", "city", "either", "fish", "flame", "rather", "shape", "spin", "spread", "ash", "distance", "finish", "image", "imagine", "important", "nobody", "shatter", "warmth", "became", "feed", "flesh", "funny", "lust", "shirt", "trouble", "yellow", "attention", "bare", "bite", "money", "protect", "amaze", "appear", "born", "choke", "completely", "daughter", "fresh", "friendship", "gentle", "probably", "six", "deserve", "expect", "grab", "middle", "nightmare", "river", "thousand", "weight", "worst", "wound", "barely", "bottle", "cream", "regret", "relationship", "stick", "test", "crush", "endless", "fault", "itself", "rule", "spill", "art", "circle", "join", "kick", "mask", "master", "passion", "quick", "raise", "smooth", "unless", "wander", "actually", "broke", "chair", "deal", "favorite", "gift", "note", "number", "sweat", "box", "chill", "clothes", "lady", "mark", "park", "poor", "sadness", "tie", "animal", "belong", "brush", "consume", "dawn", "forest", "innocent", "pen", "pride", "stream", "thick", "clay", "complete", "count", "draw", "faith", "press", "silver", "struggle", "surface", "taught", "teach", "wet", "bless", "chase", "climb", "enter", "letter", "melt", "metal", "movie", "stretch", "swing", "vision", "wife", "beside", "crash", "forgot", "guide", "haunt", "joke", "knock", "plant", "pour", "prove", "reveal", "steal", "stuff", "trip", "wood", "wrist", "bother", "bottom", "crawl", "crowd", "fix", "forgive", "frown", "grace", "loose", "lucky", "party", "release", "surely", "survive", "teacher", "gently", "grip", "speed", "suicide", "travel", "treat", "vein", "written", "cage", "chain", "conversation", "date", "enemy", "however", "interest", "million", "page", "pink", "proud", "sway", "themselves", "winter", "church", "cruel", "cup", "demon", "experience", "freedom", "pair", "pop", "purpose", "respect", "shoot", "softly", "state", "strange", "bar", "birth", "curl", "dirt", "excuse", "lord", "lovely", "monster", "order", "pack", "pants", "pool", "scene", "seven", "shame", "slide", "ugly", "among", "blade", "blonde", "closet", "creek", "deny", "drug", "eternity", "gain", "grade", "handle", "key", "linger", "pale", "prepare", "swallow", "swim", "tremble", "wheel", "won", "cast", "cigarette", "claim", "college", "direction", "dirty", "gather", "ghost", "hundred", "loss", "lung", "orange", "present", "swear", "swirl", "twice", "wild", "bitter", "blanket", "doctor", "everywhere", "flash", "grown", "knowledge", "numb", "pressure", "radio", "repeat", "ruin", "spend", "unknown", "buy", "clock", "devil", "early", "false", "fantasy", "pound", "precious", "refuse", "sheet", "teeth", "welcome", "add", "ahead", "block", "bury", "caress", "content", "depth", "despite", "distant", "marry", "purple", "threw", "whenever", "bomb", "dull", "easily", "grasp", "hospital", "innocence", "normal", "receive", "reply", "rhyme", "shade", "someday", "sword", "toe", "visit", "asleep", "bought", "center", "consider", "flat", "hero", "history", "ink", "insane", "muscle", "mystery", "pocket", "reflection", "shove", "silently", "smart", "soldier", "spot", "stress", "train", "type", "view", "whether", "bus", "energy", "explain", "holy", "hunger", "inch", "magic", "mix", "noise", "nowhere", "prayer", "presence", "shock", "snap", "spider", "study", "thunder", "trail", "admit", "agree", "bag", "bang", "bound", "butterfly", "cute", "exactly", "explode", "familiar", "fold", "further", "pierce", "reflect", "scent", "selfish", "sharp", "sink", "spring", "stumble", "universe", "weep", "women", "wonderful", "action", "ancient", "attempt", "avoid", "birthday", "branch", "chocolate", "core", "depress", "drunk", "especially", "focus", "fruit", "honest", "match", "palm", "perfectly", "pillow", "pity", "poison", "roar", "shift", "slightly", "thump", "truck", "tune", "twenty", "unable", "wipe", "wrote", "coat", "constant", "dinner", "drove", "egg", "eternal", "flight", "flood", "frame", "freak", "gasp", "glad", "hollow", "motion", "peer", "plastic", "root", "screen", "season", "sting", "strike", "team", "unlike", "victim", "volume", "warn", "weird", "attack", "await", "awake", "built", "charm", "crave", "despair", "fought", "grant", "grief", "horse", "limit", "message", "ripple", "sanity", "scatter", "serve", "split", "string", "trick", "annoy", "blur", "boat", "brave", "clearly", "cling", "connect", "fist", "forth", "imagination", "iron", "jock", "judge", "lesson", "milk", "misery", "nail", "naked", "ourselves", "poet", "possible", "princess", "sail", "size", "snake", "society", "stroke", "torture", "toss", "trace", "wise", "bloom", "bullet", "cell", "check", "cost", "darling", "during", "footstep", "fragile", "hallway", "hardly", "horizon", "invisible", "journey", "midnight", "mud", "nod", "pause", "relax", "shiver", "sudden", "value", "youth", "abuse", "admire", "blink", "breast", "bruise", "constantly", "couple", "creep", "curve", "difference", "dumb", "emptiness", "gotta", "honor", "plain", "planet", "recall", "rub", "ship", "slam", "soar", "somebody", "tightly", "weather", "adore", "approach", "bond", "bread", "burst", "candle", "coffee", "cousin", "crime", "desert", "flutter", "frozen", "grand", "heel", "hello", "language", "level", "movement", "pleasure", "powerful", "random", "rhythm", "settle", "silly", "slap", "sort", "spoken", "steel", "threaten", "tumble", "upset", "aside", "awkward", "bee", "blank", "board", "button", "card", "carefully", "complain", "crap", "deeply", "discover", "drag", "dread", "effort", "entire", "fairy", "giant", "gotten", "greet", "illusion", "jeans", "leap", "liquid", "march", "mend", "nervous", "nine", "replace", "rope", "spine", "stole", "terror", "accident", "apple", "balance", "boom", "childhood", "collect", "demand", "depression", "eventually", "faint", "glare", "goal", "group", "honey", "kitchen", "laid", "limb", "machine", "mere", "mold", "murder", "nerve", "painful", "poetry", "prince", "rabbit", "shelter", "shore", "shower", "soothe", "stair", "steady", "sunlight", "tangle", "tease", "treasure", "uncle", "begun", "bliss", "canvas", "cheer", "claw", "clutch", "commit", "crimson", "crystal", "delight", "doll", "existence", "express", "fog", "football", "gay", "goose", "guard", "hatred", "illuminate", "mass", "math", "mourn", "rich", "rough", "skip", "stir", "student", "style", "support", "thorn", "tough", "yard", "yearn", "yesterday", "advice", "appreciate", "autumn", "bank", "beam", "bowl", "capture", "carve", "collapse", "confusion", "creation", "dove", "feather", "girlfriend", "glory", "government", "harsh", "hop", "inner", "loser", "moonlight", "neighbor", "neither", "peach", "pig", "praise", "screw", "shield", "shimmer", "sneak", "stab", "subject", "throughout", "thrown", "tower", "twirl", "wow", "army", "arrive", "bathroom", "bump", "cease", "cookie", "couch", "courage", "dim", "guilt", "howl", "hum", "husband", "insult", "led", "lunch", "mock", "mostly", "natural", "nearly", "needle", "nerd", "peaceful", "perfection", "pile", "price", "remove", "roam", "sanctuary", "serious", "shiny", "shook", "sob", "stolen", "tap", "vain", "void", "warrior", "wrinkle", "affection", "apologize", "blossom", "bounce", "bridge", "cheap", "crumble", "decision", "descend", "desperately", "dig", "dot", "flip", "frighten", "heartbeat", "huge", "lazy", "lick", "odd", "opinion", "process", "puzzle", "quietly", "retreat", "score", "sentence", "separate", "situation", "skill", "soak", "square", "stray", "taint", "task", "tide", "underneath", "veil", "whistle", "anywhere", "bedroom", "bid", "bloody", "burden", "careful", "compare", "concern", "curtain", "decay", "defeat", "describe", "double", "dreamer", "driver", "dwell", "evening", "flare", "flicker", "grandma", "guitar", "harm", "horrible", "hungry", "indeed", "lace", "melody", "monkey", "nation", "object", "obviously", "rainbow", "salt", "scratch", "shown", "shy", "stage", "stun", "third", "tickle", "useless", "weakness", "worship", "worthless", "afternoon", "beard", "boyfriend", "bubble", "busy", "certain", "chin", "concrete", "desk", "diamond", "doom", "drawn", "due", "felicity", "freeze", "frost", "garden", "glide", "harmony", "hopefully", "hunt", "jealous", "lightning", "mama", "mercy", "peel", "physical", "position", "pulse", "punch", "quit", "rant", "respond", "salty", "sane", "satisfy", "savior", "sheep", "slept", "social", "sport", "tuck", "utter", "valley", "wolf", "aim", "alas", "alter", "arrow", "awaken", "beaten", "belief", "brand", "ceiling", "cheese", "clue", "confidence", "connection", "daily", "disguise", "eager", "erase", "essence", "everytime", "expression", "fan", "flag", "flirt", "foul", "fur", "giggle", "glorious", "ignorance", "law", "lifeless", "measure", "mighty", "muse", "north", "opposite", "paradise", "patience", "patient", "pencil", "petal", "plate", "ponder", "possibly", "practice", "slice", "spell", "stock", "strife", "strip", "suffocate", "suit", "tender", "tool", "trade", "velvet", "verse", "waist", "witch", "aunt", "bench", "bold", "cap", "certainly", "click", "companion", "creator", "dart", "delicate", "determine", "dish", "dragon", "drama", "drum", "dude", "everybody", "feast", "forehead", "former", "fright", "fully", "gas", "hook", "hurl", "invite", "juice", "manage", "moral", "possess", "raw", "rebel", "royal", "scale", "scary", "several", "slight", "stubborn", "swell", "talent", "tea", "terrible", "thread", "torment", "trickle", "usually", "vast", "violence", "weave", "acid", "agony", "ashamed", "awe", "belly", "blend", "blush", "character", "cheat", "common", "company", "coward", "creak", "danger", "deadly", "defense", "define", "depend", "desperate", "destination", "dew", "duck", "dusty", "embarrass", "engine", "example", "explore", "foe", "freely", "frustrate", "generation", "glove", "guilty", "health", "hurry", "idiot", "impossible", "inhale", "jaw", "kingdom", "mention", "mist", "moan", "mumble", "mutter", "observe", "ode", "pathetic", "pattern", "pie", "prefer", "puff", "rape", "rare", "revenge", "rude", "scrape", "spiral", "squeeze", "strain", "sunset", "suspend", "sympathy", "thigh", "throne", "total", "unseen", "weapon", "weary" ]

def mn_decode( wlist ):
    n=1626;
    out = ''
    for i in range(len(wlist)/3):
        word1, word2, word3 = wlist[3*i:3*i+3]
        w1 =  words.index(word1)
        w2 = (words.index(word2))%n
        w3 = (words.index(word3))%n
        x = w1 +n*((w2-w1)%n) +n*n*((w3-w2)%n)
        out += '%08x'%x
    return out

##--------------------------------------------------------------------------------



clue="1pP35yQkzWe9sPwxrfMS1AQEMoyQc91pa"


origseed=["constant", "forest", "adore", "false", "green", "weave", "stop", "guy", "fur", "freeze", "giggle", "clock"];




for x in range(0, 12):
   myseed=origseed[:];
   for y in range(0,1626):
variedword=words[y];

myseed2 = ""
myseed[x]=variedword;
     for i in myseed:
       myseed2 += str(i) + "  ";
       myseed2 = myseed2[:-1]
     print "Attempting seed: "+myseed2;
        seed=myseed2;
print " ";
plainseed=seed;
print "We're on seed word "+str(x+1)+" iteration "+str(y);
print " ";
seedlist=str.split(seed);
password = None;
seed=mn_decode(seedlist);
oldseed=seed;
newseed=stretch_key(seed);
curve = SECP256k1
master_private_key = ecdsa.SigningKey.from_secret_exponent( newseed, curve = SECP256k1 );
master_public_key = master_private_key.get_verifying_key().to_string().encode('hex');
mpk=master_public_key.decode('hex');
for ra in range(0,numberofreceivingaddresses):
foundseed=0;
addy=get_address(mpk,0,ra);
if addy==clue:
print "WOWWWWWWW!!! FOUND THE SEED!!!";
foundseed=1;
print plainseed;
if foundseed==1:
quit()

 

fitraok09
Legendary
*
Offline Offline

Activity: 1049
Merit: 1009

TRX: TCRKDukYt2zDie9vJDhToKrP3tyTV29U48


View Profile
December 30, 2016, 11:29:30 PM
 #2

hi. I like your project.. how to use it?
UGMZ
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile WWW
December 30, 2016, 11:35:02 PM
 #3

Also very interested in this project. Going to review the code and give this a test.

So far as I can see the code looks good!  Will report back once I've had a good test!

I could also see this being useful for longer brute force attacks with some modification.


Save the code in text editor as Seed.py
Run in terminal : python Seed.py and you should be away (linux instructions)


Code:
UGMZ@BlackOS:~/Desktop$ python seed.py
Attempting seed: like forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 0
 
Attempting seed: just forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 1
 
Attempting seed: love forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 2
 
Attempting seed: know forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 3
 
Attempting seed: never forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 4
 
Attempting seed: want forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 5
 
Attempting seed: time forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 6
 
Attempting seed: out forest adore false green weave stop guy fur freeze giggle clock
 
We're on seed word 1 iteration 7
 
WOWWWWWWW!!! FOUND THE SEED!!!
*************************************************************************

Working here... Good work
jonald_fyookball (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1004


Core dev leaves me neg feedback #abuse #political


View Profile
December 31, 2016, 03:57:58 AM
 #4

cool... im glad someone is using it.  

it was originally made if you wrote down your seed but you couldnt read
your own writing or something.

i dont know if this works for the newer electrum version (doubt it)

also dont bother trying to brute force electrum seeds from nothing, the combinations
are too great even for the strongest supercomputers (do the math if you dont believe me)

i also wrote another script that is a standalone key generator from electrum
seeds in case you are paraonoid that the electrum code won't work in
10 years or something... you can use that python code to do it. (check the forum for "standalone electrum")
or something

UGMZ
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile WWW
December 31, 2016, 02:46:26 PM
 #5

cool... im glad someone is using it.  

it was originally made if you wrote down your seed but you couldnt read
your own writing or something.

i dont know if this works for the newer electrum version (doubt it)

also dont bother trying to brute force electrum seeds from nothing, the combinations
are too great even for the strongest supercomputers (do the math if you dont believe me)

i also wrote another script that is a standalone key generator from electrum
seeds in case you are paraonoid that the electrum code won't work in
10 years or something... you can use that python code to do it. (check the forum for "standalone electrum")
or something

I'm sure this script will help those who have lost there or miswritten there seed down.

I would be very interested in seeing the other one for standalone.

I shall have a search and get back to you but this is fantastic work.

And written in my favorite language Python!
Cereberus
Legendary
*
Offline Offline

Activity: 910
Merit: 1000



View Profile
January 02, 2017, 06:06:07 PM
 #6



i dont know if this works for the newer electrum version (doubt it)



Great to hear it doesn't. I want to congratulate you at first but this tools in the wrong hands can make a massacre in the forum. A lot of persons have shown their addresses here and a hacker can play with the most common words usually in the seed.

Well personally I don't really care as I have ledger HW.1 but this is something dangerous if you ask me.




    ██    ██    ██    ██
  ██    ██    ██    ██
██    ██    ██    ██
              ██    ██
            ██    ██
          ██    ██
        ██    ██
      ██    ██       
    ██    ██    ██    ██
  ██    ██    ██    ██
██    ██    ██    ██
TRADEPLAYZ
█ 
█ 
█     
█  █
█  █ 
█  █ 
█  █
    █  █
  █  █
  █  █
        █
    █
      █   
TOURNAMENT PVP SYSTEM
  FACEBOOK |  TWITTER  |  LINKEDIN  |  TELEGRAM  |  GITHUB  |  ANN  | INSTAGRAM 

█ 
█ 
█     
█  █
█  █ 
█  █ 
█  █
    █  █
  █  █
  █  █
        █
    █
      █   

                     █▄
                     ████▄
                     ██████▄
                     ████████▄
                     ██████████▄
                     ████████████▄
                     ██████████████▄
                     ███████████████
                     ██████████████▀
                     ████████████▀
                     ██████████▀
                     ████████▀
                     ██████▀
                     ████▀
                     █
█▀
GOOGLE PLAY

                            ▄█████████████▄
                            ███████████████
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            █░░░░░░░░░░░░░█
                            ██████▀▀▀██████
                             ▀████▄▄▄▄████▀
  APPSTORE
kolloh
Legendary
*
Offline Offline

Activity: 1736
Merit: 1023


View Profile
January 03, 2017, 12:45:24 AM
 #7



i dont know if this works for the newer electrum version (doubt it)



Great to hear it doesn't. I want to congratulate you at first but this tools in the wrong hands can make a massacre in the forum. A lot of persons have shown their addresses here and a hacker can play with the most common words usually in the seed.

Well personally I don't really care as I have ledger HW.1 but this is something dangerous if you ask me.

I don't think you understand the purpose of this tool. You would need to have all the seed except for one wrong word for this to be useful. Noone ( in their right mind ) posts their seed or even partial seed on the forums. You can't use this to brute force an address just based on the public address. That simply isn't mathematically feasible.
jonald_fyookball (OP)
Legendary
*
Offline Offline

Activity: 1302
Merit: 1004


Core dev leaves me neg feedback #abuse #political


View Profile
January 03, 2017, 02:54:13 AM
 #8



i dont know if this works for the newer electrum version (doubt it)



Great to hear it doesn't. I want to congratulate you at first but this tools in the wrong hands can make a massacre in the forum. A lot of persons have shown their addresses here and a hacker can play with the most common words usually in the seed.

Well personally I don't really care as I have ledger HW.1 but this is something dangerous if you ask me.

I don't think you understand the purpose of this tool. You would need to have all the seed except for one wrong word for this to be useful. Noone ( in their right mind ) posts their seed or even partial seed on the forums. You can't use this to brute force an address just based on the public address. That simply isn't mathematically feasible.

yes, exactly..the tool is not dangerous is any way (unless someone is dumb enough to post their partial seed).

There is no such thing as 'the most common words usually in the seed' as each word has the same theoretical
chances of being chosen at random.


Bassgooch
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
May 02, 2018, 01:04:31 PM
 #9

Hello,

this is exactly situation where my friend is now. He is 14 words and one word is missing. Is it possible to use this tool for the waves platform? Can I do some changes in the code for working in the waves?

Thank you a lot!
bob123
Legendary
*
Offline Offline

Activity: 1624
Merit: 2481



View Profile WWW
May 02, 2018, 01:44:13 PM
 #10

Hello,

this is exactly situation where my friend is now. He is 14 words and one word is missing. Is it possible to use this tool for the waves platform? Can I do some changes in the code for working in the waves?

Thank you a lot!

Yes, you can change the code as you wish.
Just change the wordlist according to the required one and set the 13 words you know. Let it then iterate through the word list to find the missing word.

To make it a bit faster:
Instead of iterating all words a simple checksum can reduce the search space to 1/16 (with 12 word electrum seeds). This is a pretty decent increase in runtime.
Additionally it also speeds up the whole process if you remove the console output (I/O operations are expensive in terms of time).


adaseb
Legendary
*
Offline Offline

Activity: 3808
Merit: 1723



View Profile
May 03, 2018, 04:56:04 AM
 #11

How do the seeds work exactly ? From my understanding there are actually only 11 words and the last one is a type of checksum? So if you forget the last word it shouldn't be a problem.


Also just wondering why the program is so slow. Is it because Electrum uses some sort of algo such as BIP38 encrypt?

Or is it just not optimized ?

███████████████████████
███████████████████████
████████▀█▀████████████
████████████████████████
████████████████▀▀██████
████▀▀▀█████████████████
████████████▄▄▄▄███████
█████████████████▄▄▄████
█████████████████▀█████
████████████▀██▀████████
████████████████████████
███████████▄▄█████▄▄█████

███████████████████████
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
.
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██




██
██
██
██
██
██
██
██
██
████
████▀▀▀
▀▄
▌░░▐▌
█████▄▄█
████████▄
████████▌
███████
███████
██████
██████
█████
██




██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
.
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
.
..Play Now..
[
HCP
Legendary
*
Offline Offline

Activity: 2086
Merit: 4316

<insert witty quote here>


View Profile
May 03, 2018, 01:17:03 PM
 #12

How do the seeds work exactly ? From my understanding there are actually only 11 words and the last one is a type of checksum? So if you forget the last word it shouldn't be a problem.
Not quite... in BIP39, the last word in a seed is "part" checksum. For a 12 word seed this would be "7 bits entropy" + "4 bits checksum" to give the 11 bits for the 12th word.

Electrum is slightly different in how it goes about things... as it also adds a "seed version": http://docs.electrum.org/en/latest/seedphrase.html


Quote
Also just wondering why the program is so slow. Is it because Electrum uses some sort of algo such as BIP38 encrypt?
It might also be the Python libraries being used. I know that the "seedrecover" component of btcrecover is a LOT faster at brute forcing Electrum seeds. It will usually find one incorrect word in a matter of seconds/minutes (assuming the address you are testing against is in the first 10 addresses generated from the seed and you set the address generation limit to 10 etc)

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!