{"action":"created","issue":{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2099","repository_url":"https://api.github.com/repos/magnumripper/JohnTheRipper","labels_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2099/labels{/name}","comments_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2099/comments","events_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2099/events","html_url":"https://github.com/magnumripper/JohnTheRipper/issues/2099","id":143419425,"number":2099,"title":"external hybrid mode needs 'pushed' fix_state handling","user":{"login":"crioux","id":819652,"avatar_url":"https://avatars.githubusercontent.com/u/819652?v=3","gravatar_id":"","url":"https://api.github.com/users/crioux","html_url":"https://github.com/crioux","followers_url":"https://api.github.com/users/crioux/followers","following_url":"https://api.github.com/users/crioux/following{/other_user}","gists_url":"https://api.github.com/users/crioux/gists{/gist_id}","starred_url":"https://api.github.com/users/crioux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crioux/subscriptions","organizations_url":"https://api.github.com/users/crioux/orgs","repos_url":"https://api.github.com/users/crioux/repos","events_url":"https://api.github.com/users/crioux/events{/privacy}","received_events_url":"https://api.github.com/users/crioux/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2016-03-25T04:10:05Z","updated_at":"2016-03-28T03:05:14Z","closed_at":null,"body":"when doing hybrid external on top of wordlist, the 'fix state' logic called by crk_process_key was calling the crk_fix_state from wordlist.c, not the ext_hybrid_fix_state. This had two bad effects:\r\n1. ext_hybrid_fix_state was not being called as frequently as it should have been or in the right place\r\n2. wordlist's 'fix state' was being called too early, when the word was not yet complete, and in the case of an interruption, the 'restore' would resume at the _next_ word, not the current one, skipping all the remaining permutations of hybrid external on that word.\r\n\r\nI have attached a patch, and as a bonus, attached a hybrid 'leet' mode word rotator for your cracking pleasure. (i needed it for lc7, so here you go.) \r\n\r\n[p.patch.txt](https://github.com/magnumripper/JohnTheRipper/files/189052/p.patch.txt)\r\n[hybridleet.zip](https://github.com/magnumripper/JohnTheRipper/files/189050/hybridleet.zip)\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/comments/202211660","html_url":"https://github.com/magnumripper/JohnTheRipper/issues/2099#issuecomment-202211660","issue_url":"https://api.github.com/repos/magnumripper/JohnTheRipper/issues/2099","id":202211660,"user":{"login":"crioux","id":819652,"avatar_url":"https://avatars.githubusercontent.com/u/819652?v=3","gravatar_id":"","url":"https://api.github.com/users/crioux","html_url":"https://github.com/crioux","followers_url":"https://api.github.com/users/crioux/followers","following_url":"https://api.github.com/users/crioux/following{/other_user}","gists_url":"https://api.github.com/users/crioux/gists{/gist_id}","starred_url":"https://api.github.com/users/crioux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crioux/subscriptions","organizations_url":"https://api.github.com/users/crioux/orgs","repos_url":"https://api.github.com/users/crioux/repos","events_url":"https://api.github.com/users/crioux/events{/privacy}","received_events_url":"https://api.github.com/users/crioux/received_events","type":"User","site_admin":false},"created_at":"2016-03-28T03:05:14Z","updated_at":"2016-03-28T03:05:14Z","body":"This is the john.rec file at the point where it craps out\r\n```\r\nG:\\l0phtcrack\\lc7\\build_win64\\dist\\Debug\\lcplugins\\lc7jtr{9846c8cf-1db1-467e-83c2-c5655aa81936}>type john.rec\r\nREC4\r\n6\r\n--stdout\r\n--wordlist=c:\\temp\\p.dic\r\n--external=hybrid_example\r\n--input-encoding=UTF-8\r\n--internal-codepage=UTF-8\r\n4\r\n0\r\n0\r\n0\r\n0\r\n0\r\n0\r\n7c\r\n0\r\n0\r\n0\r\n100\r\n0\r\n0\r\n0\r\n0\r\next-v1\r\n23 100 10\r\n114 117 98 98 101 114 100 117 99 107  110\r\n```"}}