|
nomachine
|
 |
March 25, 2025, 05:16:17 AM |
|
win bins?
i compiled it but got funny fonts...
Fixed… Simple Code Change (Replaced ∞ with N/A) No UTF-8 Issues: Works on every terminal, no fancy encoding needed. Clear Meaning: "N/A" is universal—everyone gets "Not Applicable." Zero Configuration: Runs everywhere, no fuss: Windows Linux/macOS terminals Remote SSH sessions Log files and whatever else you throw at it... Sometimes, the dumbest solution is the best. Optimization is good—until it adds more problems than it solves. Premature optimization? Wasted time. "N/A" beats fighting with ∞ any day. The End. 
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
AlanJohnson
Member

Offline
Activity: 185
Merit: 11
|
 |
March 25, 2025, 05:25:47 AM |
|
Hi, I think I found a small bug: ./Cyclone -h 95a156cd21b4a69de969eb6716864f4c8b82a82a -p 40 -t 4 -b 5
================= WORK IN PROGRESS ================= Puzzle/Bits : 40 Target Hash160: 95a156cd21b4a69de969eb6716864f4c8b82a82a Prefix length : 5 bytes Mode : Sequential CPU Threads : 4 Mkeys/s : 23.31 Total Checked : 166785826816 Elapsed Time : 01:59:15 Range : 8000000000:ffffffffff Progress : 30.338165 % Progress Save : 11 Stride : 1 ================== FOUND MATCH! ==================== Private Key : 000000000000000000000000000000000000000000000000000000E9AE4933D7 Public Key : 027F9692C97565C48481E19FB95933C3F023D91DEF62394A38FF6B1ACA6E499EB5 Total Checked : 166891761152 Elapsed Time : 01:59:15 Speed : 23.3083 Mkeys/s
This is puzzle #40; the Private Key is off by 1: E9AE4933D 6It's a great program, thanks for all your hard work, man. It's not a bug. "Partial Matches: If a partial match is found, the program will display: Private Key 🔑 Public Key 🛁 Found Hash160 🧨 Target Hash160 🎯 Matched Bytes 💥 Full Match: If a full match is found, the program will display: FULL MATCH! 🚨 PRIVATE KEY FOUND! ✅ Auto-saved to KEYFOUND.txt"
|
|
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 05:29:01 AM |
|
Sometimes, the dumbest solution is the best. Optimization is good—until it adds more problems than it solves. Premature optimization? Wasted time.
(You should’ve put this in your signature.) I wasn’t happy with the simple approach. I thought: "What if I scaled this across 100 AWS instances?" So I built: A Kubernetes cluster for orchestration Redis for distributed job queueing S3 for centralized logging Lambda for failover handling Now the system could process quadrillions of keys per second… but cost $10,000/month to run.  P.S. Someone eventually found the key… using a 10-line Python script. 
|
|
|
|
|
WanderingPhilospher
Sr. Member
  
Offline
Activity: 1498
Merit: 286
Shooters Shoot...
|
 |
March 25, 2025, 06:05:54 AM |
|
It's not a bug.
"Partial Matches: If a partial match is found, the program will display:
Private Key 🔑 Public Key 🛁 Found Hash160 🧨 Target Hash160 🎯 Matched Bytes 💥
Full Match: If a full match is found, the program will display: FULL MATCH! 🚨 PRIVATE KEY FOUND! ✅ Auto-saved to KEYFOUND.txt" If the program is not writing the correct private key to file or screen, it is a bug. The private keys saved are off by 1, just as GoldTiger69 said. Am I missing something?? I checked and I get the same result, the private key is off by 1. Not a huge bug, but still a bug.
|
|
|
|
|
AlanJohnson
Member

Offline
Activity: 185
Merit: 11
|
 |
March 25, 2025, 06:09:24 AM |
|
It's not a bug.
"Partial Matches: If a partial match is found, the program will display:
Private Key 🔑 Public Key 🛁 Found Hash160 🧨 Target Hash160 🎯 Matched Bytes 💥
Full Match: If a full match is found, the program will display: FULL MATCH! 🚨 PRIVATE KEY FOUND! ✅ Auto-saved to KEYFOUND.txt" If the program is not writing the correct private key to file or screen, it is a bug. The private keys saved are off by 1, just as GoldTiger69 said. Am I missing something?? I checked and I get the same result, the private key is off by 1. Not a huge bug, but still a bug. Wasn't it the case called "partial match" ?
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 06:14:03 AM Last edit: March 25, 2025, 07:06:07 AM by nomachine |
|
This is puzzle #40; the Private Key is off by 1: E9AE4933D6
You're right. It will be fixed soon. Fixed: # ./Cyclone -h 95a156cd21b4a69de969eb6716864f4c8b82a82a -r E9AE4913D7:E9AE4933D7 -t 12 -b 5
================== FOUND MATCH! ==================== Private Key : 000000000000000000000000000000000000000000000000000000E9AE4933D6 Public Key : 03A2EFA402FD5268400C77C20E574BA86409EDEDEE7C4020E4B9F0EDBEE53DE0D4 Total Checked : 12288 Elapsed Time : 00:00:00 Speed : 0.293515 Mkeys/s
# ./Cyclone -h bfebb73562d4541b32a02ba664d140b5a574792f -p 26 -b 8 -S -t 12
================== FOUND MATCH! ==================== Private Key : 000000000000000000000000000000000000000000000000000000000340326E Public Key : 024E4F50A2A3ECCDB368988AE37CD4B611697B26B29696E42E06D71368B4F3840F Total Checked : 16718848 Elapsed Time : 00:00:00 Speed : 3.0181 Mkeys/s
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 07:16:14 AM |
|
Fixed:
There’s no end to this. I can’t keep up anymore. Don’t change anything else for now. It’s finally giving accurate results. Sorry for the trouble; it’s all my fault. 
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 08:02:10 AM Last edit: March 25, 2025, 08:31:47 AM by nomachine |
|
Fixed:
There’s no end to this. I can’t keep up anymore. Don’t change anything else for now. It’s finally giving accurate results. Sorry for the trouble; it’s all my fault.  Don’t worry. One of my jobs was in tech support. Three shifts, 24/7, dealing with the same nonsense. After six years and exactly two days, my brain burned out. Since then, every other job has been honey and milk compared to working in that mine.  Someone eventually found the key… using a 10-line Python script.  Ain’t no way that 10-line Python script brute-forced a 68-bit puzzle. That’s like tryna crack a bank vault with a wet noodle. Either that script’s got cheat codes or somebody’s fibbin’ harder than a politician on election day.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
zahid888
Member

Offline
Activity: 335
Merit: 24
the right steps towards the goal
|
 |
March 25, 2025, 08:27:36 AM |
|
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
Ovixx
Newbie
Offline
Activity: 52
Merit: 0
|
 |
March 25, 2025, 08:46:37 AM Last edit: March 25, 2025, 09:11:41 AM by Ovixx |
|
Thank you and I appreciate it! but I get the following error: https://imgur.com/a/rVnEXqC.....and four more DLLs that I don't have. What are the necessary prerequisites?
|
|
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 08:54:06 AM |
|
It doesn't work. >.\PuzzleFinder.exe -sbl 19 -ebl 20 -p 4 -t 1 -i .\addresses.txt >
> .\PuzzleFinder.exe All options -t, -i, -sbl, -ebl, and -p are required! -t <threads> : Number of CPU threads (1 to max available) -i <input_file.txt> : Path to file of Base58 Bitcoin addresses -sbl <start_bit_length> : Starting bit length (e.g., 67) -ebl <end_bit_length> : Ending bit length (e.g., 160) -p <prefix_length> : Length of prefix to match (1-20)
>.\PuzzleFinder.exe -sbl 40 -ebl 41 -p 4 -t 1 -i .\addresses.txt > I get a blank line after the command. No error, Windows 11.
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 09:30:16 AM Last edit: March 25, 2025, 09:41:05 AM by nomachine |
|
It doesn't work.
I get a blank line after the command. No error, Windows 11.
If the app was compiled with dynamic linking (using DLLs), the target PC might be missing required runtime libraries. (e.g., MSVCR140.dll for Visual Studio or libstdc++-6.dll for MinGW). Check Dependencies (Run in Command Prompt): dumpbin /dependents PuzzleFinder.exe If you see: libgcc_s_seh-1.dll, libstdc++-6.dll, libwinpthread-1.dll → Static linking failed. MSVCR140.dll, VCRUNTIME140.dll → Visual Studio runtime is dynamically linked. For MinGW (g++) , recompile with static linking -static to embed all dependencies. (Without any nasty viruses, if possible.  ) I have a Makefile which does it automatically so there is no confusion. I personally hate sharing exe files.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 10:01:17 AM |
|
Check Dependencies (Run in Command Prompt): dumpbin /dependents PuzzleFinder.exe (Without any nasty viruses, if possible.  ) I personally hate sharing exe files. > dumpbin /dependents PuzzleFinder.exe Microsoft (R) COFF/PE Dumper Version 14.42.34438.0 Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file PuzzleFinder.exe
File Type: EXECUTABLE IMAGE
Image has the following dependencies:
libgcc_s_seh-1.dll libgomp-1.dll libstdc++-6.dll KERNEL32.dll api-ms-win-crt-convert-l1-1-0.dll api-ms-win-crt-environment-l1-1-0.dll api-ms-win-crt-filesystem-l1-1-0.dll api-ms-win-crt-heap-l1-1-0.dll api-ms-win-crt-locale-l1-1-0.dll api-ms-win-crt-math-l1-1-0.dll api-ms-win-crt-private-l1-1-0.dll api-ms-win-crt-runtime-l1-1-0.dll api-ms-win-crt-stdio-l1-1-0.dll api-ms-win-crt-string-l1-1-0.dll api-ms-win-crt-time-l1-1-0.dll libwinpthread-1.dll Why do you hate exe files - you think someone will intentionally insert something into them? 
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 10:07:17 AM |
|
[1;1H================= WORK IN PROGRESS =================
It will be corrected, though I honestly don’t care what happens to anyone using Windows. Why do you hate exe files - you think someone will intentionally insert something into them?  No, I'm most afraid of those who don't even know they have a virus and are spreading it through .exe files. 
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
zahid888
Member

Offline
Activity: 335
Merit: 24
the right steps towards the goal
|
 |
March 25, 2025, 11:03:57 AM |
|
Thank you and I appreciate it! but I get the following error:  .....and four more DLLs that I don't have. What are the necessary prerequisites? It doesn't work. I get a blank line after the command. No error, Windows 11. OMG, I am waiting for benchmarks Lol...The .exe was purring like a champ on my machine, and I totally assumed you all had g++ and MinGW ready to roll in your system environment. Cyclone’s been whipping up a storm here for ages (  ), and I got a bit carried away! No worries—I’ve jazzed up the GitHub README with a shiny "How to Run the Executable" section. Check it out, and hopefully, that fixes everything! Can’t wait to see your benchmarks—bring it on! Oh, and here’s a pro tip: for the best treasure-hunting vibes with this .exe, tweak your computer clock back to January 13, 2015. It’ll supercharge the random logic I cooked up... "The logic" That’s precisely why I’ve kept the source code under wraps—I wanted to protect the logic behind this tool from being exposed.
|
1BGvwggxfCaHGykKrVXX7fk8GYaLQpeixA
|
|
|
Akito S. M. Hosana
Jr. Member
Offline
Activity: 420
Merit: 8
|
 |
March 25, 2025, 11:56:00 AM |
|
No, I'm most afraid of those who don't even know they have a virus and are spreading it through .exe files.  You're right to be cautious. I already got something slowing down my PC. Downloaded it from a torrent... 
|
|
|
|
|
Denevron
Newbie
Offline
Activity: 121
Merit: 0
|
 |
March 25, 2025, 12:15:24 PM |
|
Sometimes, the dumbest solution is the best. Optimization is good—until it adds more problems than it solves. Premature optimization? Wasted time.
(You should’ve put this in your signature.) I wasn’t happy with the simple approach. I thought: "What if I scaled this across 100 AWS instances?" So I built: A Kubernetes cluster for orchestration Redis for distributed job queueing S3 for centralized logging Lambda for failover handling Now the system could process quadrillions of keys per second… but cost $10,000/month to run.  P.S. Someone eventually found the key… using a 10-line Python script.  Python script can solve up to 40-50 bits, but not more, it is too slow! I have an interesting implementation, but to find 68 through it, you need a lot of time because of the speed, but it really reduces the number of options to be sorted! I am trying to transfer it to Cyclone, but so far without success)
|
|
|
|
|
Ovixx
Newbie
Offline
Activity: 52
Merit: 0
|
 |
March 25, 2025, 12:26:34 PM |
|
Thank you and I appreciate it! but I get the following error: https://imgur.com/a/rVnEXqC.....and four more DLLs that I don't have. What are the necessary prerequisites? It doesn't work. I get a blank line after the command. No error, Windows 11. OMG, I am waiting for benchmarks Lol...The .exe was purring like a champ on my machine, and I totally assumed you all had g++ and MinGW ready to roll in your system environment. Cyclone’s been whipping up a storm here for ages (  ), and I got a bit carried away! No worries—I’ve jazzed up the GitHub README with a shiny "How to Run the Executable" section. Check it out, and hopefully, that fixes everything! Can’t wait to see your benchmarks—bring it on! Oh, and here’s a pro tip: for the best treasure-hunting vibes with this .exe, tweak your computer clock back to January 13, 2015. It’ll supercharge the random logic I cooked up... "The logic" That’s precisely why I’ve kept the source code under wraps—I wanted to protect the logic behind this tool from being exposed. It works now. I'm running for a single address with 24 threads... the speed is ~91 Mkeys/s but it decreases ... after 3 minutes it reached 62 Mkeys/s
|
|
|
|
|
|
nomachine
|
 |
March 25, 2025, 12:46:18 PM |
|
For anyone still seeing [1;1H[K instead of proper terminal controls:
PowerShell and Windows Terminal natively support ANSI escape codes, unlike the legacy Command Prompt (cmd.exe).
You need to use anything except cmd.exe for proper functionality.
If you try adding <windows.h> to enable ANSI or UTF-8 support, it may cause macro conflicts with the rest of the script and break parts of it.
Complain to the original author that their script isn't working correctly because they assumed macros would function this way.
|
BTC: bc1qdwnxr7s08xwelpjy3cc52rrxg63xsmagv50fa8
|
|
|
HABJo12
Newbie
Offline
Activity: 21
Merit: 0
|
 |
March 25, 2025, 12:54:18 PM |
|
uSE THIS FOR PYTHON import hashlib import ecdsa import random from multiprocessing import Pool, cpu_count, Manager import queue
# Define constants TARGET_HASH160 = "e0b8a2baee1b77fc703455f39d51477451fc8cfc".lower() LOWER_BOUND = int("80000000000000000", 16) UPPER_BOUND = int("ffFFFFFFFFFFFFFFF", 16) KEYS_PER_ITERATION = 1_000_000 # Number of keys to generate per iteration
def private_key_to_hash160(private_key_hex): """Generate the Hash160 from a private key using compressed public key.""" private_key_bytes = bytes.fromhex(private_key_hex) sk = ecdsa.SigningKey.from_string(private_key_bytes, curve=ecdsa.SECP256k1) vk = sk.get_verifying_key() public_key = vk.to_string("compressed") sha256_hash = hashlib.sha256(public_key).digest() ripemd160 = hashlib.new("ripemd160") ripemd160.update(sha256_hash) hash160 = ripemd160.hexdigest() return hash160
def check_key_range(args): """Check a set of random private keys and queue their Hash160 values.""" num_keys, target_hash160, print_queue, lower_bound, upper_bound = args for _ in range(num_keys): current_int = random.randint(lower_bound, upper_bound) private_key_hex = f"{current_int:064x}" hash160 = private_key_to_hash160(private_key_hex) print_queue.put((private_key_hex, hash160)) if hash160.lower() == target_hash160: return (private_key_hex, hash160) return None
def process_iteration(keys_per_iteration, target_hash160, num_processes, print_queue): """Process a set of random keys, printing private keys and Hash160 values.""" keys_per_process = keys_per_iteration // num_processes # Adjust for any remainder ranges = [ ( keys_per_process if i < num_processes - 1 else keys_per_iteration - (keys_per_process * (num_processes - 1)), target_hash160, print_queue, LOWER_BOUND, UPPER_BOUND ) for i in range(num_processes) ]
with Pool(processes=num_processes) as pool: result = pool.map_async(check_key_range, ranges) while True: try: priv, h160 = print_queue.get(timeout=0.1) print(f"Private Key: {priv}, Hash160: {h160}") except queue.Empty: if result.ready(): break results = result.get()
for res in results: if res: return res return None
def main(): """Main function to search for a matching Hash160 with random key generation.""" total_attempts = 0 iteration = 0 num_processes = cpu_count() manager = Manager() print_queue = manager.Queue()
print(f"Searching for Hash160: {TARGET_HASH160}") print(f"Range: {LOWER_BOUND:X} to {UPPER_BOUND:X}") print(f"Using {num_processes} processes with {KEYS_PER_ITERATION} keys per iteration\n")
while True: iteration += 1 total_attempts += KEYS_PER_ITERATION
print(f"Iteration {iteration}:") print(f"Generating {KEYS_PER_ITERATION} random keys...")
result = process_iteration(KEYS_PER_ITERATION, TARGET_HASH160, num_processes, print_queue)
if result: private_key_hex, hash160 = result print(f"\nMatch found after {total_attempts} attempts!") print(f"Private Key: {private_key_hex}") print(f"Hash160: {hash160}") with open("found_match.txt", "w") as f: f.write(f"Private Key: {private_key_hex}\nHash160: {hash160}") break
print(f"Completed iteration {iteration}. Total attempts: {total_attempts}\n")
if __name__ == "__main__": main() IF YOU ARE SATISFIED MAKE DROP A TIP HERE ON 16qw4VqkxSSfKzguDyVzM68jsWw71yEgP4
|
|
|
|
|
|