Skip to content

Commit f2ab5f5

Browse files
Merge pull request #6 from cyclone-github/testing
v0.2.3 - fix #5
2 parents 7b559ee + c9e5152 commit f2ab5f5

File tree

9 files changed

+172
-187
lines changed

9 files changed

+172
-187
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
### v0.2.3; 2025-01-13
2+
```
3+
fix https://github.com/cyclone-github/atomic_pwn/issues/5
4+
modified codebase to mirror phantom_decryptor
5+
```
6+
### v0.2.2; 2024-05-02-1600
7+
```
8+
refactor code
9+
fix https://github.com/cyclone-github/atomic_pwn/issues/2
10+
```
11+
### v0.2.1; 2024-04-18-1200
12+
```
13+
optimize code for 111% performance gain (process lines as byte, tweak read/write/chan buffers)
14+
```
15+
### v0.2.0; 2024-04-17
16+
```
17+
used multi-threading code from hashgen for 40% performance (alpha)
18+
```
19+
### v0.1.0; 2024-04-16
20+
```
21+
initial release
22+
```

README.md

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
### POC tools to extract and decrypt Atomic vault wallets
99
_**This tool is proudly the first publicly released Atomic Vault extractor / decryptor.**_
1010
- Contact me at https://forum.hashpwn.net/user/cyclone if you need help recovering your Atomic wallet password or seed phrase
11-
12-
### Usage example:
1311
```
1412
./atomic_decryptor_amd64.bin -h atomic.txt -w wordlist.txt
1513
-----------------------------------------------
@@ -21,13 +19,33 @@ Vault file: atomic.txt
2119
Valid Vaults: 1
2220
CPU Threads: 16
2321
Wordlist: wordlist.txt
24-
Working...
22+
2025/01/13 16:49:42 Working...
23+
Hash: {foobar hash}
24+
Password: {password}
25+
Seed Phrase: {decrypted seed phrase}
26+
2025/01/13 16:49:50 Finished
27+
2025/01/13 16:49:50 Decrypted: 1/1 1786145.15 h/s 00h:00m:08s
28+
```
2529

26-
Decrypted: 0/1 2400342.75 h/s 00h:01m:00s
30+
### Example Usage:
2731
```
32+
-w {wordlist} (omit -w to read from stdin)
33+
-h {atomic_wallet_hash}
34+
-o {output} (omit -o to write to stdout)
35+
-t {cpu threads}
36+
-s {print status every nth sec}
37+
38+
-version (version info)
39+
-help (usage instructions)
40+
41+
./atomic_decryptor.bin -h {atomic_wallet_hash} -w {wordlist} -o {output} -t {cpu threads} -s {print status every nth sec}
2842
29-
### Output example:
30-
If the tool successfully decrypts the vault, tool will print the vault password and decrypted vault.
43+
./atomic_decryptor.bin -h atomic.txt -w wordlist.txt -o cracked.txt -t 16 -s 10
44+
45+
cat wordlist | ./atomic_decryptor.bin -h atomic.txt
46+
47+
./atomic_decryptor.bin -h atomic.txt -w wordlist.txt -o output.txt
48+
```
3149

3250
### Credits
3351
- Many thanks to blandyuk for his help with the AES Key and IV implementation - https://github.com/blandyuk
@@ -48,3 +66,6 @@ If the tool successfully decrypts the vault, tool will print the vault password
4866
- `go build -ldflags="-s -w" .`
4967
- Compile from source code how-to:
5068
- https://github.com/cyclone-github/scripts/blob/main/intro_to_go.txt
69+
70+
### Changelog:
71+
* https://github.com/cyclone-github/atomic_pwn/blob/main/CHANGELOG.md

atomic_decryptor/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module atomic_decryptor
22

3-
go 1.22.4
3+
go 1.23.4

atomic_decryptor/main.go

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,18 @@ GNU General Public License v2.0
2222
https://github.com/cyclone-github/atomic_pwn/blob/main/LICENSE
2323
2424
version history
25-
v0.1.0-2024-04-16; initial release
26-
v0.2.0-2024-04-17; used multi-threading code from hashgen for 40% performance (alpha)
27-
v0.2.1-2024-04-18-1200; optimize code for 111% performance gain (process lines as byte, tweak read/write/chan buffers)
28-
v0.2.2-2024-05-02-1600; refactor code, fix https://github.com/cyclone-github/atomic_pwn/issues/2
25+
v0.1.0; 2024-04-16
26+
initial release
27+
v0.2.0; 2024-04-17
28+
used multi-threading code from hashgen for 40% performance (alpha)
29+
v0.2.1; 2024-04-18-1200
30+
optimize code for 111% performance gain (process lines as byte, tweak read/write/chan buffers)
31+
v0.2.2; 2024-05-02-1600
32+
refactor code
33+
fix https://github.com/cyclone-github/atomic_pwn/issues/2
34+
v0.2.3; 2025-01-13
35+
fix https://github.com/cyclone-github/atomic_pwn/issues/5
36+
modified codebase to mirror phantom_decryptor
2937
*/
3038

3139
// main func
@@ -64,19 +72,20 @@ func main() {
6472
os.Exit(1)
6573
}
6674

67-
// override outputFile since this has not been implemented yet
68-
*outputFile = ""
69-
7075
startTime := time.Now()
7176

7277
// set CPU threads
7378
numThreads := setNumThreads(*threadFlag)
7479

75-
// channels / variables
76-
crackedCountCh := make(chan int, 10) // buffer of 10 to reduce blocking
77-
linesProcessedCh := make(chan int, 1000) // buffer of 1000 to reduce blocking
80+
// variables
81+
var (
82+
crackedCount int32
83+
linesProcessed int32
84+
wg sync.WaitGroup
85+
)
86+
87+
// channels
7888
stopChan := make(chan struct{})
79-
var wg sync.WaitGroup
8089

8190
// goroutine to watch for ctrl+c
8291
handleGracefulShutdown(stopChan)
@@ -94,12 +103,16 @@ func main() {
94103

95104
// monitor status of workers
96105
wg.Add(1)
97-
go monitorPrintStats(crackedCountCh, linesProcessedCh, stopChan, startTime, validVaultCount, &wg, *statsIntervalFlag)
106+
go monitorPrintStats(&crackedCount, &linesProcessed, stopChan, startTime, validVaultCount, &wg, *statsIntervalFlag)
98107

99108
// start the processing logic
100-
startProc(*wordlistFileFlag, *outputFile, numThreads, stopChan, vaults, crackedCountCh, linesProcessedCh)
109+
startProc(*wordlistFileFlag, *outputFile, numThreads, vaults, &crackedCount, &linesProcessed, stopChan)
101110

102111
// close stop channel to signal all workers to stop
103-
time.Sleep(10 * time.Millisecond)
104112
closeStopChannel(stopChan)
113+
114+
// wait for monitorPrintStats to finish
115+
wg.Wait()
105116
}
117+
118+
// end code

atomic_decryptor/print_welcome.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
// version func
1010
func versionFunc() {
11-
fmt.Fprintln(os.Stderr, "Cyclone's Atomic Vault Decryptor v0.2.2-2024-05-02-1600\nhttps://github.com/cyclone-github/atomic_pwn\n")
11+
fmt.Fprintln(os.Stderr, "Cyclone's Atomic Vault Decryptor v0.2.3; 2025-01-13\nhttps://github.com/cyclone-github/atomic_pwn\n")
1212
}
1313

1414
// help func
@@ -18,7 +18,7 @@ func helpFunc() {
1818
1919
-w {wordlist} (omit -w to read from stdin)
2020
-h {atomic_wallet_hash}
21-
-o {output} (omit -o to write to stdout) (not implemented yet)
21+
-o {output} (omit -o to write to stdout)
2222
-t {cpu threads}
2323
-s {print status every nth sec}
2424
@@ -46,7 +46,6 @@ func printWelcomeScreen(vaultFileFlag, wordlistFileFlag *string, validVaultCount
4646
fmt.Fprintf(os.Stderr, "Valid Vaults:\t%d\n", validVaultCount)
4747
fmt.Fprintf(os.Stderr, "CPU Threads:\t%d\n", numThreads)
4848

49-
// assume "stdin" if wordlistFileFlag is ""
5049
if *wordlistFileFlag == "" {
5150
fmt.Fprintf(os.Stderr, "Wordlist:\tReading stdin\n")
5251
} else {

0 commit comments

Comments
 (0)