SRL Archive - Client Hacking

#644


Chrisss

2011-04-19 16:06:24

Majority should be correct.

RuneScape version 644.
MouseEvent injected into sfa
MouseListnerEvent injected into fd
PaintEvent injected into rca
MouseWheelListnerEvent injected into wo
^ client implements Client
* getCanvas() --> static Ljava/awt/Canvas; dj.d
* getMenuNodes() --> static Lga; fd.j
* getGroundTileArray() --> static [[[Lrr; eh.a
* getSkillLevels() --> static [I nl.f
* getSkillUnknown() --> static [I up.t
* getSkillExperiences() --> static [I gt.d
* getInterfaceBounds() --> static [Ljava/awt/Rectangle; rg.b
* isMenuOpen() --> static Z oh.g
* getPlayerIndexArray() --> static [I nd.x
* getPlayerCount() --> static I cg.e
* getPlayers() --> static [Lts; nda.h
* getNpcArray() --> static [Lma; jia.a
* getNpcIndexArray() --> static [I wia.s
* getNpcCount() --> static I nc.l
* getToolkit() --> static Lha; te.I
* getFps() --> static I tt.a
* getLoginIndex() --> static I sha.j
* getLocalPlayer() --> static Lts; eia.d
* getTileData() --> static [Ls; ke.f
* getBaseX() --> static I bka.xb
* getBaseY() --> static I pia.i
* getCameraX() --> static I pia.i
* getCameraY() --> static I tia.r
* getCameraZ() --> static I sn.g
* getSettingArray() --> static Lcl; oba.f
* getSelectedObjectName() --> static Ljava/lang/String; du.e
* getSelectedActionName() --> static Ljava/lang/String; afa.c
* getInterfaceCache() --> static [[Lwq; cea.N
* getGrandExchangeItems() --> static [Lpt; vw.k
* getMouse() --> static Lsfa; gba.A

^ nba implements MenuNode
* getId() --> field I nba.B
* getOption() --> field Ljava/lang/String; nba.F

^ ga implements NodeList
* getHead() --> field Ldn; ga.j
* getCurrent() --> field Ldn; ga.p

^ ni implements Toolkit
* getViewport() --> field Lcf; ni.C
* getZNear() --> field I ni.lb
* getZFar() --> field I ni.X
* getXScale() --> field I ni.S
* getYScale() --> field I ni.D
* getXMin() --> field I ni.H
* getXMax() --> field I ni.Z
* getYMax() --> field I ni.P
* getYMin() --> field I ni.U
¤ worldToScreen() --> method ni.da(III[I)V

^ ha implements AbstractToolkit

^ cf implements Viewport
* getZOffset() --> field F cf.p
* getZx() --> field F cf.m
* getZy() --> field F cf.H
* getZz() --> field F cf.F
* getXOffset() --> field F cf.j
* getXx() --> field F cf.G
* getXy() --> field F cf.g
* getXz() --> field F cf.n
* getYOffset() --> field F cf.v
* getYx() --> field F cf.q
* getYy() --> field F cf.l
* getYz() --> field F cf.w

^ fr implements SDModel
* getPointsX() --> field [I fr.r
* getPointsY() --> field [I fr.l
* getPointsZ() --> field [I fr.Cb
* getIndicies1() --> field [S fr.Jb
* getIndicies2() --> field [S fr.Y
* getIndicies3() --> field [S fr.P

^ ka implements Model

^ rr implements GroundTile
* getAnimableNode() --> field Lbk; rr.h

^ bk implements AnimableNode
* getNext() --> field Lbk; bk.b
* getAnimable() --> field Lwga; bk.f

^ wq implements Interface
* getChildren() --> field [Lwq; wq.T
* getType() --> field I wq.kb
* getId() --> field I wq.Mb
* getWidth() --> field I wq.G
* getHeight() --> field I wq.a
* isHidden() --> field Z wq.Pb
* getHScroll() --> field I wq.sc
* getMaxHScroll() --> field I wq.Bc
* getMinHScroll() --> field I wq.td
* getVScroll() --> field I wq.k
* getMaxVScroll() --> field I wq.S
* getMinVScroll() --> field I wq.kd
* getTextColor() --> field I wq.xb
* getTextureId() --> field I wq.Kc
* getModelType() --> field I wq.tb
* getModelId() --> field I wq.cd
* getModelRotationX() --> field I wq.Vb
* getModelRotationY() --> field I wq.w
* getModelRotationZ() --> field I wq.Ec
* getModelZoom() --> field I wq.Ic
* getText() --> field Ljava/lang/String; wq.sd
* isInventoryInterface() --> field Z wq.zb
* getBorderThickness() --> field I wq.d
* getShadowColor() --> field I wq.r
* isFlippedVertically() --> field Z wq.h
* isFlippedHorizontally() --> field Z wq.Tb
* getItemName() --> field Ljava/lang/String; wq.id
* getSelectedActionName() --> field Ljava/lang/String; wq.Wb
* getItemActions() --> field [Ljava/lang/String; wq.qc
* getX() --> field I wq.Xb
* getY() --> field I wq.Cb
* getParentId() --> field I wq.hd
* getItemId() --> field I wq.Q
* getItemStackSize() --> field I wq.Uc
* getItemIndex() --> field I wq.kc
* getRectX() --> field I wq.Xb
* getRectY() --> field I wq.Cb
* getRectWidth() --> field I wq.td
* getRectHeight() --> field I wq.kd
* getBoundsIndex() --> field I wq.o

^ pt implements GrandExchangeItem
* getTotal() --> field I pt.a
* getStatus() --> field B pt.c
* getSpent() --> field I pt.g
* getItemID() --> field I pt.j
* getTransfered() --> field I pt.l
* getPrice() --> field I pt.m

^ ts implements Player
* getName() --> field Ljava/lang/String; ts.ud
* getLevel() --> field I ts.Ld

^ li implements Character
* getHeight() --> field I li.Tb
* getModels() --> field [Lka; li.Jc
* getLocationX() --> field [I li.Sc
* getLocationY() --> field [I li.Pc
* getAnimation() --> field I li.Nc

^ wga implements AnimableEntity

^ sf implements Entity
* getLocalX() --> field I sf.u
* getLocalY() --> field I sf.v
* getPlane() --> field B sf.m

^ bka implements InteractiveObject
* getId() --> field S bka.X
* getModel() --> field Lka; bka.gb

^ ma implements NPCNode
* getNpc() --> field Lkia; ma.m

^ kia implements NPC
* getNpcDef() --> field Lrn; kia.Wc

^ rn implements NPCDef
* getName() --> field Ljava/lang/String; rn.f
* getActions() --> field [Ljava/lang/String; rn.Ab

^ dn implements Node
* getPrevious() --> field Ldn; dn.g
* getNodeId() --> field J dn.a
* getNext() --> field Ldn; dn.b

^ ra implements Chat
* getName() --> field Ljava/lang/String; ra.q
* getMessage() --> field Ljava/lang/String; ra.j

^ s implements TileData
* getHeights() --> field [[I s.g

^ fd implements MouseListener

^ sfa implements Mouse

^ wo implements MouseWheelListener

Iamadam

2011-04-19 21:25:08

I have a feeling interfaceCache is hk.yb, not cea.N
(Had issues with pyros current hooks and withdrawing items, changed that hook and it works now).

TomTuff

2011-04-19 21:41:00

From: Iamadam
I have a feeling interfaceCache is hk.yb, not cea.N
(Had issues with pyros current hooks and withdrawing items, changed that hook and it works now).


Great thanks I was wondering why that wasn't working!

Simtoon

2011-04-19 22:09:54

YAY Withdrawing works :D

Sex

2011-04-19 22:11:19

Who is this guy O_o?

grats

2011-04-19 22:24:43

From: Sex
Who is this guy O_o?


I could be wrong, but I believe his name is Chris

I was amazed at his first post aswell

Sex

2011-04-19 22:29:53

Really? It's Chris?

Echo_

2011-04-19 22:30:05

His updater log looks like it is based off of the RS-Hacking framework, so my best guess is that he came from that community :garfield:

pyroryan

2011-04-19 22:51:51

From: Iamadam
I have a feeling interfaceCache is hk.yb, not cea.N
(Had issues with pyros current hooks and withdrawing items, changed that hook and it works now).


Thanks for the PM :).

gregdw

2011-04-20 00:11:54

From: Chrisss
Majority should be correct.

RuneScape version 644.
MouseEvent injected into sfa
MouseListnerEvent injected into fd
PaintEvent injected into rca
MouseWheelListnerEvent injected into wo
^ client implements Client
* getCanvas() --> static Ljava/awt/Canvas; dj.d
* getMenuNodes() --> static Lga; fd.j
* getGroundTileArray() --> static [[[Lrr; eh.a
* getSkillLevels() --> static [I nl.f
* getSkillUnknown() --> static [I up.t
* getSkillExperiences() --> static [I gt.d
* getInterfaceBounds() --> static [Ljava/awt/Rectangle; rg.b
* isMenuOpen() --> static Z oh.g
* getPlayerIndexArray() --> static [I nd.x
* getPlayerCount() --> static I cg.e
* getPlayers() --> static [Lts; nda.h
* getNpcArray() --> static [Lma; jia.a
* getNpcIndexArray() --> static [I wia.s
* getNpcCount() --> static I nc.l
* getToolkit() --> static Lha; te.I
* getFps() --> static I tt.a
* getLoginIndex() --> static I sha.j
* getLocalPlayer() --> static Lts; eia.d
* getTileData() --> static [Ls; ke.f
* getBaseX() --> static I bka.xb
* getBaseY() --> static I pia.i
* getCameraX() --> static I pia.i
* getCameraY() --> static I tia.r
* getCameraZ() --> static I sn.g
* getSettingArray() --> static Lcl; oba.f
* getSelectedObjectName() --> static Ljava/lang/String; du.e
* getSelectedActionName() --> static Ljava/lang/String; afa.c
* getInterfaceCache() --> static [[Lwq; cea.N
* getGrandExchangeItems() --> static [Lpt; vw.k
* getMouse() --> static Lsfa; gba.A

^ nba implements MenuNode
* getId() --> field I nba.B
* getOption() --> field Ljava/lang/String; nba.F

^ ga implements NodeList
* getHead() --> field Ldn; ga.j
* getCurrent() --> field Ldn; ga.p

^ ni implements Toolkit
* getViewport() --> field Lcf; ni.C
* getZNear() --> field I ni.lb
* getZFar() --> field I ni.X
* getXScale() --> field I ni.S
* getYScale() --> field I ni.D
* getXMin() --> field I ni.H
* getXMax() --> field I ni.Z
* getYMax() --> field I ni.P
* getYMin() --> field I ni.U
¤ worldToScreen() --> method ni.da(III[I)V

^ ha implements AbstractToolkit

^ cf implements Viewport
* getZOffset() --> field F cf.p
* getZx() --> field F cf.m
* getZy() --> field F cf.H
* getZz() --> field F cf.F
* getXOffset() --> field F cf.j
* getXx() --> field F cf.G
* getXy() --> field F cf.g
* getXz() --> field F cf.n
* getYOffset() --> field F cf.v
* getYx() --> field F cf.q
* getYy() --> field F cf.l
* getYz() --> field F cf.w

^ fr implements SDModel
* getPointsX() --> field [I fr.r
* getPointsY() --> field [I fr.l
* getPointsZ() --> field [I fr.Cb
* getIndicies1() --> field [S fr.Jb
* getIndicies2() --> field [S fr.Y
* getIndicies3() --> field [S fr.P

^ ka implements Model

^ rr implements GroundTile
* getAnimableNode() --> field Lbk; rr.h

^ bk implements AnimableNode
* getNext() --> field Lbk; bk.b
* getAnimable() --> field Lwga; bk.f

^ wq implements Interface
* getChildren() --> field [Lwq; wq.T
* getType() --> field I wq.kb
* getId() --> field I wq.Mb
* getWidth() --> field I wq.G
* getHeight() --> field I wq.a
* isHidden() --> field Z wq.Pb
* getHScroll() --> field I wq.sc
* getMaxHScroll() --> field I wq.Bc
* getMinHScroll() --> field I wq.td
* getVScroll() --> field I wq.k
* getMaxVScroll() --> field I wq.S
* getMinVScroll() --> field I wq.kd
* getTextColor() --> field I wq.xb
* getTextureId() --> field I wq.Kc
* getModelType() --> field I wq.tb
* getModelId() --> field I wq.cd
* getModelRotationX() --> field I wq.Vb
* getModelRotationY() --> field I wq.w
* getModelRotationZ() --> field I wq.Ec
* getModelZoom() --> field I wq.Ic
* getText() --> field Ljava/lang/String; wq.sd
* isInventoryInterface() --> field Z wq.zb
* getBorderThickness() --> field I wq.d
* getShadowColor() --> field I wq.r
* isFlippedVertically() --> field Z wq.h
* isFlippedHorizontally() --> field Z wq.Tb
* getItemName() --> field Ljava/lang/String; wq.id
* getSelectedActionName() --> field Ljava/lang/String; wq.Wb
* getItemActions() --> field [Ljava/lang/String; wq.qc
* getX() --> field I wq.Xb
* getY() --> field I wq.Cb
* getParentId() --> field I wq.hd
* getItemId() --> field I wq.Q
* getItemStackSize() --> field I wq.Uc
* getItemIndex() --> field I wq.kc
* getRectX() --> field I wq.Xb
* getRectY() --> field I wq.Cb
* getRectWidth() --> field I wq.td
* getRectHeight() --> field I wq.kd
* getBoundsIndex() --> field I wq.o

^ pt implements GrandExchangeItem
* getTotal() --> field I pt.a
* getStatus() --> field B pt.c
* getSpent() --> field I pt.g
* getItemID() --> field I pt.j
* getTransfered() --> field I pt.l
* getPrice() --> field I pt.m

^ ts implements Player
* getName() --> field Ljava/lang/String; ts.ud
* getLevel() --> field I ts.Ld

^ li implements Character
* getHeight() --> field I li.Tb
* getModels() --> field [Lka; li.Jc
* getLocationX() --> field [I li.Sc
* getLocationY() --> field [I li.Pc
* getAnimation() --> field I li.Nc

^ wga implements AnimableEntity

^ sf implements Entity
* getLocalX() --> field I sf.u
* getLocalY() --> field I sf.v
* getPlane() --> field B sf.m

^ bka implements InteractiveObject
* getId() --> field S bka.X
* getModel() --> field Lka; bka.gb

^ ma implements NPCNode
* getNpc() --> field Lkia; ma.m

^ kia implements NPC
* getNpcDef() --> field Lrn; kia.Wc

^ rn implements NPCDef
* getName() --> field Ljava/lang/String; rn.f
* getActions() --> field [Ljava/lang/String; rn.Ab

^ dn implements Node
* getPrevious() --> field Ldn; dn.g
* getNodeId() --> field J dn.a
* getNext() --> field Ldn; dn.b

^ ra implements Chat
* getName() --> field Ljava/lang/String; ra.q
* getMessage() --> field Ljava/lang/String; ra.j

^ s implements TileData
* getHeights() --> field [[I s.g

^ fd implements MouseListener

^ sfa implements Mouse

^ wo implements MouseWheelListener



private String getLocInst = "iadd putstatic aload_0 getfield ireturn astore_2 aload_2 new dup ldc";//3


for(Method m : cg.getMethods()) {
InstructionFinder finder = new InstructionFinder(new InstructionList(m.getCode().getCode()));
for(Iterator<InstructionHandle[]> it = finder.search(getLocInst); it.hasNext();) {
InstructionHandle[] ih = it.next();
FieldInstruction instruction = (FieldInstruction) ih[3].getInstruction();
if(instruction.getType(cg.getConstantPool()).getSignature().contains("B"))
ch.add("Location", instruction.getName(cg.getConstantPool()), instruction.getFieldType(cg.getConstantPool()).getSignature(), false);

}
}


That's the getLocation fix for InteractiveObjects. Or at least should be ^.^

Edit: Rewriting my updater, 2 hour rewrite so far, for anyone that cares :


<>Lizard's Updater
-------------------
- Loaded 848 classes
- Hooked 12 classes
- Hooked 6 total fields
- Hooked 6 static fields
- Hooked 0 total methods
- Hooked 0 static methods
-------------------

<> Updater.Hooks.Client implements client
* getPlayerIndices() --> static [I nd.x
* getPlayerCount() --> static I cg.e
* getPlayers() --> static [Lts; nda.h
* getNpcIndexArray() --> static [I wia.s
* getNpcCount() --> static I nc.l
* getNpcArray() --> static [Lma; jia.a

<> Updater.Hooks.Player implements ts

<> Updater.Hooks.Character implements li

<> Updater.Hooks.AnimableEntity implements wga

<> Updater.Hooks.Entity implements sf

<> Updater.Hooks.SceneNode implements sga

<> Updater.Hooks.NpcNode implements ma

<> Updater.Hooks.Node implements dn

<> Updater.Hooks.Toolkit implements ni

<> Updater.Hooks.AbstractToolKit implements ha

<> Updater.Hooks.SDModel implements fr

<> Updater.Hooks.Model implements ka

-------------------

Updating took 721ms


Chrisss

2011-04-20 05:16:55

For everyone that's wondering, I'm Chris from rs-hacking. :p

My updater has been in development for about 6 hours? Need more hooks though.


From: Iamadam
I have a feeling interfaceCache is hk.yb, not cea.N

Thanks, fixed.


From: gregdw

private String getLocInst = "iadd putstatic aload_0 getfield ireturn astore_2 aload_2 new dup ldc";//3


for(Method m : cg.getMethods()) {
InstructionFinder finder = new InstructionFinder(new InstructionList(m.getCode().getCode()));
for(Iterator<InstructionHandle[]> it = finder.search(getLocInst); it.hasNext();) {
InstructionHandle[] ih = it.next();
FieldInstruction instruction = (FieldInstruction) ih[3].getInstruction();
if(instruction.getType(cg.getConstantPool()).getSignature().contains("B"))
ch.add("Location", instruction.getName(cg.getConstantPool()), instruction.getFieldType(cg.getConstantPool()).getSignature(), false);

}
}


That's the getLocation fix for InteractiveObjects. Or at least should be ^.^

Location? If you mean X and Y, you get that from the superclass (of the superclass :p)…

Echo_

2011-04-20 08:52:08

From: gregdw

private String getLocInst = "iadd putstatic aload_0 getfield ireturn astore_2 aload_2 new dup ldc";//3


for(Method m : cg.getMethods()) {
InstructionFinder finder = new InstructionFinder(new InstructionList(m.getCode().getCode()));
for(Iterator<InstructionHandle[]> it = finder.search(getLocInst); it.hasNext();) {
InstructionHandle[] ih = it.next();
FieldInstruction instruction = (FieldInstruction) ih[3].getInstruction();
if(instruction.getType(cg.getConstantPool()).getSignature().contains("B"))
ch.add("Location", instruction.getName(cg.getConstantPool()), instruction.getFieldType(cg.getConstantPool()).getSignature(), false);

}
}


That's the getLocation fix for InteractiveObjects. Or at least should be ^.^


Thanks for the transform snippet, I really should find more time to work on my updater :garfield:

gregdw

2011-04-20 09:30:00

From: Chrisss
For everyone that's wondering, I'm Chris from rs-hacking. :p

My updater has been in development for about 6 hours? Need more hooks though.



Thanks, fixed.



Location? If you mean X and Y, you get that from the superclass (of the superclass :p)…


Not x, y. I found it in an uber old transform and old client. Had it reworked to 643 >.<; Should still work.

Edit:

No problem Echo_ I'm willing to share any code if asked ;). I only use 13 classes right now, but I have my old transforms as well for examples on how I did things.

Chrisss

2011-04-20 13:04:39

From: gregdw
Not x, y. I found it in an uber old transform and old client. Had it reworked to 643 >.<; Should still work.

What does this field contain?