Pages:
Author

Topic: Check if your BTC-key is vulnerable - page 2. (Read 18178 times)

hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 15, 2015, 05:38:26 PM
#35
interesting feedback from person on reddit when I shared this script (I wrote an article on my own site to archive this script and talk about it and share it with others who aren't on here)  and it goes like:

Quote
There's a problem with either the script or the blockchain.info api where the number of tx field doesn't match the actual number of tx sent.
In other words,
Code:
assert( len(addrdata['txs']) < addrdata['n_tx'] )
fails.


The script only works for keys with up to 50 tx. If your key got more than 50 tx you have to add some lines (add loop and use optional API-parameters limit and offset to parse through all transactions [50+]).

yes but i writed this in the first post (see above comment), so its only for max 50 tx. when it s more you must adapt the script because it takes the information from blockchain.info and example its more 50 tx, but only loading 50 tx data from bc.info API, then it parses outside range of loaded data. this is the error. i hope you understand. when you need adaption of script write me. i am happy to help you anytime.
thank you.
 Yea I'd like to see the for loop if possible to choose trx size

hello sory i don't see yours reply so waited so long. excuse me.
ok i post pseudocode hope you can add it with python in fact only little work:
full script i write in coming weeks. #EDIT: overload with RL-work. will sit on extension soon.

Code:
x=0
y=0
z = getTXnr(); //get total number of transactions
n = z%50 //modulo operater so we know the number of tx in last page [b]when its < 50 TX[/b]
m = (z-n)/50 //this is so we know HOW MANY TIMES we have A FULL PAGE (50 tx)

//also we need adapt the urladdr because now we take MORE THAN 50 txs. so we use offset parameter for going through pages.
for y < m:
      compare(loadData("https://blockchain.info/de/rawaddr/" + str(addr) + "&offset="+ x)) //now it load the TX begining @x tx.      
      x+=50; //now we go to NEXT 50 tx.. offset=50 means we ingnore first 50 txs.. or we start @TX NR 51..
      y+=1;

compare(loadData("https://blockchain.info/de/rawaddr/" + str(addr) + "&offset="+ x)); //now it take the LAST TXs from the LAST PAGE
//IMPORTANT: in the compare section of the script you MUST ONLY PARSE n transactions


This is the example of above pseudocode with REAL values in it. so you see every loops job and what is happening here exact:


Code:
//now REAL example with value: so we think for a [b]tx with 138 TXs[/b]
x = 0 //first offset we start @tx NR. 0
y = 0 //our counter for increment
z = 138 //number of total TX
n = 38  //138 modulo 50 = 38 rest
m = 2  //number of FULL pages with 50 TXs

//1st run of loop:

for 0 < 2:
     compare(loadData(blockchain_data(offset=0))); //we start at TX 0 and get data until TX nr. 50
     x=50

//2nd run of loop:

for 1 < 2:
     compare(loadData(blockchain_data(offset=50))); //we start at TX 50 and get data until TX nr. 100
     x=100

//now we leave foor-loop and compare the LAST txs (n)

compare(loadData(blockchain_data(offset=100))); // here its only important so you PARSE ONLY n transaction in the compare-part of the script.
//so for this is the n needed.



have a good sunday evening.
thank you.
ca333
legendary
Activity: 1456
Merit: 1018
HoneybadgerOfMoney.com Weed4bitcoin.com
March 11, 2015, 12:13:23 PM
#34
interesting feedback from person on reddit when I shared this script (I wrote an article on my own site to archive this script and talk about it and share it with others who aren't on here)  and it goes like:

Quote
There's a problem with either the script or the blockchain.info api where the number of tx field doesn't match the actual number of tx sent.
In other words,
Code:
assert( len(addrdata['txs']) < addrdata['n_tx'] )
fails.


The script only works for keys with up to 50 tx. If your key got more than 50 tx you have to add some lines (add loop and use optional API-parameters limit and offset to parse through all transactions [50+]).

yes but i writed this in the first post (see above comment), so its only for max 50 tx. when it s more you must adapt the script because it takes the information from blockchain.info and example its more 50 tx, but only loading 50 tx data from bc.info API, then it parses outside range of loaded data. this is the error. i hope you understand. when you need adaption of script write me. i am happy to help you anytime.
thank you.
  Yea I'd like to see the for loop if possible to choose trx size
legendary
Activity: 1044
Merit: 1000
https://r.honeygain.me/XEDDM2B07C
March 11, 2015, 11:03:31 AM
#33
Hey cool gadget man! Thanks for making it open source.  Kiss

I second this. Very nice indeed. Grin
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 10, 2015, 08:02:39 PM
#32
interesting feedback from person on reddit when I shared this script (I wrote an article on my own site to archive this script and talk about it and share it with others who aren't on here)  and it goes like:

Quote
There's a problem with either the script or the blockchain.info api where the number of tx field doesn't match the actual number of tx sent.
In other words,
Code:
assert( len(addrdata['txs']) < addrdata['n_tx'] )
fails.


The script only works for keys with up to 50 tx. If your key got more than 50 tx you have to add some lines (add loop and use optional API-parameters limit and offset to parse through all transactions [50+]).

yes but i writed this in the first post (see above comment), so its only for max 50 tx. when it s more you must adapt the script because it takes the information from blockchain.info and example its more 50 tx, but only loading 50 tx data from bc.info API, then it parses outside range of loaded data. this is the error. i hope you understand. when you need adaption of script write me. i am happy to help you anytime.
thank you.
legendary
Activity: 1456
Merit: 1018
HoneybadgerOfMoney.com Weed4bitcoin.com
March 10, 2015, 12:51:38 PM
#31
interesting feedback from person on reddit when I shared this script (I wrote an article on my own site to archive this script and talk about it and share it with others who aren't on here)  and it goes like:

Quote
There's a problem with either the script or the blockchain.info api where the number of tx field doesn't match the actual number of tx sent.
In other words,
Code:
assert( len(addrdata['txs']) < addrdata['n_tx'] )
fails.
legendary
Activity: 1974
Merit: 1076
^ Will code for Bitcoins
March 09, 2015, 06:29:14 AM
#30
but i think this people who are able to do this, have a moral compass and do not do this... badguys most cases are not very inteligent.[/b]

I wouldn't rely on this assumption, proof being that all vulnerable services have already being cleaned up. As someone said any reused value that now appears on the blockchain is cleaned almost instantly.
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 08, 2015, 07:22:23 PM
#29
ok
i give up
I downloaded the python and ran the script
it shows the data about my transactions ...
and show "compare" (ln 51)
and stops ...

Same, is the idea that its good to go and compare would ONLY show vulnerabilities (reused keys to sign messages)

edit: okay yes, looking more closely at the code a 2nd time:

Code:
print "In Input NR: " + str(xi) + "[global increment] " + str(inputs[xi])
print('\a')
                        print "Resued R-Value: "

Should output like:  

In Input NR: 4
Reused R-Value:  XXXXXXXXXXXXXXXX


if you have a problem that is

oh sorry.
yes correct. it only make output when you have problem/vuln. i added other output so it say "Good pubkey. No problems" when no reused signing key detectet. (in IT when all good we don't hear/see, we know then.., only when problem it must make alert. ;-) )
sr. member
Activity: 375
Merit: 254
March 08, 2015, 05:40:25 PM
#28
i got it
but would be nice a message saying "all good" ^^
legendary
Activity: 1456
Merit: 1018
HoneybadgerOfMoney.com Weed4bitcoin.com
March 08, 2015, 05:32:27 PM
#27
ok
i give up
I downloaded the python and ran the script
it shows the data about my transactions ...
and show "compare" (ln 51)
and stops ...

Same, is the idea that its good to go and compare would ONLY show vulnerabilities (reused keys to sign messages)

edit: okay yes, looking more closely at the code a 2nd time:

Code:
print "In Input NR: " + str(xi) + "[global increment] " + str(inputs[xi])
print('\a')
                        print "Resued R-Value: "

Should output like: 

In Input NR: 4
Reused R-Value:  XXXXXXXXXXXXXXXX


if you have a problem that is
sr. member
Activity: 375
Merit: 254
March 08, 2015, 04:45:28 PM
#26
ok
i give up
I downloaded the python and ran the script
it shows the data about my transactions ...
and show "compare" (ln 51)
and stops ...
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 08, 2015, 02:13:29 PM
#25
how you mean run online?
i dont want to download the python

hmm. you can also run it on vps server no problem. but most online-python parsers have urllib2/curl deactivated because security reasons. so it s difficult to have online-run.
sr. member
Activity: 375
Merit: 254
March 08, 2015, 11:15:42 AM
#24
how you mean run online?
i dont want to download the python
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 08, 2015, 10:29:33 AM
#23
50 transactions? Is that just the out transactions or whole transactions?

this is global value ("whole tx"). so 50 tx for one pubkey.

full member
Activity: 224
Merit: 100
March 08, 2015, 10:05:01 AM
#22
50 transactions? Is that just the out transactions or whole transactions?
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 08, 2015, 10:01:01 AM
#21
there how to run this script online?

how you mean run online? you can run script in your computer.
only install dependcies: python5
and then run make script executable (chmod 755) and then must only:
Code:
./script.py
  OR
Code:
python script.py
sr. member
Activity: 375
Merit: 254
March 08, 2015, 06:54:32 AM
#20
there how to run this script online?
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 07, 2015, 09:09:14 AM
#19
hi,

some asked me because of r-value is not display correct, but you have to watch on r value length descriptor in input script i descriped format of inputs in above posts. and then you only change: the char-array indexes for your correct length. for example this is for 64 chars = 32byte lenght of r-value.

Code:
if inputs[xi][10:74] == inputs[x+zi][10:74]:

when need help ask me. thank you
hero member
Activity: 520
Merit: 522
Developer - EthicHacker - BTC enthusiast
March 06, 2015, 12:09:25 PM
#18
This software is great, but does not provide any value to the users.
I am pretty sure, that reused R values will be detected within milliseconds and the private keys emptied immediately.
So if your funds are gone, you have reused a R value ;-)

not "any" because low balance keys are not interested for bad guys. i provided this for testing/educational purposes.
if i find out it makes harm to users/btc-community i will delete all. also the services i finded out have rng vuln i directly
imported balance and contacted developers. i think nobody with exsisting btc-service have rng issue anymore. also all pubkeys with more 50BTC or more balance are secured.

and i extra only provided a lightweight script. so with this technology (json request http) no chance to scan fast. if ported into ansic and used on highend server with own blockchain i can scan/compare all chain inputs in no time. but i think this people who are able to do this, have a moral compass and do not do this... badguys most cases are not very inteligent.


also if anybody interested in more things i start soon release my scriptbase and software on github. (ca333)
it s all for btc-security and some cryptocurrencies security.

thank you.

legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
March 06, 2015, 10:08:00 AM
#17
This software is great, but does not provide any value to the users.
I am pretty sure, that reused R values will be detected within milliseconds and the private keys emptied immediately.
So if your funds are gone, you have reused a R value ;-)
This was what I was going to say. Any re-used R-value will be detected and exploited within 20 seconds.
legendary
Activity: 1260
Merit: 1168
March 06, 2015, 04:31:38 AM
#16
This message was too old and has been purged
Pages:
Jump to: