Closed farmerchris closed 1 month ago
I have seen cases where different processes are printed as processing overlapping word ranges:
nice john my.hash --fork=6 --session=sess -w=rockyouaz.sorted --max-length=4
5 0g 0:00:01:18 8.43% (ETA: 16:31:18) 0g/s 1.767p/s 1.767c/s 1.767C/s base..bash
4 0g 0:00:01:32 8.49% (ETA: 16:33:56) 0g/s 1.726p/s 1.726c/s 1.726C/s bart..bata
1 0g 0:00:01:32 22.55% (ETA: 16:10:51) 0g/s 6.268p/s 6.268c/s 6.268C/s dies..diez 2 0g 0:00:01:32 8.63% (ETA: 16:21:49) 0g/s 2.266p/s 2.266c/s 2.266C/s bazy..bb 3 0g 0:00:01:32 8.68% (ETA: 16:21:43) 0g/s 2.277p/s 2.277c/s 2.277C/s bbg..bbk 4 0g 0:00:01:32 8.58% (ETA: 16:21:56) 0g/s 2.254p/s 2.254c/s 2.254C/s baum..baya
Looking more at this I see it may be that the 1st thread is just moving faster through the list. It has more p/s and c/s than the other threads. Any reason this would be expected?
I think this is not a real issue.
We assume the wordlist might be sorted for decreasing word frequency or estimated probability, which is why we don't just split it in pieces like first quarter and on, but instead have all processes start at the beginning and skip other processes' words. So it's fine that the ranges in an alphabetically-sorted wordlist appear overlapping - this does not mean that the processes are trying the same candidate passwords.
Looking more at this I see it may be that the 1st thread is just moving faster through the list. It has more p/s and c/s than the other threads. Any reason this would be expected?
Such substantial difference in performance is generally unexpected. My guess is that somehow only one process is running on a performance core and the rest on efficiency cores in your Apple Silicon CPU. I'm not familiar with macOS process scheduler and don't know whether it would commonly maintain CPU affinity like that instead of juggling processes between core types. Maybe for power efficiency reasons it's by default unwilling to give one parent task more than one performance core, or something. @magnumripper might have a better idea.
Thanks for clarifying. after studying some more I’m satisfied that the behavior I was seeing is caused by reduced cpu assigned to forked processes vs the parent process. I don’t know why that would happen but it doesn’t seem to be a john bug so I’ll retract the issue. - ChrisOn Sep 29, 2024, at 6:38 PM, Solar Designer @.***> wrote: We assume the wordlist might be sorted for decreasing word frequency or estimated probability, which is why we don't just split it in pieces like first quarter and on, but instead have all processes start at the beginning and skip other processes' words. So it's fine that the ranges in an alphabetically-sorted wordlist appear overlapping - this does not mean that the processes are trying the same candidate passwords.
Looking more at this I see it may be that the 1st thread is just moving faster through the list. It has more p/s and c/s than the other threads. Any reason this would be expected?
Such substantial difference in performance is generally unexpected. My guess is that somehow only one process is running on a performance core and the rest on efficiency cores in your Apple Silicon CPU. I'm not familiar with macOS process scheduler and don't know whether it would commonly maintain CPU affinity like that instead of juggling processes between core types. Maybe for power efficiency reasons it's by default unwilling to give one parent task more than one performance core, or something. @magnumripper might have a better idea.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you modified the open/close state.Message ID: @.***>
I have found that when I fork more than 2 processes, the 2nd through Nth all operate on the exact same set of words from the word list. I ran the command below on a hash file with 1 record remaining to crack. The wordlist is sorted alphabetically. The first thread proceeded through the alphabet from the d's to the e's, etc. The remaining 3 threads all worked on the b's.
Looking at the output .rec files, it seems there is no difference between the contents of rec 2 through N. When restored, they are all reading the same instructions and therefore processing the same passwords.
Attach details about your OS and about john, including:
./john --list=build-info
.