SRL Archive - Client Hacking

#642


pyroryan

2011-04-04 13:34:58

const
ClientVersion = 642;
HookRev = 1;


{Static Hooks}
hook_static_LoginIndex = 'rl.s';
hook_static_getFriendsWorlds = 'sha.u';
hook_static_getFriendsList = 'io.K';
hook_static_CameraYaw = 'gr.g';
hook_static_MyPlayer = 'rha.h';
hook_static_BaseX = 'oc.b';
hook_static_BaseY = 'ln.p';
hook_static_NPCIndexArray = 'nea.d';
hook_static_LoopCycle = 'uw.l';
hook_static_NPCNodes = 'bg.y';
hook_static_NPCCount = 'kha.h';
hook_static_GroundSettingsArray = 'lh.t';
hook_static_LoadedPlane = 'tia.d';
hook_static_PlaneArray = 'lja.w';
hook_static_Toolkit = 'tn.p';
hook_static_MenuOptionCount = 'bca.q';
hook_static_MenuCollapsedOptionsCount = 'we.j';
hook_static_MenuX = 'td.g';
hook_static_MenuY = 'pq.b';
hook_static_MenuWidth = 'dja.c';
hook_static_MenuHeight = 'pn.l';
hook_static_MenuX2 = 'mv.r';
hook_static_MenuY2 = 'hja.C';
hook_static_MenuWidth2 = 'ra.h';
hook_static_MenuHeight2 = 'je.k';
hook_static_MenuNodeList = 'me.o';
hook_static_MenuOpen = 'pm.s';
hook_static_GetInterfaces = 'taa.b';
hook_static_ValidInterfaces = 'ct.K';
hook_static_IsMenuTabbed = 'sja.c';
hook_static_getCollapsedMenuItems = 'hw.ib';
hook_static_getNPCNC = 'qt.A';
hook_static_getItemDefLoader = 'hu.i';
hook_static_GetSettings = 'ua.b';
hook_static_getObjectDefLoader = 'lp.k';
hook_static_GroundItemCache = 'oe.B';
hook_static_GetSkillExperiences = 'al.n';
hook_static_GetSkillLevels = 'gaa.l';
hook_static_MapAngle = 'gp.H';
hook_static_DestX = 'cha.v';
hook_static_DestY = 'he.r';
hook_static_PlayerCount = 'gba.y';
hook_static_PlayerIndexArray = 'wj.e';
hook_static_GetPlayers = 'lm.y';
hook_static_CamPosX = 'ida.b';
hook_static_CamPosY = 'aga.A';
hook_static_GroundTiles = 'le.h';
hook_static_GetCrossHairColor = 'nq.i';

{Class Animable}
class_Animable = 'cn';
hook_animable_PixelX = 'l';
hook_animable_PixelY = 'n';
hook_animable_Plane = 'g';

{Class Player}
class_Player = 'fl';
hook_player_GetLevel = 'ld';
hook_player_GetName = 'fd';
hook_player_GetTeam = 'Fd';
hook_player_PlayerDef = 'Uc';

{Class Character}
class_Character = 'uv';
hook_character_GetHitDamges = '';
hook_character_Animation = 'fb';
hook_character_Motion = 'Ec';
hook_character_WalkQueueX = 'Bc';
hook_character_WalkQueueY = 'Fc';
hook_character_GetHeight = 'rc';
hook_character_LoopCycleStatus = 'gb';
hook_character_HPRatio = 'uc';
hook_character_GetInteracting = 'jc';
hook_character_Orientation = 'mc';

{Class AnimableNode}
class_AnimableNode = 'dm';
hook_AnimableNode_GetAnimable = 'g';
hook_AnimableNode_GetNext = 'c';

{Class AnimableEntity}
class_AnimableEntity = 'fe';
hook_animableentity_getAreaX1 = 'B';
hook_animableentity_getAreaX2 = 'F';
hook_animableentity_getAreaY1 = 'C';
hook_animableentity_getAreaY2 = 'y';

{Class PlayerDef}
class_PlayerDef = 'qha';
hook_playerdef_GetEquipment = 'n';

{Class NPC}
class_NPC = 'wda';
hook_npc_NPCDef = 'Yc';

{Class NPCDef}
class_NPCDef = 'ac';
hook_npcdef_GetActions = 'sb';
hook_npcdef_GetName = 'Y';
hook_npcdef_GetLevel = 'hb';
hook_npcdef_GetID = 'pb';

{Class NPCNode}
class_NPCNode = 'cp';
hook_npcnode_GetNPC = 'i';

{Class GroundTile}
class_GroundTile = '';

{Class Plane}
class_Plane = 's';

{Class RSInteractable}
class_RSInteractable = 'gv';

{Class Toolkit}
class_Toolkit = 'ha';

{Class Viewport}
class_Viewport = 'sk';

{Class SDViewport}
class_SDViewport = 'bca';
hook_sdviewport_xOff = 'n';
hook_sdviewport_xX = 'G';
hook_sdviewport_xY = 'y';
hook_sdviewport_xZ = 'r';
hook_sdviewport_yOff = 'C';
hook_sdviewport_yX = 'w';
hook_sdviewport_yY = 'v';
hook_sdviewport_yZ = 'j';
hook_sdviewport_zOff = 'g';
hook_sdviewport_zX = 't';
hook_sdviewport_zY = 'i';
hook_sdviewport_zZ = 'F';

{Class SDToolkit}
class_SDToolkit = 'ut';
hook_sdtoolkit_Viewport = 'J';
hook_sdtoolkit_xMin = 'ob';
hook_sdtoolkit_xMax = 'E';
hook_sdtoolkit_yMin = 'Y';
hook_sdtoolkit_yMax = 'H';
hook_sdtoolkit_zMin = 'cb';
hook_sdtoolkit_zMax = 'N';
hook_sdtoolkit_xScale = 'R';
hook_sdtoolkit_yScale = 'G';

{Class SDPlane}
class_SDPlane = 's';
hook_sdplane_TileHeights = 'h';

{Class SDModel}
class_SDModel = 'qg';
hook_sdmodel_getIndices1 = 'C';
hook_sdmodel_getIndices2 = 'Fb';
hook_sdmodel_getIndices3 = 'Gb';
hook_sdmodel_getPointsX = 'Wb';
hook_sdmodel_getPointsY = 'Ab';
hook_sdmodel_getPointsZ = 'ab';

{Class NodeListCache}
class_NodeListCache = 'hm';
hook_nodelistcache_GetNodeList = 'k';

{Class NodeList}
class_NodeList = 'jia';
hook_nodelist_Current = 'q';
hook_nodelist_Head = 'n';

{Class Node}
class_Node = 'wk';
hook_node_Next = 'a';
hook_node_GetID = 'e';
hook_node_Previous = 'd';

{Class MenuGroupNode}
class_MenuGroupNode = 'v';
hook_MenuGroupNode_getNodeSubListItems = 'A';

{Class NodeSubList}
class_NodeSubList = 'oaa';
hook_nodesublist_getHead = 'i';

{Class NodeSub}
class_NodeSub = 'lda';
hook_nodesub_Next = 'n';

{Class Menu}
class_Menu = 'od';
hook_menu_Option = 'J';
hook_menu_Action = 'B';

{Class ObjectInterface}
class_ObjectInterface = 'kh';
hook_interface_GetActions = 'Fb';
hook_interface_GetX = 'g';
hook_interface_GetY = 'td';
hook_interface_GetWidth = 'cc';
hook_interface_GetHeight = 'Lb';
hook_interface_GetText = 'xb';
hook_interface_GetTextureID = 'kb';
hook_interface_GetTextColor = 'F';
hook_interface_GetModelID = 'Ub';
hook_interface_GetModelZoom = 'pd';
hook_interface_GetName = 'Jb';
hook_interface_GetChildren = 'Bb';
hook_interface_GetID = 'kc';
hook_interface_GetStack = 'M';
hook_interface_GetParentID = 'Rb';
hook_interface_IsHidden = 'hd';

{Class NodeCache}
class_NodeCache = 'cja';
hook_nodecache_GetNodes = 'n';

{Class Item}
class_Item = 'hp';
hook_item_GetID = 'k';
hook_item_GetStack = 'j';

{Class ItemDefLoader}
class_ItemDefLoader = 'vda';
hook_itemdefloader_getMRUNodes = 'j';

{Class ItemDef}
class_ItemDef = 'gn';
hook_itemdef_getLoader = 'xb';
hook_itemdef_getGroundActions = 't';
hook_itemdef_getActions = '';

{Class MRUNodes}
class_MRUNodes = 'pja';
hook_mrunodes_getNodeCache = 'r';

{Class SettingArray}
class_SettingArray = 'bu';
hook_settingarray_GetData = 'c';

{Class ObjectDefLoader}
class_ObjectDefLoader = 'vh';
hook_objectdefloader_getMRUNodes = 'e';

{Class Ground}
class_Ground = 'ni';
hook_ground_AnimableList = 'l';
hook_ground_WallObject1 = 'i';
hook_ground_WallObject2 = 'h';
hook_ground_WallDecoration1 = 'm';
hook_ground_WallDecoration2 = 'j';
hook_ground_FloorDecoration = 'q';

{Class WallObjectData}
class_WallObjectData = 'rd';
hook_WallObjectData_GetID = 'gb';
hook_WallObjectData_GetModel = 'Z';
hook_WallObjectData_GetOrientation = 'nb';

{Class WallDecorationData}
class_WallDecorationData = 'rj';
hook_WallDecorationData_GetID = 'O';
hook_WallDecorationData_GetModel = 'hb';
hook_WallDecorationData_GetOrientation = 'N';

{Class FloorDecorationData}
class_FloorDecorationData = 'er';
hook_FloorDecorationData_GetID = 'P';
hook_FloorDecorationData_GetModel = 'W';
hook_FloorDecorationData_GetOrientation = 'lb';

{Class InteractiveObject}
class_InteractiveObject = 'hw';
hook_interactiveobject_GetID = 'ub';
hook_interactiveobject_GetModel = 'K';
hook_interactiveobject_GetOrientation = 'R';

{Class InteractiveObject2}
class_InteractiveObject2 = 'pfa';
hook_interactiveobject2_GetObjectData = 'T';

{Class SecondLevelObject}
class_SecondLevelObject = 'vw';
hook_secondlevelobject_GetID = 'p';
hook_secondlevelobject_GetModel = 'o';
hook_secondlevelobject_GetOrientation = 'L';

{Class WallObjectSub2}
class_WallObjectSub2 = 'qa';
hook_wallobjectsub2_getComposite = 'L';

{Class WallDecorationSub2}
class_WallDecorationSub2 = 'bw';
hook_walldecorationsub2_getComposite = 'K';

{Class FloorDecorationSub2}
class_FloorDecorationSub2 = 'tm';
hook_floordecorationsub2_getComposite = 'P';

footballjds

2011-04-04 13:35:25

we all love you so much

pyroryan

2011-04-04 13:45:50

I need to find PlayerDef again -.-

Method

2011-04-04 13:56:07

From: pyroryan
I need to find PlayerDef again -.-


You probably can find the field in the player class by looking for an instance field that isn't a primitive type or String.

pyroryan

2011-04-04 14:00:00

From: Method
You probably can find the field in the player class by looking for an instance field that isn't a primitive type or String.


Yea, I do that manually. But I'd rather my updater not do that. Never know when Jagex could decide to throw some extra non-primitive fields in. I also despise finding getEquipment by going through all the fields for a private int[]. But doing it manually is fine :P.

Method

2011-04-04 14:13:09

From: pyroryan
Yea, I do that manually. But I'd rather my updater not do that. Never know when Jagex could decide to throw some extra non-primitive fields in. I also despise finding getEquipment by going through all the fields for a private int[]. But doing it manually is fine :P.


Sure, but it's been like that for over 60 revisions of the client. If you don't like that way, you can find another way to identify it also. I just think manually finding it each time the client updates is rather silly.

Brandon

2011-04-04 14:23:02

From: pyroryan
Yea, I do that manually. But I'd rather my updater not do that. Never know when Jagex could decide to throw some extra non-primitive fields in. I also despise finding getEquipment by going through all the fields for a private int[]. But doing it manually is fine :P.


Umm how exactly do u get all those hooks in the first post? I cant find any tut's on that.

pyroryan

2011-04-04 14:44:12

From: Method
Sure, but it's been like that for over 60 revisions of the client. If you don't like that way, you can find another way to identify it also. I just think manually finding it each time the client updates is rather silly.


You seem to imply that I search for it manually, which I don't. My updater searches for it already, it just happened to break this revision. That just means I have to do it manually, then update.

Iamadam

2011-04-04 18:34:00

----- Starting Search: ClassLogger -----
Animable class : cn
Player class : fl
Character class : uv
AnimableNode class : dm
AnimableEntity class : fe
PlayerDef class : qha
NPC class : wda
NPCDef class : ac
NPCNode class : cp
GroundTile class : aha
Interactable class : gv
Toolkit class : ha
Viewport class : sk
SDViewport class : bca
SDToolkit class : ut
SDPlane class : s
SDModel class : qg
NodeListCache class : hm
NodeList class : jia
Node class : wk
MenuGroupNode class : v
NodeSubList class : oaa
NodeSub class : lda
Menu class : od
Interface class : kh
NodeCache class : cja
Item class : hp
ItemDefLoader class : vda
ItemDef class : qp
MRUNodes class : pja
SettingArray class : bu
ObjectDefLoader class : vh
Ground class : ni
WallObjectData class : rd
WallDecorationData class : rj
FloorDecorationData class : er
InteractiveObject class : hw
InteractiveObject2 class : pfa
SecondLevelObject class : vw
WallObjectSub2 class : qa
WallDecorationSub2 class : bw
FloorDecorationSub2 class : tm
GrandExchange class : eg
ClientScript class : sga
HDToolkit class : hk
Direct3DToolkit class : aia
CacheFile class : rt
CustomCursorSetup class : ls
Stream class : fca
ObjectInterface class : bea
WallObject class : tc
WallDecoration class : va
FloorDecoration class : lg
----- Finished in 47ms -----
----- Starting Search: CharacterStuff -----
Character_animation: fb
Character_hpRatio: uc
Character_motion: Ec
----- Finished in 63ms -----
----- Starting Search: Stream -----
Stream_buffer: I
Stream_bufferOffset: lb
----- Finished in 0ms -----
----- Starting Search: NpcIndexArray -----
npcIndexArray: nea.d
NPCCount: kha.h
----- Finished in 0ms -----
----- Starting Search: SDToolkitSearch -----
StaticToolkit: tn.p
SDToolkit_viewport: J
SDToolkit_xScale: R
SDToolkit_yScale: G
SDToolkit_zMin: cb
SDToolkit_zMax: N
SDToolkit_yMax: H
SDToolkit_yMin: Y
SDToolkit_xMax: E
SDToolkit_xMin: ob
----- Finished in 188ms -----
Update fail at: SDToolkitSearch
----- Starting Search: SDViewportSearch -----
SDViewport_xX: G
SDViewport_xY: y
SDViewport_xZ: r
SDViewport_yX: w
SDViewport_yy: v
SDViewport_yZ: j
SDViewport_zX: t
SDViewport_zY: i
SDViewport_zZ: F
SDViewport_yOff: C
SDViewport_zOff: g
SDViewport_xOff: n
----- Finished in 0ms -----
----- Starting Search: ClientScript -----
Interface_actions: Fb
Interface_modelZoom: pd
Interface_parentID: Rb
Interface_isHidden: hd
Interface_modelID: Ub
Interface_hScroll: k
Interface_maxHScroll: K
Interface_minHScroll: cc
Interface_vScroll: rc
Interface_maxVScroll: tc
Interface_minVScroll: Lb
Interface_modelRotationX: cb
Interface_modelRotationY: rd
Interface_modelRotationZ: cd
Interface_itemIndex: P
skillLevels: gaa.l
skillExperiences: al.n
----- Finished in 188ms -----
Update fail at: ClientScript
----- Starting Search: NPCNodeSearch -----
Player array: lm.y
myPlayer: rha.h
nodeID: e
nodePrev: d
nodeNext: a
npcNodeArray: bg.y
AnimableNode_getAnimable: g
AnimableNode_getNext: c
----- Finished in 16ms -----
----- Starting Search: BaseXYSearch -----
baseX: oc.b
baseY: ln.p
----- Finished in 16ms -----
----- Starting Search: AnimablePixelXYSearch -----
Animable_plane: g
Animable_pixelX: l
Animable_pixelY: n
----- Finished in 16ms -----
----- Starting Search: FriendsSearch -----
friendsList: io.K
friendsWorlds: sha.u
----- Finished in 125ms -----
----- Starting Search: DebugMethodSearch -----
loadedPlane: tia.d
character_walkQueueX: Bc
character_walkQueueY: Fc
mapWidth: iga.m
mapHeight: nr.k
----- Finished in 0ms -----
----- Starting Search: CamPosFinder -----
cameraZ: mq.A
cameraY: aga.A
cameraX: ida.b
----- Finished in 0ms -----
----- Starting Search: InterfaceSearch -----
InterfaceArray: naa.d
InterfaceArray: taa.b
ObjectInterface_children: Bb
ObjectInterface_actions: Fb
Interface_height: Lb
Interface_width: cc
Interface_y: td
Interface_x: g
Interface_text: xb
Interface_id: kc
Interface_textColor: F
Interface_stack: M
Interface_textureID: kb
Interface_name: Jb
----- Finished in 94ms -----
----- Starting Search: NPCDefSearch -----
NPCDefInstance: Yc
npc_name: Y
npc_actions: sb
----- Finished in 0ms -----
----- Starting Search: Objects -----
WallObjectData_model: Z
WallObjectData_ID: gb
WallDecorationData_model: hb
WallDecorationData_ID: O
FloorDecorationData_model: W
FloorDecorationData_ID: P
InteractiveObject_model: K
InteractiveObject_ID: ub
SecondLevelObject_model: o
SecondLevelObject_ID: H
----- Finished in 47ms -----
Update fail at: Objects
----- Starting Search: Player -----
PlayerDef_equipment: n
Player_combatLevel: ld
NPC_combatLevel: Vc
MenuOptionCount: bca.q
----- Finished in 32ms -----
Update fail at: Player
----- Starting Search: GroundSearch -----
Ground_WallObject1: h
Ground_WallObject2: i
Ground_WallDecoration1: j
Ground_AnimableList: l
Ground_WallDecoration2: m
Ground_FloorDecoration: q
GroundSettingsArray: lh.t
----- Finished in 16ms -----
Update fail at: GroundSearch
----- Starting Search: AnimableEntity -----
AnimableEntity_x2: F
AnimableEntity_y2: y
AnimableEntity_x1: B
AnimableEntity_y1: C
----- Finished in 32ms -----
----- Starting Search: NPCInteracting -----
Character_interacting: jc
Player_array: lm.y
----- Finished in 0ms -----
----- Starting Search: LoginIndexSearch -----
loginIndex: rl.s
----- Finished in 0ms -----
----- Starting Search: LoopCycle -----
LoopCycle: uw.l
----- Finished in 31ms -----
----- Starting Search: MenuSearch -----
Found menu variables using feature space :)
menuX: td.g
menuY: pq.b
menuWidth: dja.c
menuHeight: pn.l
MenuY2: hja.C
MenuX2: mv.r
MenuWidth2: ra.h
MenuOptionCount: bca.q
MenuHeight2: je.k
menuTabbed: sja.c

Flight

2011-04-04 20:35:56

Yaya now I can get back to working on my living caverns miner.

Method

2011-04-04 20:56:57

From: pyroryan
You seem to imply that I search for it manually, which I don't. My updater searches for it already, it just happened to break this revision. That just means I have to do it manually, then update.


What? You said you do it manually…

From: pyroryan
Yea, I do that manually. But I'd rather my updater not do that. Never know when Jagex could decide to throw some extra non-primitive fields in. I also despise finding getEquipment by going through all the fields for a private int[]. But doing it manually is fine :P.


Perhaps you didn't mean to say that that's the way you do it in general, but it came off like you did.

pyroryan

2011-04-04 21:04:09

From: Method
What? You said you do it manually…



Perhaps you didn't mean to say that that's the way you do it in general, but it came off like you did.


I meant to say that I do it that way when the updater is broken and I need to manually find it. But when the updater functions correctly, then I don't do anything.

But thanks for pointing out my mistake :), I see it now.

gregdw

2011-04-12 00:25:32

Okay Pyroryan, don't crai when you see mine.


Lizard's Updater
Created by : Gregdw

^ fi implements Updater.Hooks.FileOnDisk
* getRandomAccessFile() --> field Ljava/io/RandomAccessFile; fi.i
* getFile() --> field Ljava/io/File; fi.j

^ client implements Updater.Hooks.Client
* getNpcIndexArray() --> static [I nea.d
* getNpcCount() --> static I kha.h
* getNpcArray() --> static [Lcp; bg.y
* getLocalPlayer() --> static Lfl; rha.h
* getBaseX() --> static I oc.b
* getBaseY() --> static I ln.p
* getLoginIndex() --> static I rl.s
* getPlayerIndices() --> static [I wj.e
* getPlayerCount() --> static I gba.y
* getPlayers() --> static [Lfl; lm.y

^ cp implements Updater.Hooks.NpcNode

^ fl implements Updater.Hooks.Player

^ cf implements Updater.Hooks.CompositeReference
* getReference() --> field Ljava/lang/ref/SoftReference; cf.B

^ kh implements Updater.Hooks.Interface
* getChildren() --> field [Lkh; kh.Bb
* getActions() --> field [Ljava/lang/String; kh.Fb

^ hw implements Updater.Hooks.InteractiveObject