Well keeping with the spirit of the thread, here is the aimbot code for v123.4.4:
Code:
trait method QName(PackageNamespace(""), "_-0B8")
method
refid "com.company.assembleegameclient.objects:Player/_-0B8"
param QName(PackageNamespace(""), "Number")
returns QName(PackageNamespace(""), "void")
body
maxstack 16
localcount 16
initscopedepth 16
maxscopedepth 18
code
pushfalse
pushtrue
setlocal2
setlocal3
getlocal0
pushscope
getlocal1
getlex QName(PackageNamespace("com.company.assembleegameclient.parameters"), "Parameters")
getproperty QName(PackageNamespace(""), "data_")
getproperty Multiname("cameraAngle", [PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#0"), PackageNamespace(""), PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#1"), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("_-00H"), StaticProtectedNs("_-00H"), StaticProtectedNs("_-M4"), StaticProtectedNs("_-036"), StaticProtectedNs("_-QF"), StaticProtectedNs("Object")])
add
setlocal 7
getlex QName(PackageNamespace(""), "map_")
getproperty QName(PackageNamespace(""), "gs_")
getproperty QName(PackageNamespace(""), "mui_")
getproperty QName(PackageNamespace(""), " use") ;<-Doesn't resolve to the right address, hex edit to fix
iftrue L138
pushnull
coerce QName(PackageNamespace("com.company.assembleegameclient.objects"), "GameObject")
setlocal 4
pushbyte 255
setlocal 8
pushbyte 0
setlocal 9
pushbyte 0
setlocal 10
pushnull
coerce_a
setlocal 11
pushbyte 0
setlocal 12
pushbyte 0
setlocal 13
pushbyte 0
setlocal 5
getlex QName(PackageNamespace(""), "map_")
getproperty QName(PackageNamespace(""), "goDict_")
coerce_a
setlocal 6
jump L131
L40:
label
getlocal 6
getlocal 5
nextvalue
coerce QName(PackageNamespace("com.company.assembleegameclient.objects"), "GameObject")
setlocal 4
getlocal 4
getlex QName(PackageNamespace("com.company.assembleegameclient.objects"), "Player")
istypelate
iftrue L131
getlocal 4
getlex QName(PackageNamespace("com.company.assembleegameclient.objects"), "Character")
istypelate
iffalse L131
getlocal 4
getproperty QName(PackageNamespace(""), "props_")
getproperty QName(PackageNamespace(""), "isEnemy_")
iffalse L131
getlocal 4
callproperty QName(PackageNamespace(""), " case"), 0
iftrue L131
getlocal 4
callproperty QName(PackageNamespace(""), "_-Fo"), 0
iftrue L131
getlocal 4
callproperty QName(PackageNamespace(""), "_-IB"), 0
iftrue L131
getlocal 4
callproperty QName(PackageNamespace(""), "isPaused"), 0
iftrue L131
getlex QName(PackageNamespace(""), "Math")
getlocal 4
getproperty QName(PackageNamespace(""), "y_")
getlex QName(PackageNamespace(""), "y_")
subtract
dup
multiply
getlocal 4
getproperty QName(PackageNamespace(""), "x_")
getlex QName(PackageNamespace(""), "x_")
subtract
dup
multiply
add
callproperty QName(PackageNamespace(""), "sqrt"), 1
dup
setlocal 9
getlex QName(PackageNamespace("com.company.assembleegameclient.objects"), "ObjectLibrary")
getproperty QName(PackageNamespace(""), "_-PC")
getlex QName(PackageNamespace(""), "_-dd")
pushbyte 0
getproperty MultinameL([PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#0"), PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#1"), PackageNamespace(""), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("_-uM"), StaticProtectedNs("_-uM"), StaticProtectedNs("_-QF")])
convert_i
getproperty MultinameL([PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#0"), PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#1"), PackageNamespace(""), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("_-uM"), StaticProtectedNs("_-uM"), StaticProtectedNs("_-QF")])
getproperty QName(PackageNamespace(""), "_-85")
pushbyte 0
getproperty MultinameL([PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#0"), PrivateNamespace("*", "com.company.assembleegameclient.objects:Projectile#1"), PackageNamespace(""), PackageNamespace("com.company.assembleegameclient.objects"), PackageInternalNs("com.company.assembleegameclient.objects"), Namespace("http://adobe.com/AS3/2006/builtin"), ProtectedNamespace("_-uM"), StaticProtectedNs("_-uM"), StaticProtectedNs("_-QF")])
dup
setlocal 11
getproperty QName(PackageNamespace(""), "speed_")
pushshort 10000
divide
getlocal 11
getproperty QName(PackageNamespace(""), "lifetime_")
multiply
ifgt L131
getlocal 8
pushbyte 255
ifeq L109
getlocal 9
getlocal 8
iflt L109
jump L131
L109:
getlocal 4
getproperty QName(PackageNamespace(""), "_-PV")
dup
setlocal 13
getlocal 12
iflt L131
getlocal 13
setlocal 12
getlocal 9
setlocal 8
getlex QName(PackageNamespace(""), "Math")
getlocal 4
getproperty QName(PackageNamespace(""), "y_")
getlex QName(PackageNamespace(""), "y_")
subtract
getlocal 4
getproperty QName(PackageNamespace(""), "x_")
getlex QName(PackageNamespace(""), "x_")
subtract
callproperty QName(PackageNamespace(""), "atan2"), 2
setlocal 7
jump L131
L131:
hasnext2 6, 5
iftrue L40
kill 6
kill 5
getlocal 12
pushbyte 0
ifeq L141
L138:
getlocal0
getlocal 7
callpropvoid QName(PrivateNamespace("*", "com.company.assembleegameclient.objects:Player#0"), "shoot"), 1
L141:
returnvoid
end ; code
end ; body
end ; method
end ; trait
You'll need three programs to add this feature to your client.
RABCDAsm (which can be found here: https:// github.com/CyberShadow/RABCDAsm), Yogda, and a hex editor like HxD.
First make sure you decompress your target client (using rabc:
swfdecompress yourfilename.swf). You'll need to do this for the hex editor.
Basically to add the aimbot to your client, disassemble the client using rabcdasm (
abcexport yourfilename.swf then
rabcdasm the yourfilename-1.abc). You'll then have a directory full of .asasm files. These are the files you modify to change how the game behaves. Open up \yourfilename-1\com\company\assembleegameclient\objects\Player.c lass.asasm. Look for the function _-0B8 and replace that function with the one I have above. Go back to rabc, and assemble the main.asasm file (
rabcasm \yourfilename-1\yourfilename-1.main.asasm) then replace the .abc file in the client with the one you made (
abcreplace yourfilename.swf 1 \yourfilename-1\yourfilename-1.main.abc). There is just one more thing to do....
If you noticed. On line 27 of the code I posted above I made a comment that says, "Doesn't resolve to the right address, hex edit to fix." One of the variables used in the hack is protected in some way and I have not found a way to code it properly with actionscript assembly like the code above. To get around this I manually edited the instruction with a hex editor.
First we need to get the correct bytes for our instruction. Open up yogda and have it open your client file. Navigate to com.company.assembleegameclient.game:_-hz. Expand that and open up the clearInput() function at the bottom. Look for an instruction that says
private: use in the parameter section (line 113 for me). Look at the bytecode to the left (says 68 9F 19 for me). Write down the last two numbers (9F 19). It may or may not be the same for you. Then navigate to com.company.assembleegameclient.com:Player. Expand and open _-0B8 function. On line 24 you should see something like
66 A3 46 getproperty use. Open up your hex editor, and search for the byte sequence 66
A346111D01002080336304 (I got these from the binary numbers column from line 24 on). Search again to make sure you're at the right spot in the file. Replace the last 2 bytes
of the instruction on line 24 with the ones you wrote down. Save the file.
Congrats, you now have an aimbot.
If this all is too much for you. I'm sure someone will make a client for you.
