SRL Archive - Client Hacking

New Hooks (#510)


Method

2008-09-18 10:00:27

Can anyone test these out for me, please? I don't have time in the morning, and I'm sure you guys want to go and continue using reflection as soon as possible. If you don't understand where a hook should go because of the naming schema, Widget, LeeLokHin, or somebody else familiar with reflection (if they're on in the daytime today) should be able to help over IRC. Some of these hooks aren't included in Hooks.scar, which is fine, just add the ones that are. Also, the three chat arrays haven't been hooked yet, so don't worry about those. Anyways, here are the hooks:

Runescape Build #510


Hooking RSString
* sb implements interface updater.hook.RSString
* getHash() added to class sb gets FIELD int sb.e
* getLength() added to class sb gets FIELD int sb.v
* getBytes() added to class sb gets FIELD byte[] sb.ib
* isEditable() added to class sb gets FIELD boolean sb.mb


Hooking NPC
* getNPCIndexArray() added to class client gets STATIC int[] se.z
* getNPCArray() added to class client gets STATIC ne[] sf.db
* ne implements interface updater.hook.NPC
* getNPCDef() added to class ne gets FIELD ak ne.Qb
* getNPCCount() added to class client gets STATIC int of.N


Hooking NPCDef
* ak implements interface updater.hook.NPCDef
* getActions() added to class ak gets FIELD sb[] ak.i
* getName() added to class ak gets FIELD sb ak.bb
* getType() added to class ak gets FIELD int ak.d


Hooking Player
* getPlayerIndexArray() added to class client gets STATIC int[] jh.d
* getPlayerArray() added to class client gets STATIC nd[] we.i
* nd implements interface updater.hook.Player
* getPlayerCount() added to class client gets STATIC int kd.B


Hooking PlayerDef
* getName() added to class nd gets FIELD sb nd.Tb
* na implements interface updater.hook.Model
* getModel() added to class nd gets FIELD na nd.uc
* sc implements interface updater.hook.Animable
* lj implements interface updater.hook.Stream
* getCurrentOffset() added to class lj gets FIELD int lj.yb
* getPkHeadIcon() added to class nd gets FIELD short nd.vc
* getPrayerHeadIcon() added to class nd gets FIELD short nd.nc
* getTeam() added to class nd gets FIELD short nd.nc
* getLevel() added to class nd gets FIELD int nd.Ub


Hooking Position
* getMyPlayer() added to class client gets STATIC nd wi.T
* getLocationY() added to class ki gets FIELD int[] ki.lb
* getBaseX() added to class client gets STATIC int j.s
* getLocationX() added to class ki gets FIELD int[] ki.bb
* getBaseY() added to class client gets STATIC int fd.Y


Hooking Character
* ki implements interface updater.hook.Character
* getMessage() added to class ki gets FIELD sb ki.Kb
* getAnimation() added to class ki gets FIELD int ki.nb
* isMoving() added to class ki gets FIELD int ki.gb
* getY() added to class ki gets FIELD int ki.C
* getX() added to class ki gets FIELD int ki.cb


Hooking Entity
* getHeight() added to class ki gets FIELD int ki.N
* getPublicChatMode() added to class client gets STATIC int uf.W
* getHPRatio() added to class ki gets FIELD int ki.U
* getLoopCycleStatus() added to class ki gets FIELD int ki.jb
* getLoopCycle() added to class client gets STATIC int fj.a


Hooking InteractingEntity
* getInteracting() added to class ki gets FIELD int ki.A
* getSelfInteracting() added to class client gets STATIC int mj.I
* getTurnDirection() added to class ki gets FIELD int ki.Q


Hooking GroundIntArray
* getGroundIntArray() added to class client gets STATIC int[][][] ec.N


Hooking GroundByteArray
* getGroundByteArray() added to class client gets STATIC byte[][][] je.C


Hooking Camera
* getPlane() added to class client gets STATIC int f.E
* getCamPosX() added to class client gets STATIC int n.a
* getCamPosY() added to class client gets STATIC int ha.T
* getCamPosZ() added to class client gets STATIC int rb.h


Hooking CameraCurves
* getCameraCurveY() added to class client gets STATIC int mh.A
* getCameraCurveX() added to class client gets STATIC int ig.cb


Hooking Interface
* q implements interface updater.hook.Interface
* getCache() added to class q gets FIELD q q.I
* getValueIndexArray() added to class q gets FIELD int[][] q.sb
* getType() added to class q gets FIELD int q.yb
* getActionType() added to class q gets STATIC int q.yc
* getWidth() added to class q gets FIELD int q.T
* getHeight() added to class q gets FIELD int q.Cb
* getActions() added to class q gets FIELD sb[] q.Gc
* isInventoryInterface() added to class q gets FIELD boolean q.sc
* getText() added to class q gets FIELD sb q.c
* getTextColour() added to class q gets FIELD int q.Rc
* getBackgroundColour() added to class q gets FIELD int q.V
* getInvSpritePadX() added to class q gets FIELD int q.H
* getInvSpritePadY() added to class q gets FIELD int q.lb
* getSelectedActionName() added to class q gets FIELD sb q.h
* getSpellName() added to class q gets FIELD sb q.ec
* getToolTip() added to class q gets FIELD sb q.jd
* getInterfaceSelectedModelType() added to class q gets FIELD int q.Vc
* getInterfaceSelectedModelId() added to class q gets FIELD int q.m
* getNotInterfaceSelectedModelID() added to class q gets FIELD int q.ub
* getNotInterfaceSelectedModelType() added to class q gets FIELD int q.Fc
* getInventory() added to class q gets FIELD int[] q.R
* getInventoryStackSizes() added to class q gets FIELD int[] q.x


Hooking Signlink
* getCurrentPassword() added to class client gets STATIC sb fk.B
* getCurrentUsername() added to class client gets STATIC sb fk.J
* getEventQueue() added to class kh gets FIELD java.awt.EventQueue kh.c
* getGameApplet() added to class kh gets FIELD java.applet.Applet kh.o


Hooking Client
* client implements interface updater.hook.Client
* getMouse() added to class client gets STATIC cd p.t
* getKeyboard() added to class client gets STATIC kf si.c


Hooking Mouse
* getMouseX() added to class client gets STATIC int tf.w
* getMouseY() added to class client gets STATIC int sb.E
* getMousePressX() added to class client gets STATIC int cd.y
* getMousePressY() added to class client gets STATIC int bf.q
* getMousePressButton() added to class client gets STATIC int hb.W
* getMousePressLastButton() added to class client gets STATIC int ng.t
* getMousePressTime() added to class client gets STATIC long da.g


Hooking LoginIndex
* getLoginIndex() added to class client gets STATIC int cj.a


Hooking SettingArray
* getSettingArray() added to class client gets STATIC int[] dj.eb


Hooking Item
* nc implements interface updater.hook.Item
* getID() added to class nc gets FIELD int nc.s
* getStackSize() added to class nc gets FIELD int nc.t


Hooking WorldController
* getGroundArray() added to class client gets STATIC p[][][] eg.e
* p implements interface updater.hook.Ground
* ld implements interface updater.hook.ObjectDefinition
* getUID3() added to class ld gets FIELD long ld.f
* v implements interface updater.hook.ObjectDefinition
* getUID4() added to class v gets FIELD long v.s
* be implements interface updater.hook.ObjectDefinition
* getUID5() added to class be gets FIELD long be.g
* jk implements interface updater.hook.ObjectDefinition
* getUID1() added to class jk gets FIELD long jk.b
* id implements interface updater.hook.ObjectDefinition
* getUID2() added to class id gets FIELD long id.f
* getObject3() added to class p gets FIELD ld p.w
* getObject4() added to class p gets FIELD v p.x
* getObject5Array() added to class p gets FIELD be[] p.E
* getObject1() added to class p gets FIELD jk p.F
* getObject2() added to class p gets FIELD id p.W


Hooking SkillExperiencesMax
* getSkillExperiencesMax() added to class client gets STATIC int[] bc.c


Hooking Skills
* getSkillLevelMaxes() added to class client gets STATIC int[] bi.d
* getSkillLevels() added to class client gets STATIC int[] of.t
* getSkillExperiences() added to class client gets STATIC int[] wc.T


Hooking Minimap
* getMinimapInt3() added to class client gets STATIC int ad.f
* getCurveCos() added to class client gets STATIC int[] qg.d
* getCurveSin() added to class client gets STATIC int[] qg.g
* getMapOffsetAngle() added to class client gets STATIC int ee.mb
* getCompassAngle() added to class client gets STATIC int sg.hb


Hooking Node
* hj implements interface updater.hook.NodeSub
* pb implements interface updater.hook.Node
* getID() added to class pb gets FIELD long pb.j
* getPrevious() added to class pb gets FIELD pb pb.p
* getNext() added to class pb gets FIELD pb pb.r


Hooking NodeList
* getNodeListArray() added to class client gets STATIC vf[][][] jg.d
* vf implements interface updater.hook.NodeList
* getHead() added to class vf gets FIELD pb vf.n
* getCurrent() added to class vf gets FIELD pb vf.q


Hooking CachedItem
* gh implements interface updater.hook.CachedItem
* getItem() added to class gh gets FIELD nc gh.O


Hooking Flagged
* getSignlink() added to class client gets STATIC kh sc.o
* isFlagged() added to class client gets STATIC boolean mh.B


Hooking DrawMinimap
* kb implements interface updater.hook.Sprite
* getDestinationX() added to class client gets STATIC int oa.u
* getDestinationY() added to class client gets STATIC int ja.e


Hooking Sprite
* getPixels() added to class kb gets FIELD int[] kb.eb
* getWidth() added to class kb gets FIELD int nj.cb
* getHeight() added to class kb gets FIELD int nj.bb

-----------------------------------
Hooked 120 / 120 fields!
Defined 22 / 22 classes!
This took 2828ms!
About 23ms per hook!
-----------------------------------

Lee Lok Hin

2008-09-18 10:20:06


const
// NPC
NPCDef = 'ne.Qb';

// Player
CharName = 'nd.Tb';
CharLevel = 'nd.Ub';

// RSString
StringBytes = 'sb.ib';

// Client
NPCIndexArray = 'se.z';
NPCArray = 'sf.db';
NPCCount = 'of.N';
PlayerIndArray = 'jh.d';
PlayerArray = 'we.i';
PlayerCount = 'kd.B';
BaseX = 'j.s';
MyPlayer = 'wi.T';
BaseY = 'fd.Y';
LoopCycle = 'fj.a';
GroundHeights = 'ed.J'; //
GroundSettings = 'ae.Y'; //
BaseLayer = 'uj.L'; //
CamX = 'n.a';
CamY = 'ha.T';
CamZ = 'rb.h';
CamPitch = 'vj.l'; //
CamYaw = 'hf.V'; //
LoginIndex = 'cj.a';
SettingsArray = 'dj.eb';
MaxLevels = 'bi.d';
CurrentLevels = 'of.t';
Experiences = 'wc.T';
MapOffsetAngle = 'ee.mb';
CompassAngle = 'sg.hb';
ChatMessages = 'gd.y'; //
ChatNames = 'k.R'; //
ChatTypes = 'rc.M'; //
FlagX = 'ki.C';
FlagY = 'ki.Cb';

// Character
CharAnim = 'ki.nb';
CharMotion = 'ki.gb';
CurrentX = 'ki.C';
CurrentY = 'ki.cb';
LoopCycleStatus = 'ki.jb';
CharHPRatio = 'ki.U';
CharHeight = 'ki.N';

// NPCDef
GetNPCName = 'ak.bb';
GetNPCType = 'ak.d';

//ItemFinding
getNodeListArray = 'jg.d';
getHead = 'vf.n';
getNext = 'pb.r';
getItem = 'gh.O';
getStackSize = 'nc.t';
getID = 'nc.s';

getGroundArray = 'ec.N';

// Object Hooks

getObject1 = 'p.F';
getObject2 = 'p.W';
getObject3 = 'p.w';
getObject4 = 'p.x';

getObject5Array = 'p.E';

getUID1 = 'jk.b';
getUID2 = 'id.f';
getUID3 = 'ld.f';
getUID4 = 'v.s';
getUID5 = 'be.g';





This is the best I can do. the ones with // after them have not been updated. Should work now. If you don't know what to do with the list, don't bother, and just wait for the next rev.

Hooking NPC
* getNPCIndexArray() added to class client gets STATIC int[] se.z
* getNPCArray() added to class client gets STATIC ne[] sf.db
* ne implements interface updater.hook.NPC

Hooking Player
* getNPCIndexArray() added to class client gets STATIC int[] jh.d
* getNPCArray() added to class client gets STATIC nd[] we.i


Which one is which? :s



Anyway, Sorry, but I didn't test either. About to go to sleep, so.

Shady?

2008-09-18 12:52:07

K i just tested them, and they seem to work okay ;)

sirlaughsalot

2008-09-18 12:54:44

From: Shady?
K i just tested them, and they seem to work okay ;)


you sure about that? cuz i cant seem to get my script to walk… and yes i have had lots of testing, it has worked before…

Shady?

2008-09-18 13:43:12

From: sirlaughsalot
you sure about that? cuz i cant seem to get my script to walk… and yes i have had lots of testing, it has worked before…


True, you're right. Walking hooks are not working, just tested them.
About that last post, i just changed the hooks and my script compiled right, so i thought that they were working.

Heavenzeyez1

2008-09-18 15:40:49

Not working atm.
~Eerik~

sirlaughsalot

2008-09-18 15:50:13

From: heavenzeyez1
Not working atm.
~Eerik~


I think we already established that

Nava2

2008-09-18 16:00:54

If anyone knows how to fix them, feel free to share. :(

Method

2008-09-18 19:18:50

Ok, I've updated the SVN with the new hooks. Hopefully that should fix most things. Unfortunately, my FlagX and FlagY hooks were incorrect, so WalkToTile may be broken for the moment without the correct flag hooks.

xdefz0rx

2008-09-18 19:58:49

yup it w0rks :)

pini3000

2008-09-19 13:23:41

The new reflections seems to have everything up and running, all scripts seem fine atm…

Method

2008-09-19 19:04:40

From: pini3000
The new reflections seems to have everything up and running, all scripts seem fine atm…


That's good to hear. I updated the FlagX and FlagY hooks and also my CharX and CharY hooks (which were backwards) yesterday.

pini3000

2008-09-20 08:04:19

Will check what I can, but doubt any new this weekend, busy. Only accessing this place through my iPhone lol.

Hopefully some kind person will detail any news, improvements and errors :)

Heavenzeyez1

2008-09-20 09:37:45

Yes, everything is working again. :)
Thanks a lot.
~Eerik~