Author | Post | |
unknown user |
I'm going through reading and following along with DeathSpawn's tutorials and theyre great and all but now I want to learn how to catch and edit timers in programs, heres an example of a program and what Id like to change on it: on another hacking challange webpage I found a seemingly easy to edit program, that counts up from 100 to 200 and resets back to 100. The challange is to get it to count down instead of up. Not only would I like to know this to pass the challange but thats just a sidepoint to wanting to learn how to achieve this in Olly Debug. If anyone can point me to the direction of some more tutorials or resources reguarding how to find and manipulate things in Olly such as my example Id be greatly appriciative. |
|
17.09.2003 07:28:13 |
|
|
DeathSpawn |
Hackquest challenges are great aren't they? That counting down one was one of my personal favorites. To crack it, simply look for where the counter counts, then do one of two things. Either change the counter from addition to subtraction OR find where it compares the final number and either change it or jump it. Hope this helps. DS |
|
17.09.2003 15:01:43 |
|
|
unknown user |
so I got: 00401570 . 8B41 20 MOV EAX,DWORD PTR DS:[[]ECX+20[]] 00401573 . 6A 00 PUSH 0 ; /Timerproc = NULL 00401575 . 6A 14 PUSH 14 ; |Timeout = 20. ms 00401577 . 6A 01 PUSH 1 ; |TimerID = 1 00401579 . 50 PUSH EAX ; |hWnd 0040157A . C641 60 01 MOV BYTE PTR DS:[[]ECX+60[]],1 ; | 0040157E . FF15 F4214000 CALL DWORD PTR DS:[[]<&USER32.SetTimer>[]] ; \SetTimer 00401584 . C3 RETN that I think sets the timer in a direction. What exactly is telling it to count up and not down? I tried chagning the "ECX+20" to -20 but it wouldnt count at all after I did that. like in your tutorial on how to find a serial number that adds the two hardcoded numbers together, why would you break at CMP EAX,0 ? how does that have any significants at all to anything? and if the numbers wherent hard coded, say it used abcdefghijklmnopqrstuvwxyz then used code to pick letters out of that string would it still show up the same? letting me see it try and compare ZZZZZZZ to the descrambled password? |
|
17.09.2003 21:12:31 |
|
|
DeathSpawn |
I guess that I would recommend looking at some tuts on Assembly language. There are specific ASM instructions which add, subtract, divide, compare, etc. When you find what these instructions are, then when you are looking at the code, you can better determine what the code is doing. Maybe if I get some time, I will do a tut on ASM codes, etc. DS |
|
17.09.2003 21:23:12 |
|
|
unknown user |
well wouldnt your super newbie tutorials be useless if you where trying to teach the debugger to someone that already knew the language? its like anything else I'm sure, once you know the way it works, you understand how to get information out of it. I like your tutorials but alittle constructive critisism, Id really like to see alittle bit of reasoning behind what your doing and why, like for the CD-ROM one it took me a second to figure out, "So let's quit Olly and load up our program inside of HIEW", HIEW is just the name of a hex-editor, if you phrased it as "So let's quit Olly and load up our program in a Hex-Editor, I use HIEW" that would have made alot more sense for me. well at any rate, the tuts did help quite a bit, but not as much as I would have liked, but thanks for the feedback. |
|
17.09.2003 22:18:03 |
|
|
DeathSpawn |
Ooopssss..... my bad :/ I'll make that change. Also, the constructive criticism taken. I need to put a basic ASM tut on there as well to help explain the super newbie stuff on registers, etc. Thx! DS |
|
18.09.2003 02:31:30 |
|