Quote:
Originally Posted by nevak
I suggest doing the following (I don't have the time to do it now):
-Go to your database and set a skill with ID higher than 1000 (idk, for example Body protector)
-Start your server.
-Attach with ollydbg to ps_game.exe and search the memory for your skill name (Body protector in this example. Note that the skill name in database has to be in English for this to work)
-When you find the skill name in memory have a look at the numbers before it because they represent the skillID
-Set a memory breakpoint at the skillID
-Log to game and try to cast your skill. Then olly should stop at the breakpoint, then go step by step by step till you see a comparison of the skillID with 1000 (3E8 in hex) or whatever other number is set as limit.
If someone manages to do this, the last step is to change that comparison instruction to the desired value (Im not 100% sure it works this way but makes sense to me)
Will try it myself as soon as I find the time (Damn exams xD)
PS:why you need to set SkillID above 1000?
|
I'm not sure you can set breakpoints in the data section that way. Have you done this before? (I could be mistaken though)
You can set breakpoints in code that executes but the type of data you are talking about does not execute, it is referenced.
Unfortunatly I have not found a way to 'snoop' a memory location in Olly. For this I am still using CheatEngine.
1. Use Olly to located the memory location instructed above.
2. Close Olly and start cheat engine. (You have to close Olly because you can not attach two debuggers to the same process)
3. Manually input the address you want to snoop on.
4. Right click that address and select "See what accesses this address"
5. Go in game and do the desired action.
6. Notice you get several addresses in the Cheat Engine box.
6a. If you get no results then you are snooping the wrong address
7. Copy all the addresses hit into notepad.
8. Close Cheat Engine and open Olly again.
9. Now set breakpoints on those addresses that were snooped with Cheat Engine
10. Repeat your action in game and notice you get a debug break.
Note: Often what needs to be changed is not where you break on but before. You have to understand how to debug and such.
Debug +2