omikron48 Posted April 12, 2010 Posted April 12, 2010 (edited) I'm not sure if this discussion is allowed here, so I'm not posting code. My two questions is related to a script I made recently. It's used for brute-forcing passwords of archive files (zip, rar, etc). I made two versions of it, one using arrays, another using recursion. The thing is, I can incorporate resume on the one using arrays since I can just prime the array before I start looping, however the recursive one is trickier. Question 1: Is there a good way of allowing a recursive algorithm, such as string generation using a character space, to be resumed? The next one deals with the script's efficiency. I have no clue how fast other programs, of the same nature, perform. Mine does roughly 103 attempts per second on an Intel Core 2 Duo E6320 1.86GHz system (single-instance, system mostly idle). Question 2: How slow is my script at doing it's job? And lastly... Question 3: Are discussions like this allowed here? EDIT: Title change Edited April 12, 2010 by omikron48
Moderators Melba23 Posted April 12, 2010 Moderators Posted April 12, 2010 omikron48,In reverse order:brute-forcing passwords - Are discussions like this allowed here?In my opinion, definitely not. I think you did well not to post any code. How slow is my script?Impossible to say without seeing the script - which of course we never will! Is there a good way of allowing a recursive algorithm to be resumed?Given the tricky nature of recursion, I tend to avoid it if I can, so my experience in this area is somewhat limited. However, I cannot see that breaking out of recursive code to try something and then resuming the code at the same point to let it continue to the end would pose a problem. If you reenter the recursive code elsewhere or alter any of the affected variables during the excursion, then all bets are off. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
omikron48 Posted April 12, 2010 Author Posted April 12, 2010 (edited) It was just something to do, so I coded it. One of the legit ways of using the tool would be for cracking archives whose password has already been forgotten. It was ridiculous trying to calculate how many years it would take a single instance to iterate a 6 character string with a character space of roughly 75 characters at 103 attempts per second. I was just wondering whether there was a nice way to resume a recursive algorithm at different program runs. For an array based solution all you need to do is preset the array and adjust your counters to match the value of the resume point then you just continue looping through it. I was trying to think if a similar method could be pulled off for a recursive algorithm but just thinking about it more makes it look more awkward to me. I can't imagine a good way to setup a recursion with the correct levels and counters so it can resume from an arbitrary value point. Edited April 12, 2010 by omikron48
Moderators big_daddy Posted April 12, 2010 Moderators Posted April 12, 2010 The answer to question 3 is no. Topic Closed
Recommended Posts