Pages:
Author

Topic: Come ritrovare parola mancante (Read 681 times)

legendary
Activity: 3724
Merit: 1738
Join the world-leading crypto sportsbook NOW!
July 19, 2019, 03:51:24 PM
#30
Secondo me riesci a recupeare l'LTC solo se la parola mancante era all'inizio o alla fine del seed, altrimenti davvero non ha senso sbattere la testa

Perché ? cosa cambia tra l'inizio/fine ed una qualsiasi posizione intermedia in termini probabilistici ?   Huh
(ovviamente a parità di numero di posizioni da provare, cioè che ne so la terza e la quarta al posto della prima e dell'ultima)



Quello che hai detto tra parentesi è correttissimo: ovvero se fossero solo 2 posizioni da provare (mentre generalmente se è una parola mancante nel mezzo, le alternative sono molte di più).
member
Activity: 168
Merit: 86
July 19, 2019, 04:05:50 AM
#29
Non ci crederete  Roll Eyes, ho fatto un ultimo disperato tentativo con tutti i pin che avrei potuto usare e finalmente l'ho trovato! Non ho idea del perché scelsi un pin impossibile da ricordare ma ce l'ho fatta! Comunque farò tesoro dei vostri consigli qualora dovesse capitare a qualcun'altro (io non farò mai più un errore del genere).
Ora mi sa che lo scambio per un milione di satoshi, o aspetto il dopo halving che è tra un paio di settimane, che dite voi?
legendary
Activity: 3570
Merit: 1985
July 06, 2019, 08:17:51 AM
#28
Grazie a tutti coloro che si sono impegnati per risolvere il mio problema! Sono stato sempre in giro così non ho tenuto sott'occhio la discussione, ma ci tengo a ringraziarvi per il vostro tempo! Io devo essere sincero non ci capisco molto di quello che avete scritto, un linguaggio che mi è alieno, perciò aspetterò che ltc abbia qualche zero in più e la ricompensa sarà più succosa ! Grazie ancora a tutti

bè, se non altro adesso sai che recuperare l'accesso è tecnicamente possibile Wink
member
Activity: 168
Merit: 86
July 06, 2019, 04:38:53 AM
#27
Grazie a tutti coloro che si sono impegnati per risolvere il mio problema! Sono stato sempre in giro così non ho tenuto sott'occhio la discussione, ma ci tengo a ringraziarvi per il vostro tempo! Io devo essere sincero non ci capisco molto di quello che avete scritto, un linguaggio che mi è alieno, perciò aspetterò che ltc abbia qualche zero in più e la ricompensa sarà più succosa ! Grazie ancora a tutti
hero member
Activity: 784
Merit: 1416
June 06, 2019, 05:06:35 AM
#26
Sono andato un pò avanti con un'implementazione in Python che riporto sotto alla fine del messaggio, i passaggi combaciano rispetto a block.io fino al punto in cui dovrebbe creare la chiave privata, ottengo correttamente il contenuto della variabile buffer


https://block.io/js/secure/bitcoinjs-3.3.2-custom.js linea 5637
Code:
ECPair.fromPassphrase = function (passphrase, options) {
  var buffer = new Buffer(passphrase, 'hex')
  options = options || {}
  buffer = bcrypto.sha256(buffer)
  var d = BigInteger.fromBuffer(buffer).mod(secp256k1.n)
  return new ECPair(d, null, {compressed: true, network: options.network || NETWORKS.bitcoin})
}

ma dopo non riesco a a capire cosa succede in questi due passaggi, ho provato a calcolare la chiave privata e poi quella pubblica con quello che avevo ma non ottengo lo stesso risultato:

Code:

var d = BigInteger.fromBuffer(buffer).mod(secp256k1.n)
return new ECPair(d, null, {compressed: true, network: options.network || NETWORKS.bitcoin})

Se qualcuno ha qualche idea  Undecided


Codice funzionante fino al punto sopra descritto
https://pastebin.com/awk67zqF

Code:
import mnemonic
import sys
import hashlib
import re
import pbkdf2
import os
import base64
import binascii
from Crypto.Protocol.KDF import PBKDF2
from Crypto.Hash import SHA256, HMAC
from Crypto.Cipher import AES

english = ["abandon", "ability", "able", "about", "above", "absent", "absorb", "abstract", "absurd", "abuse", "access", "accident", "account", "accuse", "achieve", "acid", "acoustic", "acquire", "across", "act", "action", "actor", "actress", "actual", "adapt", "add", "addict", "address", "adjust", "admit", "adult", "advance", "advice", "aerobic", "affair", "afford", "afraid", "again", "age", "agent", "agree", "ahead", "aim", "air", "airport", "aisle", "alarm", "album", "alcohol", "alert", "alien", "all", "alley", "allow", "almost", "alone", "alpha", "already", "also", "alter", "always", "amateur", "amazing", "among", "amount", "amused", "analyst", "anchor", "ancient", "anger", "angle", "angry", "animal", "ankle", "announce", "annual", "another", "answer", "antenna", "antique", "anxiety", "any", "apart", "apology", "appear", "apple", "approve", "april", "arch", "arctic", "area", "arena", "argue", "arm", "armed", "armor", "army", "around", "arrange", "arrest", "arrive", "arrow", "art", "artefact", "artist", "artwork", "ask", "aspect", "assault", "asset", "assist", "assume", "asthma", "athlete", "atom", "attack", "attend", "attitude", "attract", "auction", "audit", "august", "aunt", "author", "auto", "autumn", "average", "avocado", "avoid", "awake", "aware", "away", "awesome", "awful", "awkward", "axis", "baby", "bachelor", "bacon", "badge", "bag", "balance", "balcony", "ball", "bamboo", "banana", "banner", "bar", "barely", "bargain", "barrel", "base", "basic", "basket", "battle", "beach", "bean", "beauty", "because", "become", "beef", "before", "begin", "behave", "behind", "believe", "below", "belt", "bench", "benefit", "best", "betray", "better", "between", "beyond", "bicycle", "bid", "bike", "bind", "biology", "bird", "birth", "bitter", "black", "blade", "blame", "blanket", "blast", "bleak", "bless", "blind", "blood", "blossom", "blouse", "blue", "blur", "blush", "board", "boat", "body", "boil", "bomb", "bone", "bonus", "book", "boost", "border", "boring", "borrow", "boss", "bottom", "bounce", "box", "boy", "bracket", "brain", "brand", "brass", "brave", "bread", "breeze", "brick", "bridge", "brief", "bright", "bring", "brisk", "broccoli", "broken", "bronze", "broom", "brother", "brown", "brush", "bubble", "buddy", "budget", "buffalo", "build", "bulb", "bulk", "bullet", "bundle", "bunker", "burden", "burger", "burst", "bus", "business", "busy", "butter", "buyer", "buzz", "cabbage", "cabin", "cable", "cactus", "cage", "cake", "call", "calm", "camera", "camp", "can", "canal", "cancel", "candy", "cannon", "canoe", "canvas", "canyon", "capable", "capital", "captain", "car", "carbon", "card", "cargo", "carpet", "carry", "cart", "case", "cash", "casino", "castle", "casual", "cat", "catalog", "catch", "category", "cattle", "caught", "cause", "caution", "cave", "ceiling", "celery", "cement", "census", "century", "cereal", "certain", "chair", "chalk", "champion", "change", "chaos", "chapter", "charge", "chase", "chat", "cheap", "check", "cheese", "chef", "cherry", "chest", "chicken", "chief", "child", "chimney", "choice", "choose", "chronic", "chuckle", "chunk", "churn", "cigar", "cinnamon", "circle", "citizen", "city", "civil", "claim", "clap", "clarify", "claw", "clay", "clean", "clerk", "clever", "click", "client", "cliff", "climb", "clinic", "clip", "clock", "clog", "close", "cloth", "cloud", "clown", "club", "clump", "cluster", "clutch", "coach", "coast", "coconut", "code", "coffee", "coil", "coin", "collect", "color", "column", "combine", "come", "comfort", "comic", "common", "company", "concert", "conduct", "confirm", "congress", "connect", "consider", "control", "convince", "cook", "cool", "copper", "copy", "coral", "core", "corn", "correct", "cost", "cotton", "couch", "country", "couple", "course", "cousin", "cover", "coyote", "crack", "cradle", "craft", "cram", "crane", "crash", "crater", "crawl", "crazy", "cream", "credit", "creek", "crew", "cricket", "crime", "crisp", "critic", "crop", "cross", "crouch", "crowd", "crucial", "cruel", "cruise", "crumble", "crunch", "crush", "cry", "crystal", "cube", "culture", "cup", "cupboard", "curious", "current", "curtain", "curve", "cushion", "custom", "cute", "cycle", "dad", "damage", "damp", "dance", "danger", "daring", "dash", "daughter", "dawn", "day", "deal", "debate", "debris", "decade", "december", "decide", "decline", "decorate", "decrease", "deer", "defense", "define", "defy", "degree", "delay", "deliver", "demand", "demise", "denial", "dentist", "deny", "depart", "depend", "deposit", "depth", "deputy", "derive", "describe", "desert", "design", "desk", "despair", "destroy", "detail", "detect", "develop", "device", "devote", "diagram", "dial", "diamond", "diary", "dice", "diesel", "diet", "differ", "digital", "dignity", "dilemma", "dinner", "dinosaur", "direct", "dirt", "disagree", "discover", "disease", "dish", "dismiss", "disorder", "display", "distance", "divert", "divide", "divorce", "dizzy", "doctor", "document", "dog", "doll", "dolphin", "domain", "donate", "donkey", "donor", "door", "dose", "double", "dove", "draft", "dragon", "drama", "drastic", "draw", "dream", "dress", "drift", "drill", "drink", "drip", "drive", "drop", "drum", "dry", "duck", "dumb", "dune", "during", "dust", "dutch", "duty", "dwarf", "dynamic", "eager", "eagle", "early", "earn", "earth", "easily", "east", "easy", "echo", "ecology", "economy", "edge", "edit", "educate", "effort", "egg", "eight", "either", "elbow", "elder", "electric", "elegant", "element", "elephant", "elevator", "elite", "else", "embark", "embody", "embrace", "emerge", "emotion", "employ", "empower", "empty", "enable", "enact", "end", "endless", "endorse", "enemy", "energy", "enforce", "engage", "engine", "enhance", "enjoy", "enlist", "enough", "enrich", "enroll", "ensure", "enter", "entire", "entry", "envelope", "episode", "equal", "equip", "era", "erase", "erode", "erosion", "error", "erupt", "escape", "essay", "essence", "estate", "eternal", "ethics", "evidence", "evil", "evoke", "evolve", "exact", "example", "excess", "exchange", "excite", "exclude", "excuse", "execute", "exercise", "exhaust", "exhibit", "exile", "exist", "exit", "exotic", "expand", "expect", "expire", "explain", "expose", "express", "extend", "extra", "eye", "eyebrow", "fabric", "face", "faculty", "fade", "faint", "faith", "fall", "false", "fame", "family", "famous", "fan", "fancy", "fantasy", "farm", "fashion", "fat", "fatal", "father", "fatigue", "fault", "favorite", "feature", "february", "federal", "fee", "feed", "feel", "female", "fence", "festival", "fetch", "fever", "few", "fiber", "fiction", "field", "figure", "file", "film", "filter", "final", "find", "fine", "finger", "finish", "fire", "firm", "first", "fiscal", "fish", "fit", "fitness", "fix", "flag", "flame", "flash", "flat", "flavor", "flee", "flight", "flip", "float", "flock", "floor", "flower", "fluid", "flush", "fly", "foam", "focus", "fog", "foil", "fold", "follow", "food", "foot", "force", "forest", "forget", "fork", "fortune", "forum", "forward", "fossil", "foster", "found", "fox", "fragile", "frame", "frequent", "fresh", "friend", "fringe", "frog", "front", "frost", "frown", "frozen", "fruit", "fuel", "fun", "funny", "furnace", "fury", "future", "gadget", "gain", "galaxy", "gallery", "game", "gap", "garage", "garbage", "garden", "garlic", "garment", "gas", "gasp", "gate", "gather", "gauge", "gaze", "general", "genius", "genre", "gentle", "genuine", "gesture", "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "girl", "give", "glad", "glance", "glare", "glass", "glide", "glimpse", "globe", "gloom", "glory", "glove", "glow", "glue", "goat", "goddess", "gold", "good", "goose", "gorilla", "gospel", "gossip", "govern", "gown", "grab", "grace", "grain", "grant", "grape", "grass", "gravity", "great", "green", "grid", "grief", "grit", "grocery", "group", "grow", "grunt", "guard", "guess", "guide", "guilt", "guitar", "gun", "gym", "habit", "hair", "half", "hammer", "hamster", "hand", "happy", "harbor", "hard", "harsh", "harvest", "hat", "have", "hawk", "hazard", "head", "health", "heart", "heavy", "hedgehog", "height", "hello", "helmet", "help", "hen", "hero", "hidden", "high", "hill", "hint", "hip", "hire", "history", "hobby", "hockey", "hold", "hole", "holiday", "hollow", "home", "honey", "hood", "hope", "horn", "horror", "horse", "hospital", "host", "hotel", "hour", "hover", "hub", "huge", "human", "humble", "humor", "hundred", "hungry", "hunt", "hurdle", "hurry", "hurt", "husband", "hybrid", "ice", "icon", "idea", "identify", "idle", "ignore", "ill", "illegal", "illness", "image", "imitate", "immense", "immune", "impact", "impose", "improve", "impulse", "inch", "include", "income", "increase", "index", "indicate", "indoor", "industry", "infant", "inflict", "inform", "inhale", "inherit", "initial", "inject", "injury", "inmate", "inner", "innocent", "input", "inquiry", "insane", "insect", "inside", "inspire", "install", "intact", "interest", "into", "invest", "invite", "involve", "iron", "island", "isolate", "issue", "item", "ivory", "jacket", "jaguar", "jar", "jazz", "jealous", "jeans", "jelly", "jewel", "job", "join", "joke", "journey", "joy", "judge", "juice", "jump", "jungle", "junior", "junk", "just", "kangaroo", "keen", "keep", "ketchup", "key", "kick", "kid", "kidney", "kind", "kingdom", "kiss", "kit", "kitchen", "kite", "kitten", "kiwi", "knee", "knife", "knock", "know", "lab", "label", "labor", "ladder", "lady", "lake", "lamp", "language", "laptop", "large", "later", "latin", "laugh", "laundry", "lava", "law", "lawn", "lawsuit", "layer", "lazy", "leader", "leaf", "learn", "leave", "lecture", "left", "leg", "legal", "legend", "leisure", "lemon", "lend", "length", "lens", "leopard", "lesson", "letter", "level", "liar", "liberty", "library", "license", "life", "lift", "light", "like", "limb", "limit", "link", "lion", "liquid", "list", "little", "live", "lizard", "load", "loan", "lobster", "local", "lock", "logic", "lonely", "long", "loop", "lottery", "loud", "lounge", "love", "loyal", "lucky", "luggage", "lumber", "lunar", "lunch", "luxury", "lyrics", "machine", "mad", "magic", "magnet", "maid", "mail", "main", "major", "make", "mammal", "man", "manage", "mandate", "mango", "mansion", "manual", "maple", "marble", "march", "margin", "marine", "market", "marriage", "mask", "mass", "master", "match", "material", "math", "matrix", "matter", "maximum", "maze", "meadow", "mean", "measure", "meat", "mechanic", "medal", "media", "melody", "melt", "member", "memory", "mention", "menu", "mercy", "merge", "merit", "merry", "mesh", "message", "metal", "method", "middle", "midnight", "milk", "million", "mimic", "mind", "minimum", "minor", "minute", "miracle", "mirror", "misery", "miss", "mistake", "mix", "mixed", "mixture", "mobile", "model", "modify", "mom", "moment", "monitor", "monkey", "monster", "month", "moon", "moral", "more", "morning", "mosquito", "mother", "motion", "motor", "mountain", "mouse", "move", "movie", "much", "muffin", "mule", "multiply", "muscle", "museum", "mushroom", "music", "must", "mutual", "myself", "mystery", "myth", "naive", "name", "napkin", "narrow", "nasty", "nation", "nature", "near", "neck", "need", "negative", "neglect", "neither", "nephew", "nerve", "nest", "net", "network", "neutral", "never", "news", "next", "nice", "night", "noble", "noise", "nominee", "noodle", "normal", "north", "nose", "notable", "note", "nothing", "notice", "novel", "now", "nuclear", "number", "nurse", "nut", "oak", "obey", "object", "oblige", "obscure", "observe", "obtain", "obvious", "occur", "ocean", "october", "odor", "off", "offer", "office", "often", "oil", "okay", "old", "olive", "olympic", "omit", "once", "one", "onion", "online", "only", "open", "opera", "opinion", "oppose", "option", "orange", "orbit", "orchard", "order", "ordinary", "organ", "orient", "original", "orphan", "ostrich", "other", "outdoor", "outer", "output", "outside", "oval", "oven", "over", "own", "owner", "oxygen", "oyster", "ozone", "pact", "paddle", "page", "pair", "palace", "palm", "panda", "panel", "panic", "panther", "paper", "parade", "parent", "park", "parrot", "party", "pass", "patch", "path", "patient", "patrol", "pattern", "pause", "pave", "payment", "peace", "peanut", "pear", "peasant", "pelican", "pen", "penalty", "pencil", "people", "pepper", "perfect", "permit", "person", "pet", "phone", "photo", "phrase", "physical", "piano", "picnic", "picture", "piece", "pig", "pigeon", "pill", "pilot", "pink", "pioneer", "pipe", "pistol", "pitch", "pizza", "place", "planet", "plastic", "plate", "play", "please", "pledge", "pluck", "plug", "plunge", "poem", "poet", "point", "polar", "pole", "police", "pond", "pony", "pool", "popular", "portion", "position", "possible", "post", "potato", "pottery", "poverty", "powder", "power", "practice", "praise", "predict", "prefer", "prepare", "present", "pretty", "prevent", "price", "pride", "primary", "print", "priority", "prison", "private", "prize", "problem", "process", "produce", "profit", "program", "project", "promote", "proof", "property", "prosper", "protect", "proud", "provide", "public", "pudding", "pull", "pulp", "pulse", "pumpkin", "punch", "pupil", "puppy", "purchase", "purity", "purpose", "purse", "push", "put", "puzzle", "pyramid", "quality", "quantum", "quarter", "question", "quick", "quit", "quiz", "quote", "rabbit", "raccoon", "race", "rack", "radar", "radio", "rail", "rain", "raise", "rally", "ramp", "ranch", "random", "range", "rapid", "rare", "rate", "rather", "raven", "raw", "razor", "ready", "real", "reason", "rebel", "rebuild", "recall", "receive", "recipe", "record", "recycle", "reduce", "reflect", "reform", "refuse", "region", "regret", "regular", "reject", "relax", "release", "relief", "rely", "remain", "remember", "remind", "remove", "render", "renew", "rent", "reopen", "repair", "repeat", "replace", "report", "require", "rescue", "resemble", "resist", "resource", "response", "result", "retire", "retreat", "return", "reunion", "reveal", "review", "reward", "rhythm", "rib", "ribbon", "rice", "rich", "ride", "ridge", "rifle", "right", "rigid", "ring", "riot", "ripple", "risk", "ritual", "rival", "river", "road", "roast", "robot", "robust", "rocket", "romance", "roof", "rookie", "room", "rose", "rotate", "rough", "round", "route", "royal", "rubber", "rude", "rug", "rule", "run", "runway", "rural", "sad", "saddle", "sadness", "safe", "sail", "salad", "salmon", "salon", "salt", "salute", "same", "sample", "sand", "satisfy", "satoshi", "sauce", "sausage", "save", "say", "scale", "scan", "scare", "scatter", "scene", "scheme", "school", "science", "scissors", "scorpion", "scout", "scrap", "screen", "script", "scrub", "sea", "search", "season", "seat", "second", "secret", "section", "security", "seed", "seek", "segment", "select", "sell", "seminar", "senior", "sense", "sentence", "series", "service", "session", "settle", "setup", "seven", "shadow", "shaft", "shallow", "share", "shed", "shell", "sheriff", "shield", "shift", "shine", "ship", "shiver", "shock", "shoe", "shoot", "shop", "short", "shoulder", "shove", "shrimp", "shrug", "shuffle", "shy", "sibling", "sick", "side", "siege", "sight", "sign", "silent", "silk", "silly", "silver", "similar", "simple", "since", "sing", "siren", "sister", "situate", "six", "size", "skate", "sketch", "ski", "skill", "skin", "skirt", "skull", "slab", "slam", "sleep", "slender", "slice", "slide", "slight", "slim", "slogan", "slot", "slow", "slush", "small", "smart", "smile", "smoke", "smooth", "snack", "snake", "snap", "sniff", "snow", "soap", "soccer", "social", "sock", "soda", "soft", "solar", "soldier", "solid", "solution", "solve", "someone", "song", "soon", "sorry", "sort", "soul", "sound", "soup", "source", "south", "space", "spare", "spatial", "spawn", "speak", "special", "speed", "spell", "spend", "sphere", "spice", "spider", "spike", "spin", "spirit", "split", "spoil", "sponsor", "spoon", "sport", "spot", "spray", "spread", "spring", "spy", "square", "squeeze", "squirrel", "stable", "stadium", "staff", "stage", "stairs", "stamp", "stand", "start", "state", "stay", "steak", "steel", "stem", "step", "stereo", "stick", "still", "sting", "stock", "stomach", "stone", "stool", "story", "stove", "strategy", "street", "strike", "strong", "struggle", "student", "stuff", "stumble", "style", "subject", "submit", "subway", "success", "such", "sudden", "suffer", "sugar", "suggest", "suit", "summer", "sun", "sunny", "sunset", "super", "supply", "supreme", "sure", "surface", "surge", "surprise", "surround", "survey", "suspect", "sustain", "swallow", "swamp", "swap", "swarm", "swear", "sweet", "swift", "swim", "swing", "switch", "sword", "symbol", "symptom", "syrup", "system", "table", "tackle", "tag", "tail", "talent", "talk", "tank", "tape", "target", "task", "taste", "tattoo", "taxi", "teach", "team", "tell", "ten", "tenant", "tennis", "tent", "term", "test", "text", "thank", "that", "theme", "then", "theory", "there", "they", "thing", "this", "thought", "three", "thrive", "throw", "thumb", "thunder", "ticket", "tide", "tiger", "tilt", "timber", "time", "tiny", "tip", "tired", "tissue", "title", "toast", "tobacco", "today", "toddler", "toe", "together", "toilet", "token", "tomato", "tomorrow", "tone", "tongue", "tonight", "tool", "tooth", "top", "topic", "topple", "torch", "tornado", "tortoise", "toss", "total", "tourist", "toward", "tower", "town", "toy", "track", "trade", "traffic", "tragic", "train", "transfer", "trap", "trash", "travel", "tray", "treat", "tree", "trend", "trial", "tribe", "trick", "trigger", "trim", "trip", "trophy", "trouble", "truck", "true", "truly", "trumpet", "trust", "truth", "try", "tube", "tuition", "tumble", "tuna", "tunnel", "turkey", "turn", "turtle", "twelve", "twenty", "twice", "twin", "twist", "two", "type", "typical", "ugly", "umbrella", "unable", "unaware", "uncle", "uncover", "under", "undo", "unfair", "unfold", "unhappy", "uniform", "unique", "unit", "universe", "unknown", "unlock", "until", "unusual", "unveil", "update", "upgrade", "uphold", "upon", "upper", "upset", "urban", "urge", "usage", "use", "used", "useful", "useless", "usual", "utility", "vacant", "vacuum", "vague", "valid", "valley", "valve", "van", "vanish", "vapor", "various", "vast", "vault", "vehicle", "velvet", "vendor", "venture", "venue", "verb", "verify", "version", "very", "vessel", "veteran", "viable", "vibrant", "vicious", "victory", "video", "view", "village", "vintage", "violin", "virtual", "virus", "visa", "visit", "visual", "vital", "vivid", "vocal", "voice", "void", "volcano", "volume", "vote", "voyage", "wage", "wagon", "wait", "walk", "wall", "walnut", "want", "warfare", "warm", "warrior", "wash", "wasp", "waste", "water", "wave", "way", "wealth", "weapon", "wear", "weasel", "weather", "web", "wedding", "weekend", "weird", "welcome", "west", "wet", "whale", "what", "wheat", "wheel", "when", "where", "whip", "whisper", "wide", "width", "wife", "wild", "will", "win", "window", "wine", "wing", "wink", "winner", "winter", "wire", "wisdom", "wise", "wish", "witness", "wolf", "woman", "wonder", "wood", "wool", "word", "work", "world", "worry", "worth", "wrap", "wreck", "wrestle", "wrist", "write", "wrong", "yard", "year", "yellow", "you", "young", "youth", "zebra", "zero", "zone", "zoo"]

import os, binascii, hashlib, base58, ecdsa
def ripemd160(x):
    d = hashlib.new('ripemd160')
    d.update(x)
    return d
   
def generate_addr(seed):
   
    bytearray_seed = HexToByte(seed)
    seed_hash = hashlib.sha256(bytearray_seed).digest()
    seed_hex = binascii.hexlify(seed_hash).decode()
    seed_fullkey = '80' + seed_hex # till here is fine
       
def ByteToHex( byteStr ):
    return ''.join( [ "%02X " % ord( x ) for x in byteStr ] ).strip()

def HexToByte( hexStr ):
    bytes = []

    hexStr = ''.join( hexStr.split(" ") )

    for i in range(0, len(hexStr), 2):
        bytes.append( chr( int (hexStr[i:i+2], 16 ) ) )

    return ''.join( bytes )

def entropy(words):
    entropystring=""
    wordlist= re.split(" ",words)
    for word in wordlist: 
      index=0
      for englishword in english:
        if englishword == word:
          entropystring += int_to_padded_binary(index,11)
          break
        index+=1   
    print("entropystring", entropystring)
    entropy_ex = binary_to_padded_hex(entropystring[:-4], 32)
    return entropy_ex

def int_to_padded_binary(num, padding):
    return bin(num)[2:].zfill(padding)

def binary_to_padded_hex(bin, padding):
    num = int(bin, 2)
    return '0x{0:0{1}x}'.format(num, padding)

def pinToAesKey(passphrase, isMnemonicSeed):
 
  mnemonicSeed = passphrase;

  if (isMnemonicSeed == False):
    mnemonicSeed = PBKDF2(
        passphrase,
        "",
        16, 2048/2, lambda p,s: HMAC.new(p,s,SHA256).digest())
    mnemonicSeed=ByteToHex(mnemonicSeed).replace(" ", "").lower()

  encryptionKey = PBKDF2(
      mnemonicSeed,
      "",
      32, 2048/2, lambda p,s: HMAC.new(p,s,SHA256).digest())
  encryptionKey = ByteToHex(encryptionKey).replace(" ", "").lower()

  print(encryptionKey)
  return encryptionKey

def decrypt(secret, passphrase, isMnemonic):
 
    HEX_KEY = pinToAesKey(passphrase, isMnemonic);
    key = HexToByte(HEX_KEY) 
    cipher = AES.new(key, AES.MODE_ECB) #CryptoJS.lib.CipherParams.create({ ciphertext: CryptoJS.enc.Base64.parse(b64ciph) });
    dec = cipher.decrypt(binascii.a2b_base64(secret).rstrip())            #dec = CryptoJS.AES.decrypt(cipher, key, { mode: CryptoJS.mode.ECB });
    dec = dec.replace("\x10","")
    print(dec)
    return dec;

m = mnemonic.Mnemonic('english')

mnemphrase = "bless wage during setup review cupboard symbol lake release coin live champion"
entropy_hex = entropy(mnemphrase)

print("Entropy hex:", entropy_hex)
print("Entropy:", entropy_hex[2:])

BTC_Seed =  "nCMd4GWsqRuakijg2EakDHTXuTow3jXfQfO38AU7c449/XPqgjTb+EEhyOPSazZtiQiCzpVKGUoPK2wgY6CkmjZDK/NC2KBB0rFEGF+OVtNSUqMUfwFQOkbm2E96rGiquH7FZPcoD8Gtcmk+qL+KBxQi2izx5aPUxLWVux8QCogPvagMUe/FfIp0jcxipS4b"
seed = decrypt(BTC_Seed,
        entropy_hex[2:],
        True)

generate_addr(seed)

#key = bitcoin.ECPair.fromPassphrase(seed);
#pubkey = key.getPublicKeyBuffer().toString('hex');

#if ("" != pubkey):
#  print("Confirmed")
#else:
#  print("wrong")


#Secrets:
#BTC: "nCMd4GWsqRuakijg2EakDHTXuTow3jXfQfO38AU7c449/XPqgjTb+EEhyOPSazZtiQiCzpVKGUoPK2wgY6CkmjZDK/NC2KBB0rFEGF+OVtNSUqMUfwFQOkbm2E96rGiquH7FZPcoD8Gtcmk+qL+KBxQi2izx5aPUxLWVux8QCogPvagMUe/FfIp0jcxipS4b"
#BTCTEST: "0pY865pVLLWaNB3I/jT0SgeJIY4qAw1tQGhvS/gdbgVThZlqnNGY3DFBNg8PNYatkUEr9ZnAiHlo0oBFyxu4OPfi9oeQAZFzwuisPHmXLJHaadGnYJ1cHoW3lJWhc8SKjvZrPpsigi+uEMy8AOxwQR7fTjoZTMVyxWhGQM6WDLsPvagMUe/FfIp0jcxipS4b"
#DOGE: "omykSzqJgNHerzNmoc2NP7F6IvrpFzFkSCTaGp2QH/Rb0kNuDK2CI0Wnb7ASn4pYSpIWpS6BSV4gnImcehKGim1mGJvvsDBNrI9pT/W8WYOwPoJ5jpDOempdBAYrNFfdeY1yeJFVbUuOq3dlh8M0NQ5p1LF88RDyRjQPxS/4HRoPvagMUe/FfIp0jcxipS4b"
#DOGETEST: "IZGNvTWVKzRWRWqW6K/tBCf8FmqSRkU+uR5o2CpqTdC8bav/tevrWaF1fHcxLimS8Oo40qYtVFSuGcUwnosIVmE1GedOBeKn/fKpwQS/h9ikf6GwTPNIzmNG4gofqCdrLl89xA3/HkdvBp+Q7UIunrmQnXVOp4/O1aSLhuUW8iUPvagMUe/FfIp0jcxipS4b"
#LTC: "iS1FZUclmSpgD+bBwo0brz59JYkojs85e1rPQheYw2TK0WGHLZc7bULBCEz6ecm5I5doXoVGkXxUVpK/WY6mwvbctb/KZHrSeiuQoMJlzmwVp+XUQuDGTQhwROA64BNCYDssDZqhJ59rM8PfrGtaealPNGmjdOv2cdCS8vsuyGwPvagMUe/FfIp0jcxipS4b"
#LTCTEST: "EH+XfwynUa8RmI8ydAAv3vuZjnMHY4/zc+VappgDpPTAL+m6bCqbqBwsyHxrMuWdm/ae0xqX+g2j/ZWWfP3/R7/sVOPqZsyN7kihG1nBJjsOtfbT910kgj9VWaWVOVGtyN8JdIcZrUcKcW62FbaB/T9O5Va57fu1yRl/P4nPQsgPvagMUe/FfIp0jcxipS4b"

#Pubkeys:
#BTC: "039f6f9b10655797a1c365e36b4717c478236fcee9339c17e9b69fb0b38d47b9ba"
#BTCTEST: "03807de6cd7742c0b869a162b024bd9f35fae0bdf193f0d69cbdc081427d0249ec"
#DOGE: "02952ce4a6f811230a5dc31d1321f8fdf87c5cef07bd2d18a4ea63f53fff224380"
#DOGETEST: "026396883cb101457973f34ff9e4aa6f776abf62513959b6cf79e0d26856bcb9ff"
#LTC: "027e68e7a853d469913c1e175321de0eee687c9f0bffce0e23e4a1ed885c497e7b"
#LTCTEST: "02e3713c13e1cfab1298d15b3b2748d1ef943a960d8629b98cc36ff05706cb8a2d"
legendary
Activity: 3570
Merit: 1985
June 04, 2019, 06:13:26 AM
#25
no, il codice nella pagina funziona così: dal seed calcola il pin, il pin è poi usato per decrittare un altro seed, da cui sono ricavate le chiavi. Il check è sulla corrispondenza delle chiavi pubbliche (presenti in campi hidden del form) con quelle calcolate col secondo seed.
La modifica che ho fatto io è un semplice ciclo sul primo seed, che prova tutte le combinazioni con l'ultima parola cambiata

oggi ho provato a debuggare un pò il codice da chrome e ho capito un po meglio cosa fà, per curiosità domani (tempo permettendo) vedo se si riesce a fare la stessa cosa al di fuori, ad esempio con python, visto che effettivamente ti da già tutto quello che serve per verificare se la sequenza mnemonica è corretta.

chiaro, trovi librerie crittografiche open source per fare tutto, il più è avere tempo da perderci... io al momento non ne ho purtroppo
hero member
Activity: 784
Merit: 1416
June 03, 2019, 01:56:57 PM
#24
no, il codice nella pagina funziona così: dal seed calcola il pin, il pin è poi usato per decrittare un altro seed, da cui sono ricavate le chiavi. Il check è sulla corrispondenza delle chiavi pubbliche (presenti in campi hidden del form) con quelle calcolate col secondo seed.
La modifica che ho fatto io è un semplice ciclo sul primo seed, che prova tutte le combinazioni con l'ultima parola cambiata

oggi ho provato a debuggare un pò il codice da chrome e ho capito un po meglio cosa fà, per curiosità domani (tempo permettendo) vedo se si riesce a fare la stessa cosa al di fuori, ad esempio con python, visto che effettivamente ti da già tutto quello che serve per verificare se la sequenza mnemonica è corretta.
legendary
Activity: 3570
Merit: 1985
June 02, 2019, 11:06:54 AM
#23
L'op non ha il pin quindi penso sia il massimo che si può fare, se non sbaglio il codice modificato di quel sito assume che tu lo abbia giusto?


no, il codice nella pagina funziona così: dal seed calcola il pin, il pin è poi usato per decrittare un altro seed, da cui sono ricavate le chiavi. Il check è sulla corrispondenza delle chiavi pubbliche (presenti in campi hidden del form) con quelle calcolate col secondo seed.
La modifica che ho fatto io è un semplice ciclo sul primo seed, che prova tutte le combinazioni con l'ultima parola cambiata
hero member
Activity: 784
Merit: 1416
June 02, 2019, 10:14:59 AM
#22
L'op non ha il pin quindi penso sia il massimo che si può fare, se non sbaglio il codice modificato di quel sito assume che tu lo abbia giusto?

legendary
Activity: 3570
Merit: 1985
June 02, 2019, 09:05:33 AM
#21
hero member
Activity: 784
Merit: 1416
June 02, 2019, 05:24:17 AM
#20
ci si può anche aiutare con questo codice in python per verificare quale combinazioni sono corrette (tutto aiuta  Smiley), ci mette pochi secondi:

Code:
import mnemonic

english = ["abandon", "ability", "able", "about", "above", "absent", "absorb", "abstract", "absurd", "abuse", "access", "accident", "account", "accuse", "achieve", "acid", "acoustic", "acquire", "across", "act", "action", "actor", "actress", "actual", "adapt", "add", "addict", "address", "adjust", "admit", "adult", "advance", "advice", "aerobic", "affair", "afford", "afraid", "again", "age", "agent", "agree", "ahead", "aim", "air", "airport", "aisle", "alarm", "album", "alcohol", "alert", "alien", "all", "alley", "allow", "almost", "alone", "alpha", "already", "also", "alter", "always", "amateur", "amazing", "among", "amount", "amused", "analyst", "anchor", "ancient", "anger", "angle", "angry", "animal", "ankle", "announce", "annual", "another", "answer", "antenna", "antique", "anxiety", "any", "apart", "apology", "appear", "apple", "approve", "april", "arch", "arctic", "area", "arena", "argue", "arm", "armed", "armor", "army", "around", "arrange", "arrest", "arrive", "arrow", "art", "artefact", "artist", "artwork", "ask", "aspect", "assault", "asset", "assist", "assume", "asthma", "athlete", "atom", "attack", "attend", "attitude", "attract", "auction", "audit", "august", "aunt", "author", "auto", "autumn", "average", "avocado", "avoid", "awake", "aware", "away", "awesome", "awful", "awkward", "axis", "baby", "bachelor", "bacon", "badge", "bag", "balance", "balcony", "ball", "bamboo", "banana", "banner", "bar", "barely", "bargain", "barrel", "base", "basic", "basket", "battle", "beach", "bean", "beauty", "because", "become", "beef", "before", "begin", "behave", "behind", "believe", "below", "belt", "bench", "benefit", "best", "betray", "better", "between", "beyond", "bicycle", "bid", "bike", "bind", "biology", "bird", "birth", "bitter", "black", "blade", "blame", "blanket", "blast", "bleak", "bless", "blind", "blood", "blossom", "blouse", "blue", "blur", "blush", "board", "boat", "body", "boil", "bomb", "bone", "bonus", "book", "boost", "border", "boring", "borrow", "boss", "bottom", "bounce", "box", "boy", "bracket", "brain", "brand", "brass", "brave", "bread", "breeze", "brick", "bridge", "brief", "bright", "bring", "brisk", "broccoli", "broken", "bronze", "broom", "brother", "brown", "brush", "bubble", "buddy", "budget", "buffalo", "build", "bulb", "bulk", "bullet", "bundle", "bunker", "burden", "burger", "burst", "bus", "business", "busy", "butter", "buyer", "buzz", "cabbage", "cabin", "cable", "cactus", "cage", "cake", "call", "calm", "camera", "camp", "can", "canal", "cancel", "candy", "cannon", "canoe", "canvas", "canyon", "capable", "capital", "captain", "car", "carbon", "card", "cargo", "carpet", "carry", "cart", "case", "cash", "casino", "castle", "casual", "cat", "catalog", "catch", "category", "cattle", "caught", "cause", "caution", "cave", "ceiling", "celery", "cement", "census", "century", "cereal", "certain", "chair", "chalk", "champion", "change", "chaos", "chapter", "charge", "chase", "chat", "cheap", "check", "cheese", "chef", "cherry", "chest", "chicken", "chief", "child", "chimney", "choice", "choose", "chronic", "chuckle", "chunk", "churn", "cigar", "cinnamon", "circle", "citizen", "city", "civil", "claim", "clap", "clarify", "claw", "clay", "clean", "clerk", "clever", "click", "client", "cliff", "climb", "clinic", "clip", "clock", "clog", "close", "cloth", "cloud", "clown", "club", "clump", "cluster", "clutch", "coach", "coast", "coconut", "code", "coffee", "coil", "coin", "collect", "color", "column", "combine", "come", "comfort", "comic", "common", "company", "concert", "conduct", "confirm", "congress", "connect", "consider", "control", "convince", "cook", "cool", "copper", "copy", "coral", "core", "corn", "correct", "cost", "cotton", "couch", "country", "couple", "course", "cousin", "cover", "coyote", "crack", "cradle", "craft", "cram", "crane", "crash", "crater", "crawl", "crazy", "cream", "credit", "creek", "crew", "cricket", "crime", "crisp", "critic", "crop", "cross", "crouch", "crowd", "crucial", "cruel", "cruise", "crumble", "crunch", "crush", "cry", "crystal", "cube", "culture", "cup", "cupboard", "curious", "current", "curtain", "curve", "cushion", "custom", "cute", "cycle", "dad", "damage", "damp", "dance", "danger", "daring", "dash", "daughter", "dawn", "day", "deal", "debate", "debris", "decade", "december", "decide", "decline", "decorate", "decrease", "deer", "defense", "define", "defy", "degree", "delay", "deliver", "demand", "demise", "denial", "dentist", "deny", "depart", "depend", "deposit", "depth", "deputy", "derive", "describe", "desert", "design", "desk", "despair", "destroy", "detail", "detect", "develop", "device", "devote", "diagram", "dial", "diamond", "diary", "dice", "diesel", "diet", "differ", "digital", "dignity", "dilemma", "dinner", "dinosaur", "direct", "dirt", "disagree", "discover", "disease", "dish", "dismiss", "disorder", "display", "distance", "divert", "divide", "divorce", "dizzy", "doctor", "document", "dog", "doll", "dolphin", "domain", "donate", "donkey", "donor", "door", "dose", "double", "dove", "draft", "dragon", "drama", "drastic", "draw", "dream", "dress", "drift", "drill", "drink", "drip", "drive", "drop", "drum", "dry", "duck", "dumb", "dune", "during", "dust", "dutch", "duty", "dwarf", "dynamic", "eager", "eagle", "early", "earn", "earth", "easily", "east", "easy", "echo", "ecology", "economy", "edge", "edit", "educate", "effort", "egg", "eight", "either", "elbow", "elder", "electric", "elegant", "element", "elephant", "elevator", "elite", "else", "embark", "embody", "embrace", "emerge", "emotion", "employ", "empower", "empty", "enable", "enact", "end", "endless", "endorse", "enemy", "energy", "enforce", "engage", "engine", "enhance", "enjoy", "enlist", "enough", "enrich", "enroll", "ensure", "enter", "entire", "entry", "envelope", "episode", "equal", "equip", "era", "erase", "erode", "erosion", "error", "erupt", "escape", "essay", "essence", "estate", "eternal", "ethics", "evidence", "evil", "evoke", "evolve", "exact", "example", "excess", "exchange", "excite", "exclude", "excuse", "execute", "exercise", "exhaust", "exhibit", "exile", "exist", "exit", "exotic", "expand", "expect", "expire", "explain", "expose", "express", "extend", "extra", "eye", "eyebrow", "fabric", "face", "faculty", "fade", "faint", "faith", "fall", "false", "fame", "family", "famous", "fan", "fancy", "fantasy", "farm", "fashion", "fat", "fatal", "father", "fatigue", "fault", "favorite", "feature", "february", "federal", "fee", "feed", "feel", "female", "fence", "festival", "fetch", "fever", "few", "fiber", "fiction", "field", "figure", "file", "film", "filter", "final", "find", "fine", "finger", "finish", "fire", "firm", "first", "fiscal", "fish", "fit", "fitness", "fix", "flag", "flame", "flash", "flat", "flavor", "flee", "flight", "flip", "float", "flock", "floor", "flower", "fluid", "flush", "fly", "foam", "focus", "fog", "foil", "fold", "follow", "food", "foot", "force", "forest", "forget", "fork", "fortune", "forum", "forward", "fossil", "foster", "found", "fox", "fragile", "frame", "frequent", "fresh", "friend", "fringe", "frog", "front", "frost", "frown", "frozen", "fruit", "fuel", "fun", "funny", "furnace", "fury", "future", "gadget", "gain", "galaxy", "gallery", "game", "gap", "garage", "garbage", "garden", "garlic", "garment", "gas", "gasp", "gate", "gather", "gauge", "gaze", "general", "genius", "genre", "gentle", "genuine", "gesture", "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "girl", "give", "glad", "glance", "glare", "glass", "glide", "glimpse", "globe", "gloom", "glory", "glove", "glow", "glue", "goat", "goddess", "gold", "good", "goose", "gorilla", "gospel", "gossip", "govern", "gown", "grab", "grace", "grain", "grant", "grape", "grass", "gravity", "great", "green", "grid", "grief", "grit", "grocery", "group", "grow", "grunt", "guard", "guess", "guide", "guilt", "guitar", "gun", "gym", "habit", "hair", "half", "hammer", "hamster", "hand", "happy", "harbor", "hard", "harsh", "harvest", "hat", "have", "hawk", "hazard", "head", "health", "heart", "heavy", "hedgehog", "height", "hello", "helmet", "help", "hen", "hero", "hidden", "high", "hill", "hint", "hip", "hire", "history", "hobby", "hockey", "hold", "hole", "holiday", "hollow", "home", "honey", "hood", "hope", "horn", "horror", "horse", "hospital", "host", "hotel", "hour", "hover", "hub", "huge", "human", "humble", "humor", "hundred", "hungry", "hunt", "hurdle", "hurry", "hurt", "husband", "hybrid", "ice", "icon", "idea", "identify", "idle", "ignore", "ill", "illegal", "illness", "image", "imitate", "immense", "immune", "impact", "impose", "improve", "impulse", "inch", "include", "income", "increase", "index", "indicate", "indoor", "industry", "infant", "inflict", "inform", "inhale", "inherit", "initial", "inject", "injury", "inmate", "inner", "innocent", "input", "inquiry", "insane", "insect", "inside", "inspire", "install", "intact", "interest", "into", "invest", "invite", "involve", "iron", "island", "isolate", "issue", "item", "ivory", "jacket", "jaguar", "jar", "jazz", "jealous", "jeans", "jelly", "jewel", "job", "join", "joke", "journey", "joy", "judge", "juice", "jump", "jungle", "junior", "junk", "just", "kangaroo", "keen", "keep", "ketchup", "key", "kick", "kid", "kidney", "kind", "kingdom", "kiss", "kit", "kitchen", "kite", "kitten", "kiwi", "knee", "knife", "knock", "know", "lab", "label", "labor", "ladder", "lady", "lake", "lamp", "language", "laptop", "large", "later", "latin", "laugh", "laundry", "lava", "law", "lawn", "lawsuit", "layer", "lazy", "leader", "leaf", "learn", "leave", "lecture", "left", "leg", "legal", "legend", "leisure", "lemon", "lend", "length", "lens", "leopard", "lesson", "letter", "level", "liar", "liberty", "library", "license", "life", "lift", "light", "like", "limb", "limit", "link", "lion", "liquid", "list", "little", "live", "lizard", "load", "loan", "lobster", "local", "lock", "logic", "lonely", "long", "loop", "lottery", "loud", "lounge", "love", "loyal", "lucky", "luggage", "lumber", "lunar", "lunch", "luxury", "lyrics", "machine", "mad", "magic", "magnet", "maid", "mail", "main", "major", "make", "mammal", "man", "manage", "mandate", "mango", "mansion", "manual", "maple", "marble", "march", "margin", "marine", "market", "marriage", "mask", "mass", "master", "match", "material", "math", "matrix", "matter", "maximum", "maze", "meadow", "mean", "measure", "meat", "mechanic", "medal", "media", "melody", "melt", "member", "memory", "mention", "menu", "mercy", "merge", "merit", "merry", "mesh", "message", "metal", "method", "middle", "midnight", "milk", "million", "mimic", "mind", "minimum", "minor", "minute", "miracle", "mirror", "misery", "miss", "mistake", "mix", "mixed", "mixture", "mobile", "model", "modify", "mom", "moment", "monitor", "monkey", "monster", "month", "moon", "moral", "more", "morning", "mosquito", "mother", "motion", "motor", "mountain", "mouse", "move", "movie", "much", "muffin", "mule", "multiply", "muscle", "museum", "mushroom", "music", "must", "mutual", "myself", "mystery", "myth", "naive", "name", "napkin", "narrow", "nasty", "nation", "nature", "near", "neck", "need", "negative", "neglect", "neither", "nephew", "nerve", "nest", "net", "network", "neutral", "never", "news", "next", "nice", "night", "noble", "noise", "nominee", "noodle", "normal", "north", "nose", "notable", "note", "nothing", "notice", "novel", "now", "nuclear", "number", "nurse", "nut", "oak", "obey", "object", "oblige", "obscure", "observe", "obtain", "obvious", "occur", "ocean", "october", "odor", "off", "offer", "office", "often", "oil", "okay", "old", "olive", "olympic", "omit", "once", "one", "onion", "online", "only", "open", "opera", "opinion", "oppose", "option", "orange", "orbit", "orchard", "order", "ordinary", "organ", "orient", "original", "orphan", "ostrich", "other", "outdoor", "outer", "output", "outside", "oval", "oven", "over", "own", "owner", "oxygen", "oyster", "ozone", "pact", "paddle", "page", "pair", "palace", "palm", "panda", "panel", "panic", "panther", "paper", "parade", "parent", "park", "parrot", "party", "pass", "patch", "path", "patient", "patrol", "pattern", "pause", "pave", "payment", "peace", "peanut", "pear", "peasant", "pelican", "pen", "penalty", "pencil", "people", "pepper", "perfect", "permit", "person", "pet", "phone", "photo", "phrase", "physical", "piano", "picnic", "picture", "piece", "pig", "pigeon", "pill", "pilot", "pink", "pioneer", "pipe", "pistol", "pitch", "pizza", "place", "planet", "plastic", "plate", "play", "please", "pledge", "pluck", "plug", "plunge", "poem", "poet", "point", "polar", "pole", "police", "pond", "pony", "pool", "popular", "portion", "position", "possible", "post", "potato", "pottery", "poverty", "powder", "power", "practice", "praise", "predict", "prefer", "prepare", "present", "pretty", "prevent", "price", "pride", "primary", "print", "priority", "prison", "private", "prize", "problem", "process", "produce", "profit", "program", "project", "promote", "proof", "property", "prosper", "protect", "proud", "provide", "public", "pudding", "pull", "pulp", "pulse", "pumpkin", "punch", "pupil", "puppy", "purchase", "purity", "purpose", "purse", "push", "put", "puzzle", "pyramid", "quality", "quantum", "quarter", "question", "quick", "quit", "quiz", "quote", "rabbit", "raccoon", "race", "rack", "radar", "radio", "rail", "rain", "raise", "rally", "ramp", "ranch", "random", "range", "rapid", "rare", "rate", "rather", "raven", "raw", "razor", "ready", "real", "reason", "rebel", "rebuild", "recall", "receive", "recipe", "record", "recycle", "reduce", "reflect", "reform", "refuse", "region", "regret", "regular", "reject", "relax", "release", "relief", "rely", "remain", "remember", "remind", "remove", "render", "renew", "rent", "reopen", "repair", "repeat", "replace", "report", "require", "rescue", "resemble", "resist", "resource", "response", "result", "retire", "retreat", "return", "reunion", "reveal", "review", "reward", "rhythm", "rib", "ribbon", "rice", "rich", "ride", "ridge", "rifle", "right", "rigid", "ring", "riot", "ripple", "risk", "ritual", "rival", "river", "road", "roast", "robot", "robust", "rocket", "romance", "roof", "rookie", "room", "rose", "rotate", "rough", "round", "route", "royal", "rubber", "rude", "rug", "rule", "run", "runway", "rural", "sad", "saddle", "sadness", "safe", "sail", "salad", "salmon", "salon", "salt", "salute", "same", "sample", "sand", "satisfy", "satoshi", "sauce", "sausage", "save", "say", "scale", "scan", "scare", "scatter", "scene", "scheme", "school", "science", "scissors", "scorpion", "scout", "scrap", "screen", "script", "scrub", "sea", "search", "season", "seat", "second", "secret", "section", "security", "seed", "seek", "segment", "select", "sell", "seminar", "senior", "sense", "sentence", "series", "service", "session", "settle", "setup", "seven", "shadow", "shaft", "shallow", "share", "shed", "shell", "sheriff", "shield", "shift", "shine", "ship", "shiver", "shock", "shoe", "shoot", "shop", "short", "shoulder", "shove", "shrimp", "shrug", "shuffle", "shy", "sibling", "sick", "side", "siege", "sight", "sign", "silent", "silk", "silly", "silver", "similar", "simple", "since", "sing", "siren", "sister", "situate", "six", "size", "skate", "sketch", "ski", "skill", "skin", "skirt", "skull", "slab", "slam", "sleep", "slender", "slice", "slide", "slight", "slim", "slogan", "slot", "slow", "slush", "small", "smart", "smile", "smoke", "smooth", "snack", "snake", "snap", "sniff", "snow", "soap", "soccer", "social", "sock", "soda", "soft", "solar", "soldier", "solid", "solution", "solve", "someone", "song", "soon", "sorry", "sort", "soul", "sound", "soup", "source", "south", "space", "spare", "spatial", "spawn", "speak", "special", "speed", "spell", "spend", "sphere", "spice", "spider", "spike", "spin", "spirit", "split", "spoil", "sponsor", "spoon", "sport", "spot", "spray", "spread", "spring", "spy", "square", "squeeze", "squirrel", "stable", "stadium", "staff", "stage", "stairs", "stamp", "stand", "start", "state", "stay", "steak", "steel", "stem", "step", "stereo", "stick", "still", "sting", "stock", "stomach", "stone", "stool", "story", "stove", "strategy", "street", "strike", "strong", "struggle", "student", "stuff", "stumble", "style", "subject", "submit", "subway", "success", "such", "sudden", "suffer", "sugar", "suggest", "suit", "summer", "sun", "sunny", "sunset", "super", "supply", "supreme", "sure", "surface", "surge", "surprise", "surround", "survey", "suspect", "sustain", "swallow", "swamp", "swap", "swarm", "swear", "sweet", "swift", "swim", "swing", "switch", "sword", "symbol", "symptom", "syrup", "system", "table", "tackle", "tag", "tail", "talent", "talk", "tank", "tape", "target", "task", "taste", "tattoo", "taxi", "teach", "team", "tell", "ten", "tenant", "tennis", "tent", "term", "test", "text", "thank", "that", "theme", "then", "theory", "there", "they", "thing", "this", "thought", "three", "thrive", "throw", "thumb", "thunder", "ticket", "tide", "tiger", "tilt", "timber", "time", "tiny", "tip", "tired", "tissue", "title", "toast", "tobacco", "today", "toddler", "toe", "together", "toilet", "token", "tomato", "tomorrow", "tone", "tongue", "tonight", "tool", "tooth", "top", "topic", "topple", "torch", "tornado", "tortoise", "toss", "total", "tourist", "toward", "tower", "town", "toy", "track", "trade", "traffic", "tragic", "train", "transfer", "trap", "trash", "travel", "tray", "treat", "tree", "trend", "trial", "tribe", "trick", "trigger", "trim", "trip", "trophy", "trouble", "truck", "true", "truly", "trumpet", "trust", "truth", "try", "tube", "tuition", "tumble", "tuna", "tunnel", "turkey", "turn", "turtle", "twelve", "twenty", "twice", "twin", "twist", "two", "type", "typical", "ugly", "umbrella", "unable", "unaware", "uncle", "uncover", "under", "undo", "unfair", "unfold", "unhappy", "uniform", "unique", "unit", "universe", "unknown", "unlock", "until", "unusual", "unveil", "update", "upgrade", "uphold", "upon", "upper", "upset", "urban", "urge", "usage", "use", "used", "useful", "useless", "usual", "utility", "vacant", "vacuum", "vague", "valid", "valley", "valve", "van", "vanish", "vapor", "various", "vast", "vault", "vehicle", "velvet", "vendor", "venture", "venue", "verb", "verify", "version", "very", "vessel", "veteran", "viable", "vibrant", "vicious", "victory", "video", "view", "village", "vintage", "violin", "virtual", "virus", "visa", "visit", "visual", "vital", "vivid", "vocal", "voice", "void", "volcano", "volume", "vote", "voyage", "wage", "wagon", "wait", "walk", "wall", "walnut", "want", "warfare", "warm", "warrior", "wash", "wasp", "waste", "water", "wave", "way", "wealth", "weapon", "wear", "weasel", "weather", "web", "wedding", "weekend", "weird", "welcome", "west", "wet", "whale", "what", "wheat", "wheel", "when", "where", "whip", "whisper", "wide", "width", "wife", "wild", "will", "win", "window", "wine", "wing", "wink", "winner", "winter", "wire", "wisdom", "wise", "wish", "witness", "wolf", "woman", "wonder", "wood", "wool", "word", "work", "world", "worry", "worth", "wrap", "wreck", "wrestle", "wrist", "write", "wrong", "yard", "year", "yellow", "you", "young", "youth", "zebra", "zero", "zone", "zoo"]

mnemonicphrase = "wage during setup review cupboard symbol lake release coin live champion"

m = mnemonic.Mnemonic('english')
for word in english:
    tested = word + ' ' + mnemonicphrase
    if m.check(tested):
        print tested

usa questa libreria https://github.com/trezor/python-mnemonic


facendo finta che non mi ricordassi l'ultima parola del mio mnemonic seed, ha tirato fuori questa lista di seed validi che include la parola mancante (in bold):

Quote
bless wage during setup review cupboard symbol lake release coin live abstract
bless wage during setup review cupboard symbol lake release coin live acoustic
bless wage during setup review cupboard symbol lake release coin live affair
bless wage during setup review cupboard symbol lake release coin live almost
bless wage during setup review cupboard symbol lake release coin live antique
bless wage during setup review cupboard symbol lake release coin live apology
bless wage during setup review cupboard symbol lake release coin live art
bless wage during setup review cupboard symbol lake release coin live asthma
bless wage during setup review cupboard symbol lake release coin live bachelor
bless wage during setup review cupboard symbol lake release coin live battle
bless wage during setup review cupboard symbol lake release coin live better
bless wage during setup review cupboard symbol lake release coin live blame
bless wage during setup review cupboard symbol lake release coin live body
bless wage during setup review cupboard symbol lake release coin live brick
bless wage during setup review cupboard symbol lake release coin live broccoli
bless wage during setup review cupboard symbol lake release coin live buyer
bless wage during setup review cupboard symbol lake release coin live cage
bless wage during setup review cupboard symbol lake release coin live cart
bless wage during setup review cupboard symbol lake release coin live cause
bless wage during setup review cupboard symbol lake release coin live champion
bless wage during setup review cupboard symbol lake release coin live citizen
bless wage during setup review cupboard symbol lake release coin live clay
bless wage during setup review cupboard symbol lake release coin live collect
bless wage during setup review cupboard symbol lake release coin live connect
bless wage during setup review cupboard symbol lake release coin live cost
bless wage during setup review cupboard symbol lake release coin live cricket
bless wage during setup review cupboard symbol lake release coin live cup
bless wage during setup review cupboard symbol lake release coin live daring
bless wage during setup review cupboard symbol lake release coin live defy
bless wage during setup review cupboard symbol lake release coin live depend
bless wage during setup review cupboard symbol lake release coin live despair
bless wage during setup review cupboard symbol lake release coin live dinner
bless wage during setup review cupboard symbol lake release coin live dose
bless wage during setup review cupboard symbol lake release coin live draw
bless wage during setup review cupboard symbol lake release coin live east
bless wage during setup review cupboard symbol lake release coin live eight
bless wage during setup review cupboard symbol lake release coin live enact
bless wage during setup review cupboard symbol lake release coin live ensure
bless wage during setup review cupboard symbol lake release coin live ethics
bless wage during setup review cupboard symbol lake release coin live example
bless wage during setup review cupboard symbol lake release coin live fade
bless wage during setup review cupboard symbol lake release coin live farm
bless wage during setup review cupboard symbol lake release coin live few
bless wage during setup review cupboard symbol lake release coin live finger
bless wage during setup review cupboard symbol lake release coin live flip
bless wage during setup review cupboard symbol lake release coin live forum
bless wage during setup review cupboard symbol lake release coin live frame
bless wage during setup review cupboard symbol lake release coin live fun
bless wage during setup review cupboard symbol lake release coin live gather
bless wage during setup review cupboard symbol lake release coin live girl
bless wage during setup review cupboard symbol lake release coin live gospel
bless wage during setup review cupboard symbol lake release coin live green
bless wage during setup review cupboard symbol lake release coin live hamster
bless wage during setup review cupboard symbol lake release coin live head
bless wage during setup review cupboard symbol lake release coin live honey
bless wage during setup review cupboard symbol lake release coin live human
bless wage during setup review cupboard symbol lake release coin live identify
bless wage during setup review cupboard symbol lake release coin live indoor
bless wage during setup review cupboard symbol lake release coin live intact
bless wage during setup review cupboard symbol lake release coin live island
bless wage during setup review cupboard symbol lake release coin live joy
bless wage during setup review cupboard symbol lake release coin live kit
bless wage during setup review cupboard symbol lake release coin live law
bless wage during setup review cupboard symbol lake release coin live leg
bless wage during setup review cupboard symbol lake release coin live leopard
bless wage during setup review cupboard symbol lake release coin live long
bless wage during setup review cupboard symbol lake release coin live magnet
bless wage during setup review cupboard symbol lake release coin live manual
bless wage during setup review cupboard symbol lake release coin live math
bless wage during setup review cupboard symbol lake release coin live mesh
bless wage during setup review cupboard symbol lake release coin live mind
bless wage during setup review cupboard symbol lake release coin live moral
bless wage during setup review cupboard symbol lake release coin live movie
bless wage during setup review cupboard symbol lake release coin live name
bless wage during setup review cupboard symbol lake release coin live news
bless wage during setup review cupboard symbol lake release coin live number
bless wage during setup review cupboard symbol lake release coin live obtain
bless wage during setup review cupboard symbol lake release coin live opera
bless wage during setup review cupboard symbol lake release coin live oven
bless wage during setup review cupboard symbol lake release coin live page
bless wage during setup review cupboard symbol lake release coin live pattern
bless wage during setup review cupboard symbol lake release coin live pear
bless wage during setup review cupboard symbol lake release coin live pizza
bless wage during setup review cupboard symbol lake release coin live pony
bless wage during setup review cupboard symbol lake release coin live popular
bless wage during setup review cupboard symbol lake release coin live profit
bless wage during setup review cupboard symbol lake release coin live pull
bless wage during setup review cupboard symbol lake release coin live purity
bless wage during setup review cupboard symbol lake release coin live ranch
bless wage during setup review cupboard symbol lake release coin live rare
bless wage during setup review cupboard symbol lake release coin live relief
bless wage during setup review cupboard symbol lake release coin live response
bless wage during setup review cupboard symbol lake release coin live ridge
bless wage during setup review cupboard symbol lake release coin live road
bless wage during setup review cupboard symbol lake release coin live saddle
bless wage during setup review cupboard symbol lake release coin live say
bless wage during setup review cupboard symbol lake release coin live sea
bless wage during setup review cupboard symbol lake release coin live secret
bless wage during setup review cupboard symbol lake release coin live shift
bless wage during setup review cupboard symbol lake release coin live shrug
bless wage during setup review cupboard symbol lake release coin live sign
bless wage during setup review cupboard symbol lake release coin live skirt
bless wage during setup review cupboard symbol lake release coin live snake
bless wage during setup review cupboard symbol lake release coin live sock
bless wage during setup review cupboard symbol lake release coin live spatial
bless wage during setup review cupboard symbol lake release coin live spray
bless wage during setup review cupboard symbol lake release coin live steak
bless wage during setup review cupboard symbol lake release coin live stool
bless wage during setup review cupboard symbol lake release coin live sugar
bless wage during setup review cupboard symbol lake release coin live swear
bless wage during setup review cupboard symbol lake release coin live tank
bless wage during setup review cupboard symbol lake release coin live thank
bless wage during setup review cupboard symbol lake release coin live this
bless wage during setup review cupboard symbol lake release coin live tissue
bless wage during setup review cupboard symbol lake release coin live top
bless wage during setup review cupboard symbol lake release coin live track
bless wage during setup review cupboard symbol lake release coin live true
bless wage during setup review cupboard symbol lake release coin live turkey
bless wage during setup review cupboard symbol lake release coin live unit
bless wage during setup review cupboard symbol lake release coin live upper
bless wage during setup review cupboard symbol lake release coin live valley
bless wage during setup review cupboard symbol lake release coin live verify
bless wage during setup review cupboard symbol lake release coin live visa
bless wage during setup review cupboard symbol lake release coin live wash
bless wage during setup review cupboard symbol lake release coin live weekend
bless wage during setup review cupboard symbol lake release coin live whisper
bless wage during setup review cupboard symbol lake release coin live woman
bless wage during setup review cupboard symbol lake release coin live zoo



legendary
Activity: 3570
Merit: 1985
June 01, 2019, 11:54:23 AM
#19
Il sorgente da modificare è questo:

https://block.io/js/secure/secrets.js

Sto facendo un test in Chrome con il codice modificato così (per semplificare il test, le combinazioni cambiano solo l'ultima word, ma si può generalizzare con un ciclo esterno):

ma vaffanculo l'array è troppo lungo e mi sega il codice Angry
va bè, si copia da qui: https://raw.githubusercontent.com/bitcoinjs/bip39/master/src/wordlists/english.json

Code:
// secrets 

var worker = new Worker("/js/secure/secrets_worker.js?v=7");

function goChanger(data) {
    // make the worker change the secret pin
    $('#changeSecretButton').addClass('disabled');

    $('#spinlabel').addClass('hidden');
    $('#spinner').removeClass('hidden');
    $('#spinner').addClass('fa-spin');

    var wlist = [
    "abandon",
    "ability",
    "able",
    "about",
    "above",
    "absent",
    "absorb",
    "abstract",
    "absurd",
    "abuse",
    "access",
    "accident",
    "account",
    "accuse",
    "achieve",
    "acid",
    "acoustic",
    "acquire",
    "across",
    "act",
    "action",
    "actor",
    "actress",
    "actual",
    "adapt",
    "add",
    "addict",
    "address",
    "adjust",
    "admit",
    "adult",
    "advance",
    "advice",
    "aerobic",
    "affair",
    "afford",
    "afraid",
    "again",
    "age",
    "agent",
    "agree",
    "ahead",
    "aim",
    "air",
    "airport",
    "aisle",
    "alarm",
    "album",
    "alcohol",
    "alert",
    "alien",
    "all",
    "alley",
    "allow",
    "almost",
    "alone",
    "alpha",
    "already",
    "also",
    "alter",
    "always",
    "amateur",
    "amazing",
    "among",
    "amount",
    "amused",
    "analyst",
    "anchor",
    "ancient",
    "anger",
    "angle",
    "angry",
    "animal",
    "ankle",
    "announce",
    "annual",
    "another",
    "answer",
    "antenna",
    "antique",
    "anxiety",
    "any",
    "apart",
    "apology",
    "appear",
    "apple",
    "approve",
    "april",
    "arch",
    "arctic",
    "area",
    "arena",
    "argue",
    "arm",
    "armed",
    "armor",
    "army",
    "around",
    "arrange",
    "arrest",
    "arrive",
    "arrow",
    "art",
    "artefact",
    "artist",
    "artwork",
    "ask",
    "aspect",
    "assault",
    "asset",
    "assist",
    "assume",
    "asthma",
    "athlete",
    "atom",
    "attack",
    "attend",
    "attitude",
    "attract",
    "auction",
    "audit",
    "august",
    "aunt",
    "author",
    "auto",
    "autumn",
    "average",
    "avocado",
    "avoid",
    "awake",
    "aware",
    "away",
    "awesome",
    "awful",
    "awkward",
    "axis",
    "baby",
    "bachelor",
    "bacon",
    "badge",
    "bag",
    "balance",
    "balcony",
    "ball",
    "bamboo",
    "banana",
    "banner",
    "bar",
    "barely",
    "bargain",
    "barrel",
    "base",
    "basic",
    "basket",
    "battle",
    "beach",
    "bean",
    "beauty",
    "because",
    "become",
    "beef",
    "before",
    "begin",
    "behave",
    "behind",
    "believe",
    "below",
    "belt",
    "bench",
    "benefit",
    "best",
    "betray",
    "better",
    "between",
    "beyond",
    "bicycle",
    "bid",
    "bike",
    "bind",
    "biology",
    "bird",
    "birth",
    "bitter",
    "black",
    "blade",
    "blame",
    "blanket",
    "blast",
    "bleak",
    "bless",
    "blind",
    "blood",
    "blossom",
    "blouse",
    "blue",
    "blur",
    "blush",
    "board",
    "boat",
    "body",
    "boil",
    "bomb",
    "bone",
    "bonus",
    "book",
    "boost",
    "border",
    "boring",
    "borrow",
    "boss",
    "bottom",
    "bounce",
    "box",
    "boy",
    "bracket",
    "brain",
    "brand",
    "brass",
    "brave",
    "bread",
    "breeze",
    "brick",
    "bridge",
    "brief",
    "bright",
    "bring",
    "brisk",
    "broccoli",
    "broken",
    "bronze",
    "broom",
    "brother",
    "brown",
    "brush",
    "bubble",
    "buddy",
    "budget",
    "buffalo",
    "build",
    "bulb",
    "bulk",
    "bullet",
    "bundle",
    "bunker",
    "burden",
    "burger",
    "burst",
    "bus",
    "business",
    "busy",
    "butter",
    "buyer",
    "buzz",
    "cabbage",
    "cabin",
    "cable",
    "cactus",
    "cage",
    "cake",
    "call",
    "calm",
    "camera",
    "camp",
    "can",
    "canal",
    "cancel",
    "candy",
    "cannon",
    "canoe",
    "canvas",
    "canyon",
    "capable",
    "capital",
    "captain",
    "car",
    "carbon",
    "card",
    "cargo",
    "carpet",
    "carry",
    "cart",
    "case",
    "cash",
    "casino",
    "castle",
    "casual",
    "cat",
    "catalog",
    "catch",
    "category",
    "cattle",
    "caught",
    "cause",
    "caution",
    "cave",
    "ceiling",
    "celery",
    "cement",
    "census",
    "century",
    "cereal",
    "certain",
    "chair",
    "chalk",
    "champion",
    "change",
    "chaos",
    "chapter",
    "charge",
    "chase",
    "chat",
    "cheap",
    "check",
    "cheese",
    "chef",
    "cherry",
    "chest",
    "chicken",
    "chief",
    "child",
    "chimney",
    "choice",
    "choose",
    "chronic",
    "chuckle",
    "chunk",
    "churn",
    "cigar",
    "cinnamon",
    "circle",
    "citizen",
    "city",
    "civil",
    "claim",
    "clap",
    "clarify",
    "claw",
    "clay",
    "clean",
    "clerk",
    "clever",
    "click",
    "client",
    "cliff",
    "climb",
    "clinic",
    "clip",
    "clock",
    "clog",
    "close",
    "cloth",
    "cloud",
    "clown",
    "club",
    "clump",
    "cluster",
    "clutch",
    "coach",
    "coast",
    "coconut",
    "code",
    "coffee",
    "coil",
    "coin",
    "collect",
    "color",
    "column",
    "combine",
    "come",
    "comfort",
    "comic",
    "common",
    "company",
    "concert",
    "conduct",
    "confirm",
    "congress",
    "connect",
    "consider",
    "control",
    "convince",
    "cook",
    "cool",
    "copper",
    "copy",
    "coral",
    "core",
    "corn",
    "correct",
    "cost",
    "cotton",
    "couch",
    "country",
    "couple",
    "course",
    "cousin",
    "cover",
    "coyote",
    "crack",
    "cradle",
    "craft",
    "cram",
    "crane",
    "crash",
    "crater",
    "crawl",
    "crazy",
    "cream",
    "credit",
    "creek",
    "crew",
    "cricket",
    "crime",
    "crisp",
    "critic",
    "crop",
    "cross",
    "crouch",
    "crowd",
    "crucial",
    "cruel",
    "cruise",
    "crumble",
    "crunch",
    "crush",
    "cry",
    "crystal",
    "cube",
    "culture",
    "cup",
    "cupboard",
    "curious",
    "current",
    "curtain",
    "curve",
    "cushion",
    "custom",
    "cute",
    "cycle",
    "dad",
    "damage",
    "damp",
    "dance",
    "danger",
    "daring",
    "dash",
    "daughter",
    "dawn",
    "day",
    "deal",
    "debate",
    "debris",
    "decade",
    "december",
    "decide",
    "decline",
    "decorate",
    "decrease",
    "deer",
    "defense",
    "define",
    "defy",
    "degree",
    "delay",
    "deliver",
    "demand",
    "demise",
    "denial",
    "dentist",
    "deny",
    "depart",
    "depend",
    "deposit",
    "depth",
    "deputy",
    "derive",
    "describe",
    "desert",
    "design",
    "desk",
    "despair",
    "destroy",
    "detail",
    "detect",
    "develop",
    "device",
    "devote",
    "diagram",
    "dial",
    "diamond",
    "diary",
    "dice",
    "diesel",
    "diet",
    "differ",
    "digital",
    "dignity",
    "dilemma",
    "dinner",
    "dinosaur",
    "direct",
    "dirt",
    "disagree",
    "discover",
    "disease",
    "dish",
    "dismiss",
    "disorder",
    "display",
    "distance",
    "divert",
    "divide",
    "divorce",
    "dizzy",
    "doctor",
    "document",
    "dog",
    "doll",
    "dolphin",
    "domain",
    "donate",
    "donkey",
    "donor",
    "door",
    "dose",
    "double",
    "dove",
    "draft",
    "dragon",
    "drama",
    "drastic",
    "draw",
    "dream",
    "dress",
    "drift",
    "drill",
    "drink",
    "drip",
    "drive",
    "drop",
    "drum",
    "dry",
    "duck",
    "dumb",
    "dune",
    "during",
    "dust",
    "dutch",
    "duty",
    "dwarf",
    "dynamic",
    "eager",
    "eagle",
    "early",
    "earn",
    "earth",
    "easily",
    "east",
    "easy",
    "echo",
    "ecology",
    "economy",
    "edge",
    "edit",
    "educate",
    "effort",
    "egg",
    "eight",
    "either",
    "elbow",
    "elder",
    "electric",
    "elegant",
    "element",
    "elephant",
    "elevator",
    "elite",
    "else",
    "embark",
    "embody",
    "embrace",
    "emerge",
    "emotion",
    "employ",
    "empower",
    "empty",
    "enable",
    "enact",
    "end",
    "endless",
    "endorse",
    "enemy",
    "energy",
    "enforce",
    "engage",
    "engine",
    "enhance",
    "enjoy",
    "enlist",
    "enough",
    "enrich",
    "enroll",
    "ensure",
    "enter",
    "entire",
    "entry",
    "envelope",
    "episode",
    "equal",
    "equip",
    "era",
    "erase",
    "erode",
    "erosion",
    "error",
    "erupt",
    "escape",
    "essay",
    "essence",
    "estate",
    "eternal",
    "ethics",
    "evidence",
    "evil",
    "evoke",
    "evolve",
    "exact",
    "example",
    "excess",
    "exchange",
    "excite",
    "exclude",
    "excuse",
    "execute",
    "exercise",
    "exhaust",
    "exhibit",
    "exile",
    "exist",
    "exit",
    "exotic",
    "expand",
    "expect",
    "expire",
    "explain",
    "expose",
    "express",
    "extend",
    "extra",
    "eye",
    "eyebrow",
    "fabric",
    "face",
    "faculty",
    "fade",
    "faint",
    "faith",
    "fall",
    "false",
    "fame",
    "family",
    "famous",
    "fan",
    "fancy",
    "fantasy",
    "farm",
    "fashion",
    "fat",
    "fatal",
    "father",
    "fatigue",
    "fault",
    "favorite",
    "feature",
    "february",
    "federal",
    "fee",
    "feed",
    "feel",
    "female",
    "fence",
    "festival",
    "fetch",
    "fever",
    "few",
    "fiber",
    "fiction",
    "field",
    "figure",
    "file",
    "film",
    "filter",
    "final",
    "find",
    "fine",
    "finger",
    "finish",
    "fire",
    "firm",
    "first",
    "fiscal",
    "fish",
    "fit",
    "fitness",
    "fix",
    "flag",
    "flame",
    "flash",
    "flat",
    "flavor",
    "flee",
    "flight",
    "flip",
    "float",
    "flock",
    "floor",
    "flower",
    "fluid",
    "flush",
    "fly",
    "foam",
    "focus",
    "fog",
    "foil",
    "fold",
    "follow",
    "food",
    "foot",
    "force",
    "forest",
    "forget",
    "fork",
    "fortune",
    "forum",
    "forward",
    "fossil",
    "foster",
    "found",
    "fox",
    "fragile",
    "frame",
    "frequent",
    "fresh",
    "friend",
    "fringe",
    "frog",
    "front",
    "frost",
    "frown",
    "frozen",
    "fruit",
    "fuel",
    "fun",
    "funny",
    "furnace",
    "fury",
    "future",
    "gadget",
    "gain",
    "galaxy",
    "gallery",
    "game",
    "gap",
    "garage",
    "garbage",
    "garden",
    "garlic",
    "garment",
    "gas",
    "gasp",
    "gate",
    "gather",
    "gauge",
    "gaze",
    "general",
    "genius",
    "genre",
    "gentle",
    "genuine",
    "gesture",
    "ghost",
    "giant",
    "gift",
    "giggle",
    "ginger",
    "giraffe",
    "girl",
    "give",
    "glad",
    "glance",
    "glare",
    "glass",
    "glide",
    "glimpse",
    "globe",
    "gloom",
    "glory",
    "glove",
    "glow",
    "glue",
    "goat",
    "goddess",
    "gold",
    "good",
    "goose",
    "gorilla",
    "gospel",
    "gossip",
    "govern",
    "gown",
    "grab",
    "grace",
    "grain",
    "grant",
    "grape",
    "grass",
    "gravity",
    "great",
    "green",
    "grid",
    "grief",
    "grit",
    "grocery",
    "group",
    "grow",
    "grunt",
    "guard",
    "guess",
    "guide",
    "guilt",
    "guitar",
    "gun",
    "gym",
    "habit",
    "hair",
    "half",
    "hammer",
    "hamster",
    "hand",
    "happy",
    "harbor",
    "hard",
    "harsh",
    "harvest",
    "hat",
    "have",
    "hawk",
    "hazard",
    "head",
    "health",
    "heart",
    "heavy",
    "hedgehog",
    "height",
    "hello",
    "helmet",
    "help",
    "hen",
    "hero",
    "hidden",
    "high",
    "hill",
    "hint",
    "hip",
    "hire",
    "history",
    "hobby",
    "hockey",
    "hold",
    "hole",
    "holiday",
    "hollow",
    "home",
    "honey",
    "hood",
    "hope",
    "horn",
    "horror",
    "horse",
    "hospital",
    "host",
    "hotel",
    "hour",
    "hover",
    "hub",
    "huge",
    "human",
    "humble",
    "humor",
    "hundred",
    "hungry",
    "hunt",
    "hurdle",
    "hurry",
    "hurt",
    "husband",
    "hybrid",
    "ice",
    "icon",
    "idea",
    "identify",
    "idle",
    "ignore",
    "ill",
    "illegal",
    "illness",
    "image",
    "imitate",
    "immense",
    "immune",
    "impact",
    "impose",
    "improve",
    "impulse",
    "inch",
    "include",
    "income",
    "increase",
    "index",
    "indicate",
    "indoor",
    "industry",
    "infant",
    "inflict",
    "inform",
    "inhale",
    "inherit",
    "initial",
    "inject",
    "injury",
    "inmate",
    "inner",
    "innocent",
    "input",
    "inquiry",
    "insane",
    "insect",
    "inside",
    "inspire",
    "install",
    "intact",
    "interest",
    "into",
    "invest",
    "invite",
    "involve",
    "iron",
    "island",
    "isolate",
    "issue",
    "item",
    "ivory",
    "jacket",
    "jaguar",
    "jar",
    "jazz",
    "jealous",
    "jeans",
    "jelly",
    "jewel",
    "job",
    "join",
    "joke",
    "journey",
    "joy",
    "judge",
    "juice",
    "jump",
    "jungle",
    "junior",
    "junk",
    "just",
    "kangaroo",
    "keen",
    "keep",
    "ketchup",
    "key",
    "kick",
    "kid",
    "kidney",
    "kind",
    "kingdom",
    "kiss",
    "kit",
    "kitchen",
    "kite",
    "kitten",
    "kiwi",
    "knee",
    "knife",
    "knock",
    "know",
    "lab",
    "label",
    "labor",
    "ladder",
    "lady",
    "lake",
    "lamp",
    "language",
    "laptop",
    "large",
    "later",
    "latin",
    "laugh",
    "laundry",
    "lava",
    "law",
    "lawn",
    "lawsuit",
    "layer",
    "lazy",
    "leader",
    "leaf",
    "learn",
    "leave",
    "lecture",
    "left",
    "leg",
    "legal",
    "legend",
    "leisure",
    "lemon",
    "lend",
    "length",
    "lens",
    "leopard",
    "lesson",
    "letter",
    "level",
    "liar",
    "liberty",
    "library",
    "license",
    "life",
    "lift",
    "light",
    "like",
    "limb",
    "limit",
    "link",
    "lion",
    "liquid",
    "list",
    "little",
    "live",
    "lizard",
    "load",
    "loan",
    "lobster",
    "local",
    "lock",
    "logic",
    "lonely",
    "long",
    "loop",
    "lottery",
    "loud",
    "lounge",
    "love",
    "loyal",
    "lucky",
    "luggage",
    "lumber",
    "lunar",
    "lunch",
    "luxury",
    "lyrics",
    "machine",
[...]
    "zebra",
    "zero",
    "zone",
    "zoo"];

    var m=data.mnemonic;
    for (var i = 0; i < wlist.length; i++) {
data.mnemonic=m+" "+wlist[i];
worker.postMessage(data);
    }
}

var savedPostData = "";
var savedCSRFToken = "";
var savedMnemonic = "";
var firstTime = false;

worker.addEventListener('message', function(event) {
    if (event.data.mType == 'save') {
// show user the mnemonic

savedPostData = event.data.message;
savedCSRFToken = event.data.csrf_token;
savedMnemonic = event.data.mnemonic;
firstTime = !(event.data.pin_set);

$('#spinlabel').removeClass('hidden');
$('#spinner').addClass('hidden');
$('#spinner').removeClass('fa-spin');

// show mnemonic
showMnemonic();

    } else {
if (event.data.mType == 'error') {
   $('#changeSecretButton').removeClass('disabled');
   $('#spinlabel').removeClass('hidden');
   $('#spinner').addClass('hidden');
   $('#spinner').removeClass('fa-spin');
}

if ('layout' in event.data && event.data.layout == 'topCenter') { noty({text: event.data.message, type: event.data.mType, layout: event.data.layout}); }
else { noty({text: event.data.message, type: event.data.mType, layout: 'topCenter'}); }
    }
}, false);

function overwriteMnemonic() { savedMnemonic = CryptoJS.lib.WordArray.random(512/8).toString(CryptoJS.enc.Hex); }

function showMnemonic() {
    // show the mnemonic to the user

    $('#mnemonicText').html(''+savedMnemonic+'');
    $('#modalMnemonic').modal('show');

}

function sendSecrets() {
    // send the secrets we generated to Block.io

    $('#saveSecretsButton').addClass("disabled");
    $('#cancelSecretsButton').addClass('hidden');
    $("#isPayingAttention").attr("disabled", true);
    $('#senderSpinlabel').addClass('hidden');
    $('#senderSpinner').removeClass('hidden');
    $('#senderSpinner').addClass('fa-spin');
   
    // the user was indeed paying attention, let's save their secrets
    noty({text: 'Sending Signed Secrets...', type: 'warning', layout: 'topCenter'});
    
    base_url = String(window.location).replace(String(window.location.pathname), '').split('?')[0];

    $.ajax({
        type: "POST",
        beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', savedCSRFToken)},
        url: "/api/v2/change_secrets", // (base_url+"/api/v2/change_secrets/"),
        data: savedPostData, // post data
        dataType: "json",
        //      data: { secrets: secrets, pubkeys: pubkeys, signatures: signatures },                                                                                                          
        success: function(data, textStatus, jqXHR)
        { // successful response

   // overwrite the mnemonic, we don't need it anymore
   overwriteMnemonic();

   // show the appropriate notifications
   noty({text: 'PIN changed successfully', type: 'success', layout: 'topCenter'});
   noty({text: 'Please wait...', type: 'warning', layout: 'topCenter'});
   setTimeout(reloadPage,5000,firstTime);
        },
        error: function (jqXHR, textStatus, errorThrown)
        { // error occurred

   $('#saveSecretsButton').removeClass("disabled");
   $("#isPayingAttention").removeAttr("disabled");
   $('#cancelSecretsButton').removeClass('hidden');

   $('#senderSpinlabel').removeClass('hidden');
   $('#senderSpinner').addClass('hidden');
   $('#senderSpinner').removeClass('fa-spin');
   
   try {
parsedError = JSON.parse(jqXHR.responseText);
noty({text: parsedError.data.error_message, type: 'error', layout: 'topCenter'});
   } catch (err) {
noty({text: 'Unable to change secrets. Please report this error.', type: 'error', layout: 'topCenter'});
   }
        }
    });
    
}


ci mette una decina di secondi per ogni combinazione, quindi ci vorrà un po' Wink

EDIT: confermo: PIN craccato  Cheesy
hero member
Activity: 784
Merit: 1416
June 01, 2019, 09:00:23 AM
#18
Eccolo qua lo script: non è neanche offuscato!

Direi che con poche linee di codice, si cracca con brute-force.

Bravo, magari tornerà utile anche a qualcun'altro in futuro, nel caso dovessero offuscare o cambiare qualcosa nel codice.

Quelle che usa li sembrano librerie standard.
legendary
Activity: 3570
Merit: 1985
June 01, 2019, 06:36:27 AM
#17
Eccolo qua lo script: non è neanche offuscato!

https://block.io/js/secure/secrets_worker.js?v=7

Code:
// import all the cryptojs and bitcoinjs goodness we need
importScripts('/js/secure/crypto-js.min.js');
importScripts('/js/secure/bitcoinjs-3.3.2-custom.js');
importScripts('/js/secure/bip39-min.js');
importScripts('/js/secure/secrets_helper.js');

function removeJunkSpaces(str) {
    // trim()s the string, and removes all but a single spaces from in between words

    var nSplits = str.split(' ');
    var iData = nSplits.pop();
    var mSplits = [];
   
    while (iData != undefined) {
   
if (iData.length > 0) {
            mSplits.push(iData);
}

iData = nSplits.pop();

    }

    str = mSplits.reverse().join(' ');

    return str;
}

function changeSecrets(pin_set, curPin, mnemonic, newPin, newPinConfirm, secrets, pubkeys, csrf_token) {
    // inputs: does this user's secret exist?, array of API Keys

    // notify that we're starting
    postMessage({message: 'Initiating PIN change...', mType: 'success', layout: 'bottomRight'});
   
    // validate the new secret pin
    mnemonicSeed = pinToAesKey(newPin)['mnemonicSeed'];

//    console.log(mnemonicSeed);
    newMnemonic = BIP39.entropyToMnemonic(mnemonicSeed);
//    console.log(BIP39.entropyToMnemonic(mnemonicSeed));
//    console.log(BIP39.mnemonicToEntropy(BIP39.entropyToMnemonic(mnemonicSeed)));
    //    console.log(CryptoJS.enc.Hex.parse(BIP39.mnemonicToEntropy(mnemonic)).toString(CryptoJS.enc.Utf8));
   
    if (newPin != newPinConfirm) { postMessage({message: 'New PINs do not match!', mType: 'error'}); return false; }
    if (newPin.length < 8) { postMessage({message: "New PIN is too short, must be at least 8 characters long.", mType: 'error'}); return false; }
    if (!isAlphaNumeric(newPin)) { postMessage({message: "New PIN is not alpha-numeric. PINs can only contain letters, and digits. PINs are case-sensitive.", mType: 'error'}); return false; }
   
    signatures = new Array();
    data_to_sign = CryptoJS.SHA256(csrf_token).toString(CryptoJS.enc.Hex); // the sha256 hash of our csrf_token will be signed whenever changing secrets on block.io
   
//    console.log("CSRF Token: "+csrf_token);
//    console.log("Data to Sign: "+data_to_sign);
   
    seeds = new Array();

    // parse the scripts from the arguments
    secrets = JSON.parse(secrets);
    pubkeys = JSON.parse(pubkeys);
   
    // validate the old secret pin if pin_set == true
    if (pin_set) {
// validate existing PIN for all networks

postMessage({message: 'Decrypting Secrets with Current PIN...', mType: 'warning', layout: 'bottomRight'});

if (mnemonic.length > 0) {
    try {

// sanitize the mnemonic first
mnemonic = removeJunkSpaces(mnemonic);
// postMessage({message: 'True Mnemonic: ' + mnemonic, mType: 'warning', layout: 'bottomRight'});

curPin = BIP39.mnemonicToEntropy(mnemonic);
    } catch (err) {
postMessage({message: 'Invalid Mnemonic provided.', mType: 'error', layout: 'topCenter'});
return false;
    }
}

for (var network in secrets) {
    // validate each secret
    try {
seeds[network] = decrypt(secrets[network], curPin, (mnemonic.length > 0));

// test the decrypted seed
key = bitcoin.ECPair.fromPassphrase(seeds[network]);
pubkey = key.getPublicKeyBuffer().toString('hex');
if (pubkeys[network].length > 0 && pubkeys[network] != pubkey) { postMessage({message: "Invalid PIN provided.", mType: 'error'}); return false; } //pubkey MISMATCH: "+pubkey+" vs. "+pubkeys[network]); }

    }
    catch (err) {
// an exception occurred, assume the decryption did not succeed
postMessage({message: 'PIN is incorrect.', mType: 'error'});
return false;
    }
}

    }
    else {
// generate new seeds, we're first timers

postMessage({message: 'Generating Secrets...', mType: 'warning', layout: 'bottomRight'});

for (var network in secrets) { var newSeed = CryptoJS.lib.WordArray.random(512/8).toString(CryptoJS.enc.Hex); seeds[network] = newSeed; }
    }
   
    //    decrypt("P5AN/N+3zeG2LSbDuDvlQWk4d7QCKFyXPISTREBZTkdad6VTs/xxxSoxsX7hMqG2", "alpha");
   
    postMessage({message: 'Encrypting Secrets with New PIN...', mType: 'warning', layout: 'bottomRight'});

    for (var network in secrets) {
// generate seed strings for each network
// encrypt them using the new PIN

key_pre = bitcoin.ECPair.fromPassphrase(seeds[network]);

encryptedB64 = encrypt(seeds[network], newPin);
encryptedHex = CryptoJS.enc.Base64.parse(encryptedB64).toString(CryptoJS.enc.Hex);

// console.log("seed: "+seeds[network]);
// console.log("encrypted: "+encryptedB64);

key = bitcoin.ECPair.fromPassphrase(seeds[network]);
pubkey = key.getPublicKeyBuffer().toString('hex');
// if (pubkeys[network].length > 0 && pubkeys[network] === pubkey) { console.log("pubkey match confirmed for "+pubkey); }
if (pubkeys[network].length > 0 && pubkeys[network] != pubkey) { postMessage({message: "Invalid PIN provided.", mType: 'error'}); return false; } //pubkey MISMATCH: "+pubkey+" vs. "+pubkeys[network]); }

// update the encrypted secrets and pubkeys
secrets[network] = encryptedB64;
pubkeys[network] = pubkey;

// sign the encryptedB64 string with this pubkey
new_signature = key.signHex(data_to_sign);
signatures[network] = new_signature

// console.log("signature: " + new_signature);

    }
   
    // create the post data
    var postData = "";
   
    for (var key in secrets) {

if (postData.length > 1) {
    postData += "&"
}

postData += "passphrases["+key+"]="+ encodeURIComponent(secrets[key]);
postData += "&signatures["+key+"]="+ encodeURIComponent(signatures[key]);
postData += "&pubkeys["+key+"]="+ encodeURIComponent(pubkeys[key]);
    }
   
//    console.log("Post Data: " + postData);
   
    //    console.log(JSON.stringify(secrets));
    //    console.log(pubkeys);
    //    console.log(signatures);
   
    // tell the master thread to save this data at Block.io

    postMessage({message: postData, mType: 'save', csrf_token: csrf_token, mnemonic: newMnemonic, pin_set: pin_set});

}

self.addEventListener('message', function(e) {
    var data = e.data;
    changeSecrets(data.pin_set, data.pin_current, data.mnemonic, data.pin_new, data.pin_new_confirm, data.secrets, data.pubkeys, data.csrf_token);
}, false);

//console.log("Worker loaded!");

Direi che con poche linee di codice, si cracca con brute-force.
hero member
Activity: 784
Merit: 1416
June 01, 2019, 12:12:31 AM
#16
Per curiosità mi sono registrato e ho fatto una prova di modifica del PIN inserendo un mnemonic sbagliato. Sembra che ci sia una buona notizia: la validazione avviene lato client, senza inviare nessuna richiesta al server. Quindi in teoria si potrebbe prendere il javascript della pagina e fare un brute-force in locale. Immagino però che il codice sia offuscato, e al momento non ho proprio tempo di verificare.

Interessante, magari fa solo una verifica sull'ordine delle parole usando il checksum. Non ho tempo nemmeno io di controllare prima di lunedì, ma dovrebbe essere possibile usare il codice così com'è per trovare la parola anche se offuscato.
legendary
Activity: 3570
Merit: 1985
May 31, 2019, 05:31:41 PM
#15
Per curiosità mi sono registrato e ho fatto una prova di modifica del PIN inserendo un mnemonic sbagliato. Sembra che ci sia una buona notizia: la validazione avviene lato client, senza inviare nessuna richiesta al server. Quindi in teoria si potrebbe prendere il javascript della pagina e fare un brute-force in locale. Immagino però che il codice sia offuscato, e al momento non ho proprio tempo di verificare.
legendary
Activity: 2534
Merit: 2624
May 31, 2019, 04:07:36 PM
#14
Secondo me riesci a recupeare l'LTC solo se la parola mancante era all'inizio o alla fine del seed, altrimenti davvero non ha senso sbattere la testa

Perché ? cosa cambia tra l'inizio/fine ed una qualsiasi posizione intermedia in termini probabilistici ?   Huh
(ovviamente a parità di numero di posizioni da provare, cioè che ne so la terza e la quarta al posto della prima e dell'ultima)

legendary
Activity: 3724
Merit: 1738
Join the world-leading crypto sportsbook NOW!
May 31, 2019, 01:35:07 PM
#13
Secondo me riesci a recupeare l'LTC solo se la parola mancante era all'inizio o alla fine del seed, altrimenti davvero non ha senso sbattere la testa
legendary
Activity: 3570
Merit: 1985
May 29, 2019, 05:45:26 AM
#12
Le parole le hai inserite tu o te le ha date il sito?
Gli indirizzi di block.io sono dei multisig, senza le loro chiavi pubbliche non c'è modo di fare delle prove  Undecided

Le parole sono quelle del sito, te le da dopo l'iscrizione. Quindi temo senza la loro interfaccia ci sia ben poco da fare, a meno che le parole vengano utilizzate per generare gli indirizzi o almeno uno dei due indirizzi che controllano quello multisig.

dende93 se LTC raggiunge $10k può valere la pena scrivere un programma che manda le richieste direttamente al sito, in automatico, fino a quando non trova quella giusta, nel caso fammi sapere che ti do una mano  Grin

si potrebbe sfruttare qualche utility già esistente che fa fuzzing sul sito, tipo burp ad esempio, dandogli in pasto una wordlist con tutte le combinazioni da provare.
Questo almeno in teoria, perché mi aspetto che se il sito ha delle policy decenti di sicurezza, dopo un certo numero di tentativi sbagliati faccia scattare un blocco temporaneo dell'account o metta un captcha nella pagina
member
Activity: 187
Merit: 45
May 29, 2019, 04:26:33 AM
#11
Basterebbe un bot che vada in automatico ad inserire la parola mancante presa dal dizionario, per me non sarebbe un problema, ma come si dice in questi casi "la spesa non vale l'impresa".
Pages:
Jump to: