{"action":"created","issue":{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2082","repository_url":"https://api.github.com/repos/magnumripper/JohnTheRipper","labels_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2082/labels{/name}","comments_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2082/comments","events_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2082/events","html_url":"https://github.com/magnumripper/JohnTheRipper/issues/2082","id":139287409,"number":2082,"title":"Use restore_tester_fmt.c to find and correct restore issues","user":{"login":"jfoug","id":1270024,"avatar_url":"https://avatars.githubusercontent.com/u/1270024?v=3","gravatar_id":"","url":"https://api.github.com/users/jfoug","html_url":"https://github.com/jfoug","followers_url":"https://api.github.com/users/jfoug/followers","following_url":"https://api.github.com/users/jfoug/following{/other_user}","gists_url":"https://api.github.com/users/jfoug/gists{/gist_id}","starred_url":"https://api.github.com/users/jfoug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfoug/subscriptions","organizations_url":"https://api.github.com/users/jfoug/orgs","repos_url":"https://api.github.com/users/jfoug/repos","events_url":"https://api.github.com/users/jfoug/events{/privacy}","received_events_url":"https://api.github.com/users/jfoug/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/labels/bug","name":"bug","color":"e11d21"},{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/labels/core%20John%20(master%20branch)","name":"core John (master branch)","color":"000000"},{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/labels/non-trivial","name":"non-trivial","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-03-08T14:12:06Z","updated_at":"2016-03-11T18:16:47Z","closed_at":null,"body":"Things I know about.  Add more as they are seen/fixed, since some of these should get done in core also.\r\n\r\n- [x] rules.  When restarting, the words are restarted for whatever rules were being worked on.  (Fixed 2 bugs https://github.com/magnumripper/JohnTheRipper/commit/2110a37528fb936f52ff789a0f5d27f05f09b5d1 and https://github.com/magnumripper/JohnTheRipper/commit/62310e8b5a9aefc2b31da43e167eedcd280fb6a5)\r\n- [x] rexgen does not resume  #570   (fixed but can not use until v1.4.0 of rexgen is released).\r\n- [x] rexgen-hybrid only resumes the base-word  #570.\r\n- [ ] Multi-salt mode restarts all salt work over again\r\n- [ ] single mode\r\n- [ ] markov mode\r\n- [ ] mask mode\r\n- [ ] wordlist mask hybrid\r\n\r\nSome of these could be handled as 'hybrid' type blocks added to the end of a .rec file (I think). Things like the rules and multi-salts redoing work, could be addressed in that manner.  The 'normal' V4 processing of the rec file gets us back to the right words, and then the hybrid extra block appended provides additional information on how far to skip ahead inside the subwork done on the word or set of words, so that prior completed work is not replicated.\r\n\r\nThe restore_tester_fmt is great for determining exactly what was processed, written to .pot files, etc.  So that we know 100% that we restart at proper location, not before, and CERTAINLY not later in the word stream."},"comment":{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/comments/195485589","html_url":"https://github.com/magnumripper/JohnTheRipper/issues/2082#issuecomment-195485589","issue_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2082","id":195485589,"user":{"login":"jfoug","id":1270024,"avatar_url":"https://avatars.githubusercontent.com/u/1270024?v=3","gravatar_id":"","url":"https://api.github.com/users/jfoug","html_url":"https://github.com/jfoug","followers_url":"https://api.github.com/users/jfoug/followers","following_url":"https://api.github.com/users/jfoug/following{/other_user}","gists_url":"https://api.github.com/users/jfoug/gists{/gist_id}","starred_url":"https://api.github.com/users/jfoug/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfoug/subscriptions","organizations_url":"https://api.github.com/users/jfoug/orgs","repos_url":"https://api.github.com/users/jfoug/repos","events_url":"https://api.github.com/users/jfoug/events{/privacy}","received_events_url":"https://api.github.com/users/jfoug/received_events","type":"User","site_admin":false},"created_at":"2016-03-11T18:16:47Z","updated_at":"2016-03-11T18:16:47Z","body":"I have multi-salt restore working, but it will require a new REC-VERSION  (v5).  This 'could' be handled in the same manner as I have done on the other 'extra' blocks.  So I could keep this at REC_VERSION=4 and add a block like this to the end of the file\r\n\r\nslt-v1\r\n%x\r\n\r\n%x is a salt idx.\r\n\r\nCurrently, I have added the salt idx to the bottom of the 'normal' block of restore stuff, and read it from there.  But it would not have to be done in this manner.  The way I did it for the other 'hybrid' modes would work just fine.\r\n\r\nI am asking (@magnumripper and @frank-dittrich mostly), which way they would like to see this done?  I could easily add this as a slt-v1 block, and then later if solar adds this data into a REC5 model, we could switch our logic to use that (but keep the slt-v1 processing, so any .rec files created could still be read).\r\n\r\nBut I really want this to be put into code.  When working with a LARGE number of salts of some pretty slow formats, means that there is a lot of replicated work any time you have to shut down."}}