Tuesday, April 19, 2011

Introduction to Updating Auto Assembly Scripts (AOB Scan)

EDIT: I made a video on this, check it out: http://www.viddler.com/explore/PServerHacks/videos/4/

Read this thread on MPGH: Introduction to Updating Auto Assembly Scripts (AOB Scan)

What you need:
--Cheat Engine 6.0 (Or any other version)
--An outdated AA (Auto Assembly) Script for X that has AoB's commented throughout the script (X Being the game)
--The version of X you want to update the script to.

Okay, so for my example I'll be working in my forte, MapleStory. I don't actually have the MapleStory files with me so there won't be any actual screenshots, but I have all the codes I need.

This is an outdated script, Fly for MapleStory v62.

007F1C0A: //0F 84 D0 00 00 00 FF B6 4C 01 00 00 8D 86 44 01
ja 007f1ce0

je 007f1ce0

To break this down, [ENABLE] is the code that is active when the hack is turned on and [DISABLE] is meant to restore all default values which will allow the hack to be turned back off. Although it's generally bad practice if you're really lazy you don't need to update [DISABLE] (you just won't be able to turn the hack off without restarting).

007F1C0A is the address that is being modified and ja 007f1ce0 is that addresses Opcode.

Last but not least "0F 84 D0 00 00 00 FF B6 4C 01 00 00 8D 86 44" is inserted as a comment, these are the AoBs (Array of Bytes).

  1. Load up the outdated script via .ct file
  2. Open the version of "X" you want to update the script to and select it's process with Cheat Engine
  3. Change the Value Type to "Array of Bytes"
  4. Search for 75 04 33 C0 EB 03 6A 01 58 5F C9 C3 8B 81 90
  5. Right click the found address and choose "Disassemble this memory region"
  6. Right click the address that matches the one found in your scan list
  7. Select "Go to address" then copy and paste the number that pops up over BOTH of previous addresses (the ones in [ENABLE] and [DISABLE], In other scripts make sure the addresses match first) in the script and press cancel on the Go to address box.
  8. Double click the same addresses OPCode, paste it over the [DISABLE] Opcode. The script is meant to change the opcodes value from je to ja so when copying over the [ENABLE] opcode make sure to switch that back first.
  9. Save the script and profit! (NOTE: Actually do this, you need actual hands on experience.)

After finishing it I realize that I don't have a code sample for this, I do for Swim in Air so... let's try that too.

Swim in Air for MapleStory v62

00614CC7: //75 04 33 C0 EB 03 6A 01 58 5F C9 C3 8B 81 90 01db
74 04

db 75 04

This one doesn't do anything to the Opcode, it just changes the address's stored bytes from 75 04 to 74 04, which I assume determines whether you are on land or swimming.

Make sure you've read the tutorial for the previous code, going to be brief with this one. I want you to do this THEN look at the correct code.
  1. Search "75 04 33 C0 EB 03 6A 01 58 5F C9 C3 8B 81 90 01"
  2. Change "00614CC7" to the newly found address and save.
Okay, seems easy enough right? Do it. If you updated it from v62 to v83 the script should look like this: DO NOT LOOK UNTIL YOU HAVE TRIED THIS YOURSELF!!!

Now that you've tried a few examples I'll go ahead and give you a few VERY important guidelines so you can be on your way.
  1. If you don't find any results when searching the AOB take a byte off the end, start a new scan and try again. Repeat until something is found.
  2. If you get multiple addresses then compare them to the script looking for similarities (IE: Similar Opcode, address region and such). If all else fails use trial and error.
  3. AoB's don't need to be in a script for it to work and they usually aren't. You can create your own AoB by starting up the outdated game version and browsing the addresses Memory Region. I'm not going to get in to that right now.
  4. This is an INTRODUCTION. Most scripts are more difficult (Multiple Addresses, Complicated Opcodes, and even Pointers).
  5. If you actually plan to do this, it's highly unlikely you'll revive an old script to work for the official version of any online game. However, this is basic knowledge that you will probably need to know before you even begin making hacks or updating more recent scripts.
Sorry for the shifty dialogue, I'm kind of tired (stayed up for 27 hours, got less than seven hours of sleep last night).


-Me for making this tutorial
-M1Sniper for being a bro and showing me how to do this back when I didn't know

I can't be assed to proof read this so if you notice any formatting errors, spelling mistakes or something I just explained wrong let me know, thanks.

1 comment:

  1. Thank you very much Blitz.
    Keep up the good work. :)