Pages:
Author

Topic: BitCrack - A tool for brute-forcing private keys - page 94. (Read 74254 times)

legendary
Activity: 1624
Merit: 2481
well apparently it is against some moderators rule to question this apparent attempt to hack private keys - so carry on! seriously hope this never succeeds.


This tool is to bruteforce private keys.
Bruteforcing means to try out every possible combination. You can't forbid someone to try out each number (since private keys are basically just big numbers).

The keyspace is big enough for a randomly generated private key to be never found by such a bruteforce tool.

This is not hacking in any way. It is just 'trying out numbers' (and it will not succeed in finding private keys generated by proper wallets/clients/etc..).
legendary
Activity: 2044
Merit: 2195
EIN: 82-3893490
well apparently it is against some moderators rule to question this apparent attempt to hack private keys - so carry on! seriously hope this never succeeds.
legendary
Activity: 2268
Merit: 1092
not to sound to ignorant - but I gotta ask, is this just to crack btc addresses with the intent of stealing the btc ?

Here's a reply I posted earlier in this thread:

People have probably been trying to crack keys from day 1. It's impractical to cover the entire search space - that's why crypto works - but if you have some (very) strong hints, it is possible to brute force only a small range and find some hits. As an example, there are several private keys used in the blockchain, hidden in plain sight, sitting at the very bottom of the private key range. The puzzle transactions referred to earlier in this thread also have private keys over a very limited (and known) range, so the chances of cracking them are much better.

For a key that's generated truly randomly the chances of discovering it via brute force are essentially zero. You'd probably be better off trying to mine a new Bitcoin block.

Here's a sample of some real private keys, which have had funds sent to them at some point. Since the set starts at '1' they'll be found by brute force pretty much instantly... but that's most likely the point. A randomly generated private key would be impossible to crack.

0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000002
0000000000000000000000000000000000000000000000000000000000000003
0000000000000000000000000000000000000000000000000000000000000004
0000000000000000000000000000000000000000000000000000000000000005
0000000000000000000000000000000000000000000000000000000000000006
0000000000000000000000000000000000000000000000000000000000000007
0000000000000000000000000000000000000000000000000000000000000008
0000000000000000000000000000000000000000000000000000000000000009
000000000000000000000000000000000000000000000000000000000000000a
000000000000000000000000000000000000000000000000000000000000000b
000000000000000000000000000000000000000000000000000000000000000c
000000000000000000000000000000000000000000000000000000000000000d
000000000000000000000000000000000000000000000000000000000000000e
000000000000000000000000000000000000000000000000000000000000000f
0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000011
0000000000000000000000000000000000000000000000000000000000000012
0000000000000000000000000000000000000000000000000000000000000013
0000000000000000000000000000000000000000000000000000000000000015
0000000000000000000000000000000000000000000000000000000000000016
0000000000000000000000000000000000000000000000000000000000000017
0000000000000000000000000000000000000000000000000000000000000018
0000000000000000000000000000000000000000000000000000000000000019
000000000000000000000000000000000000000000000000000000000000001a
000000000000000000000000000000000000000000000000000000000000001b
000000000000000000000000000000000000000000000000000000000000001c
000000000000000000000000000000000000000000000000000000000000001e
000000000000000000000000000000000000000000000000000000000000001f


I know this looks like simple sequential counting, but if you look carefully you'll see one number missing. All of these private keys are valid.
legendary
Activity: 2268
Merit: 1092
Also, it's actually wasteful checking for only one address, one should maintain a list of bitcoin addresses. Also, for a speed up, one can also use two loops, one for bitcoin addresses, whose pubkeys are unknown, and those who are known. This way you avoid doing unnecessary sha256+ripemd hashing giving some speed up.

Brainflayer uses a Bloom filter so it can check hundreds of millions of RIPEMD160 addresses simultaneously, although these days with a lot (10%+) of false positives. I don't know whether it would be possible to shoehorn a Bloom filter implementation (including the filter data) into a GPU application. The Brainflayer implementation addresses 2^32 bits (512MB of RAM), but the filter is badly saturated by the large number of Bitcoin addresses, so you would need to use a lot more RAM for the filter data.
Sorry I am not familiar with bloom filters.

Bitcoin addresses are indeed a lot, but not many of them are of interest. It's pointless to add a Bitcoin address with a balance of <0.01 or <0.10 to the list. Keep the list more or less small, I mean the first 200k blocks have enough coins I guess, if they aren't spent.

https://en.wikipedia.org/wiki/Bloom_filter

Basically it's a compressed data structure that lets you do an efficient lookup to check whether a key (in this case, a used Bitcoin address) exists in a set. The return is either:

- This key is absolutely NOT in the set
- This key may be in the set (possible false positive)

The tradeoff is between memory usage and false positive rate. When Brainflayer was released, a Bloom filter with 2^32 bits was sufficient to keep the number of false positives low, but now that the number of addresses has increased significantly the false positive rate is too high.

You do make a good point that you would only need to try to crack addresses which are funded. I'm doing brainwallet cracking for interest, not criminal intent, so I want to cover the entire address space; even obscure wallets with zero balance that were last used years ago.

Random bruteforce cracking is unlikely to ever work anyway, so this discussion is largely academic. Smiley
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
not to sound to ignorant - but I gotta ask, is this just to crack btc addresses with the intent of stealing the btc ?
Not sure, I mean it's a fun pet project, but in reality it's actually infeasible. So nobody here can actually steal any bitcoins.
legendary
Activity: 2044
Merit: 2195
EIN: 82-3893490
not to sound to ignorant - but I gotta ask, is this just to crack btc addresses with the intent of stealing the btc ?
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Also, it's actually wasteful checking for only one address, one should maintain a list of bitcoin addresses. Also, for a speed up, one can also use two loops, one for bitcoin addresses, whose pubkeys are unknown, and those who are known. This way you avoid doing unnecessary sha256+ripemd hashing giving some speed up.

Brainflayer uses a Bloom filter so it can check hundreds of millions of RIPEMD160 addresses simultaneously, although these days with a lot (10%+) of false positives. I don't know whether it would be possible to shoehorn a Bloom filter implementation (including the filter data) into a GPU application. The Brainflayer implementation addresses 2^32 bits (512MB of RAM), but the filter is badly saturated by the large number of Bitcoin addresses, so you would need to use a lot more RAM for the filter data.
Sorry I am not familiar with bloom filters.

Bitcoin addresses are indeed a lot, but not many of them are of interest. It's pointless to add a Bitcoin address with a balance of <0.01 or <0.10 to the list. Keep the list more or less small, I mean the first 200k blocks have enough coins I guess, if they aren't spent.
legendary
Activity: 2268
Merit: 1092
Also, it's actually wasteful checking for only one address, one should maintain a list of bitcoin addresses. Also, for a speed up, one can also use two loops, one for bitcoin addresses, whose pubkeys are unknown, and those who are known. This way you avoid doing unnecessary sha256+ripemd hashing giving some speed up.

Brainflayer uses a Bloom filter so it can check hundreds of millions of RIPEMD160 addresses simultaneously, although these days with a lot (10%+) of false positives. I don't know whether it would be possible to shoehorn a Bloom filter implementation (including the filter data) into a GPU application. The Brainflayer implementation addresses 2^32 bits (512MB of RAM), but the filter is badly saturated by the large number of Bitcoin addresses, so you would need to use a lot more RAM for the filter data.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Also, it's actually wasteful checking for only one address, one should maintain a list of bitcoin addresses. Also, for a speed up, one can also use two loops, one for bitcoin addresses, whose pubkeys are unknown, and those who are known. This way you avoid doing unnecessary sha256+ripemd hashing giving some speed up.

Even compressed Bitcoin addresses, whose pubkeys are known can be uncompressed. Another thing to add, a user on the crypto stackexchange says he managed to create a more efficient OpenCL kernel just for this https://crypto.stackexchange.com/questions/54622/optimized-modular-multiplicative-inverse-for-bitcoin-secp256k1
legendary
Activity: 2268
Merit: 1092
is it possible to brute

example

BitCrack64.exe -u -s 0000000000000000000000000000000000000000000000000000000000000000 1KDv
or
BitCrack64.exe -u -s 0000000000000000000000000000000000000000000000000000000000000000 1KDvs
or
BitCrack64.exe -u -s 0000000000000000000000000000000000000000000000000000000000000000 1KDvsa
.....
find
1KDv and save

Wondering what the point of this feature would be? A partial match would have hundreds of bits that don't match any address in use. The key would still be impossible to crack.

If you were using it to generate your own address, by using a sequence in a small search space you would open yourself to easy cracking of the private key. You really need a vanity address (or any address!) to be generated from a 100% random key.
newbie
Activity: 54
Merit: 0
is it possible to brute

example

BitCrack64.exe -u -s 0000000000000000000000000000000000000000000000000000000000000000 1KDv
or
BitCrack64.exe -u -s 0000000000000000000000000000000000000000000000000000000000000000 1KDvs
or
BitCrack64.exe -u -s 0000000000000000000000000000000000000000000000000000000000000000 1KDvsa
.....
find
1KDv and save


similar to Vanitygen but there is random

and here with meaning
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000002
full member
Activity: 475
Merit: 101
I don't have .exe file

Where can I find it?
Choose,their 3


Doesn't work Sad
Read the topic, here find an example batch file(The program doesn't know what you want from it.).So far the program works only on NVIDIA cards.
member
Activity: 154
Merit: 27
I don't have .exe file

Where can I find it?
Choose,their 3



Doesn't work Sad
full member
Activity: 475
Merit: 101
I don't have .exe file

Where can I find it?
Choose,their 3
legendary
Activity: 1914
Merit: 2071
legendary
Activity: 2268
Merit: 1092
another crack tool. Keep up work. Bitcoin will be more safe with the hack Smiley
Im surprised that these kind of tools do exist nowadays and been actively lurking on here.Just wondering on how many they had bruteforced already?  Grin

People have probably been trying to crack keys from day 1. It's impractical to cover the entire search space - that's why crypto works - but if you have some (very) strong hints, it is possible to brute force only a small range and find some hits. As an example, there are several private keys used in the blockchain, hidden in plain sight, sitting at the very bottom of the private key range. The puzzle transactions referred to earlier in this thread also have private keys over a very limited (and known) range, so the chances of cracking them are much better.

For a key that's generated truly randomly the chances of discovering it via brute force are essentially zero. You'd probably be better off trying to mine a new Bitcoin block.
legendary
Activity: 3080
Merit: 1126
another crack tool. Keep up work. Bitcoin will be more safe with the hack Smiley
Im surprised that these kind of tools do exist nowadays and been actively lurking on here.Just wondering on how many they had bruteforced already?  Grin
legendary
Activity: 1848
Merit: 1334
just in case
another crack tool. Keep up work. Bitcoin will be more safe with the hack Smiley
newbie
Activity: 8
Merit: 0
That solved it!! It was the version, I had a very old version.

I installed this release https://github.com/brichard19/BitCrack/releases/tag/0.21

Thank you for the help!
Pages:
Jump to: