Additional Info
|
Hey I want to learn how to find AoB s and stuff but on the tutorials they just teach u how to change them not find them. I don't know anything about C++ software (so sad). Can anyone please teach me how to find a AoB? I already know you have to get the .SWF file to do it and I already know how to do that.
|
Additional Info
|
Finding them? Common sense.
I gave a short explanation of it in this thread. Most of what we (or just me, dunno about other people) do is think "how does the game behave, and how do I want to change it." Let's say that in the 10th level of a theoretical game, a giant invincible monster appears and eats you. That's totally not cool; let's make the monster never appear. How would you go about to do this? Well, the monster's appearance is directly tied to the level you're currently in. So we're gonna search for what handles levels and see where the monster is created. But how are we going to find the level handler? Search all files for things like "level" (speaking about the case when the game's code is vanilla; no encryption or obfuscation.) Let's assume you've found the level handler, and in it you see this horrid line: Code: [Select] if (level == 10) { So not cool. Enraged, we go to the Raw Data, and do a search there for spawnEvilMonster. We might find something like this:Code: [Select] //66 04 0a There are several ways to fix such a monster. One is to compare the current level to a level that doesn't exist (like -7), another way is to make the if statement jump over the code instead of ever checking a condition, and yet another way is to change the function call to a NOP (No Operation.) There are probably other ways that I forgot. Remember, we only want to match a specific part of the code, so we're going to include all its element (both the if statement and the function call.) So so far, what we've got is the initial array: 66 04 0a 24 a0 14 01 00 00 46 6d 00 Now, every options we have from now on is properly explained in the tutorials, so I'm only gonna show you the resulting arrays. Option 1: Change level requirement 66 04 0a 24 a0 14 01 00 00 46 6d 00 => 66 04 0a 24 f9 14 01 00 00 46 6d 00 (trust me, f9 is -7) Option 2: Skip if statement 66 04 0a 24 a0 14 01 00 00 46 6d 00 => 66 04 0a 24 a0 10 01 00 00 46 6d 00 Option 3: No function 66 04 0a 24 a0 14 01 00 00 46 6d 00 => 66 04 0a 24 a0 14 01 00 00 02 02 02 Hope this helped, and feel free to ask any further questions. |
Additional Info
|
how do you know which part to change?
|
Additional Info
|
Well, I looked at the opcodes, and I figured out what does what. For any solution I showed you here there's a tutorial section.
Besides, if you see the line "level == 10" and then in the raw code "pushbyte 10", what else can it do besides "making" the value 10? And if you after this see "spawnEvilMonster()", and in the raw code something odd like "callpropvoid spawnEvilMonster", then it's only reasonable to assume it calls spawnEvilMonster. |
Additional Info
|
So I'm trying this meathod out for this game called You Might get Nervous http://www.kongregate.com/games/lubossk/you-might-get-nervous and I want to make it so that it's stuck only on the first task so I don't have to do anything else. I searched for the key word addAction but then I'm stuck. Am I doing the right thing in the first place? If so what do I do next? If not what can I change?
Thanks |