SRL Archive - Client Hacking

#625


TRiLeZ

2010-10-18 19:24:00

Here's my updater log:


[-------------------TRiBot Updater-------------------]
Client Revision: 625.
Loaded 746 classes from runescape-625.jar in 400 ms.

Class pn implements Animable
» getLocalX() int pn.j
» getLocalY() int pn.s
» getPlane() Broken Hook

Class ol implements Character
» getLoopCycleStatus() int ol.xb
» getAnimation() int ol.qb
» getModels() da[] ol.Vc
» getWalkingX() int[] ol.Tc
» getWalkingY() int[] ol.Uc
» getCurrentWaypoint() int ol.Wc
» getWalkingTypes() byte[] ol.Sc

Class client implements Client
» getBaseX() int lw.d
» getBaseY() int fb.N
» getLoginIndex() int pg.e
» getMyPlayer() pba ji.w
» getMinimapScale() int naa.a
» getMinimapSetting() int hc.t
» getMinimapAngle() int kaa.o
» getMinimapOffset() float i.f
» getNpcCount() int ce.f
» getNpcIndices() int[] uaa.w
» getNpcNodes() oj[] bca.e
» getPlayerCount() int bba.U
» getPlayerIndices() int[] lp.d
» getPlayers() pba[] ph.s
» getLoopCycle() int ou.a
» getUsername() java.lang.String pv.l
» getPassword() java.lang.String tv.Q
» getPlane() int wr.b
» getPlanes() i[] jk.b
» getMainToolkit() Broken Hook
» getSelectedObjectName() java.lang.String iw.f
» getSelectedActionName() java.lang.String pu.F
» getGroundTiles() up[][][] hca.j
» getMapWidth() int mu.o
» getMapHeight() int uda.F
» getMenuOptionCount() int fw.q
» getIsMenuOpen() boolean kp.d
» getMenuNodeList() or jo.c
» getMenuHeight() int el.K
» getMenuWidth() Broken Hook
» getMenuX() Broken Hook
» getMenuY() int de.t
» getIsSpellSelected() boolean jh.jb
» getSpellTarget() int gv.r
» getPlayerRights() int ib.f
» getDestX() int na.c
» getDestY() int jq.q
» getFriendsList() java.lang.String[] qi.z
» getFriendWorlds() int[] oe.c
» getValidInterfaces() boolean[] ega.y
» getInterfaces() pca[][] raa.g
» getInterfaceBoundsArray() java.awt.Rectangle[] lm.w
» getFPS() int gs.W
» getItemDefLoader() hca kba.I
» getCameraPitch() int vl.d
» getCameraYaw() int pu.t

Class ? implements InteractiveObject1
» getId() Broken Hook

Class ? implements InteractiveObject2
» getData() Broken Hook

Class pca implements Interface
» getParentID() int pca.Pc
» getChildren() pca[] pca.O
» getX() int pca.T
» getY() int pca.Qc
» getType() int pca.bb
» getWidth() int pca.Zc
» getHeight() int pca.A
» getContentType() int pca.Jb
» getUID() int pca.Oc
» getIsHidden() boolean pca.dc
» getBoundsArrayIndex() int pca.ad
» getLastUpdate() int pca.Tc
» getComponentID() int pca.Ub
» getComponentStack() int pca.Hb
» getTextColor() int pca.Lc

Class hu implements ItemDef
» getName() java.lang.String hu.jb
» getStackable() int hu.K

Class dh implements MenuNode
» getOption() java.lang.String dh.w

Class sp implements Npc
» getDef() ms sp.Xc

Class oj implements NpcNode
» getNpc() sp oj.s

Class ? implements ObjectDefinition

Class i implements Plane
» getScale() int i.g
» getXSize() int i.b
» getYSize() int i.h
» getZSize() int i.e

Class pba implements Player
» getName() java.lang.String pba.Yd
» getSkillLevel() int pba.Gd
» getLevel() int pba.Jd
» getTeam() int pba.cd

Class me implements SDModel
» getPointsX() int[] me.ab
» getPointsY() int[] me.Tb
» getPointsZ() int[] me.Cb

Class i implements SDPlane
» getTileHeights() int[][] i.k

Class wk implements SDToolkit
» getViewport() mda wk.z
» getXScale() int wk.D
» getYScale() int wk.A
» getZMin() int wk.B
» getZMax() int wk.N
» getYMin() int wk.X
» getXMin() int wk.F

Class mda implements SDViewport
» getZOff() float mda.L
» getZX() float mda.E
» getZY() float mda.N
» getZZ() float mda.I
» getYOff() float mda.h
» getYX() float mda.m
» getYY() float mda.s
» getYZ() float mda.z
» getXOff() float mda.i
» getXX() float mda.M
» getXY() float mda.H
» getXZ() float mda.r

Hooked: 103/109 hooks in 1330ms.
Took: 1750ms to update.

I haven't worked on my updater since the Z-Buffering update. :p

Cstrike

2010-10-18 19:32:11

Thanks for the update. Can't believe they did two updates in one day. Probably pissed off a lot of hook-grabbers too.

Myhatisblack

2010-10-18 20:01:06

How do I put these into my hooks file? They look different for some reason.

Camaro'

2010-10-18 20:05:58

From: Myhatisblack
How do I put these into my hooks file? They look different for some reason.


They are outputted differently then what Hooks.simba looks like, just if you want to do it your self, manually convert each hook into Hooks.simba.

Myhatisblack

2010-10-18 20:11:03

How do I do this? :\ Sorry. I'm a noob.

Cstrike

2010-10-18 20:17:45

From: Myhatisblack
How do I do this? :\ Sorry. I'm a noob.


If you do go ahead and do this, post it for all of us ;)


How you do it is:

1) Look at the hook you want to update in hooks.simba

2) Find a hook, lets take
hook_static_LoginIndex = 'aea.f'; //624 

3) Find the hook for the part hook_static_LoginIndex =
See the bold part? Look for that in other peoples hooks…
So using the tribot hooks that were posted @ top, you get:
» getLoginIndex() int pg.e

Now you take the parts after it, which is pg.e and set it up like this
hook_static_LoginIndex = 'pg.e'; //625 


Some you may not find (so don't go adding hooks that you're not 100% sure are the correct ones, and in addition, some hooks like interface are weird.
All the interfaces have one common letter like 'n' or 'p' before them, then a dot, then the letters after. You need to set the interface hook to the first letter, and then all the ones after to the letter without the dot (I guess reflection uses string merging?). Take a look at the tribot interface code versus hooks.simba to see any resemblances.

Then write "625" on top of any 624's you see to show youve updated it to the newest version. That includes the constant at the top ;)

Camaro'

2010-10-18 20:21:01

From: cstrike




Maybe some one should make a converter. :)

Bobarkinator

2010-10-18 20:23:20

They've been made but now they're outdated. Most people name their hooks differently so it's not like you can get a "one-size-fits-all" converter which makes it pretty annoying. Also people are constantly adding more hooks so you have to update the converter.

Cstrike

2010-10-18 20:32:55

[QUOTE=Camaro';744370]Maybe some one should make a converter. :)[/QUOTE]

If I knew how to I'd make one right now ;) :)
It'd be cool [IMO] to paste some text from rs-hacking.com, and a second later have all the hooks formatted properly.

Camaro'

2010-10-18 20:34:15

From: Bobarkinator
They've been made but now they're outdated. Most people name their hooks differently so it's not like you can get a "one-size-fits-all" converter which makes it pretty annoying. Also people are constantly adding more hooks so you have to update the converter.


Care linking me to an outdated one? If I ever get time to make one, it wouldn't be an issue updating and / or make more copies to support many different updaters.


@cstrike - Yea, pretty nifty..

Cstrike

2010-10-18 20:38:45

I tried making lives easier:

{Class ObjectInterface}
class_ObjectInterface = 'pca'; //625 **
hook_interface_GetActions = 'bd'; //624
hook_interface_GetX = 'T'; //625 **
hook_interface_GetY = 'Qc'; //625 **
hook_interface_GetWidth = 'Zc'; //625 **
hook_interface_GetHeight = 'A'; //625 **
hook_interface_GetText = 'Yc'; //624
hook_interface_GetTextureID = 'Nc'; //624
hook_interface_GetTextColor = 'Lc'; //624
hook_interface_GetModelID = 'jc'; //624
hook_interface_GetModelZoom = 'Ec'; //624
hook_interface_GetName = 'kc'; //624
hook_interface_GetChildren = 'Pb'; //624
hook_interface_GetID = 'Ub'; //625 ** //actually GetComponentID/GetItemID we need to change this
hook_interface_GetStack = 'e'; //624
hook_interfaces_GetParentID = 'cb'; //624
hook_interfaces_IsHidden = 'ab'; //624

I just ripped some of them from trilez' updater

I hate the one size doesn't fit all D:
I always wanted to make oen for the RS hacking.com updates which seem pretty complete AFAIK:
RSHacking.com ASM updater
-------------------------
- Loaded 746 classes
- RS Version #625
- Hooked 31 classes
- Hooked 91 dynamic fields
- Hooked 8 dynamic methods
- Hooked 20 static fields
- Hooked 0 static methods
-------------------------

^ client implements hooks.Client
* myPlayerRights --> static I ib.f
* itemDefLoader --> static Lhca; kba.I
* gameState --> static I pg.e
* flagged --> static Z cj.g
* myPlayer --> static Lpba; ji.w
* myCountry --> static I is.f
* grandExchangeItems --> static [Lqu; dw.f
* clanChatPlayerCount --> static I jo.h
* canvas --> static Ljava/awt/Canvas; eo.f
* signlink --> static Lk; tr.g
* npcNodes --> static [Loj; bca.e
* npcIndices --> static [I uaa.w
* npcCount --> static I ce.f
* performance --> static I bf.z
* heapSize --> static I nt.a
* world --> static Lmq; dt.f
* operatingSystem --> static Ljava/lang/String; rp.fb
* playerIndices --> static [I sh.c
* playerCount --> static I mh.m
* players --> static [Lpba; ph.s

^ wea implements hooks.ClientScript

^ hca implements hooks.ItemDefLoader

^ cca implements hooks.WorldSub
* id --> field I cca.s
* activity --> field Ljava/lang/String; cca.v

^ pca implements hooks.Interface
* children --> field [Lpca; pca.O
* type --> field I pca.bb
* id --> field I pca.Oc
* width --> field I pca.i
* height --> field I pca.Ab
* hidden --> field Z pca.dc
* hScroll --> field I pca.Hc
* maxHScroll --> field I pca.kb
* minHScroll --> field I pca.Zc
* vScroll --> field I pca.Ic
* maxVScroll --> field I pca.e
* minVScroll --> field I pca.A
* textColor --> field I pca.Lc
* textureId --> field I pca.w
* modelType --> field I pca.cd
* modelId --> field I pca.Z
* modelRotationX --> field I pca.Qb
* modelRotationY --> field I pca.vc
* modelRotationZ --> field I pca.hc
* modelZoom --> field I pca.q
* text --> field Ljava/lang/String; pca.pd
* inventoryInterface --> field Z pca.Yc
* borderThickness --> field I pca.Gc
* shadowColor --> field I pca.X
* flippedVertically --> field Z pca.oc
* flippedHorizontally --> field Z pca.Dc
* itemName --> field Ljava/lang/String; pca.Ib
* selectedActionName --> field Ljava/lang/String; pca.V
* itemActions --> field [Ljava/lang/String; pca.tb
* x --> field I pca.T
* y --> field I pca.Qc
* parentId --> field I pca.Pc
* itemId --> field I pca.Ub
* itemStackSize --> field I pca.Hb
* itemIndex --> field I pca.uc

^ pba implements hooks.Player
* displayName --> field Ljava/lang/String; pba.Yd
* playerDef --> field Lhq; pba.Kd

^ pn implements hooks.Animable
* plane --> field B pn.i
* x --> field I pn.j
* y --> field I pn.s

^ hu implements hooks.ItemDef
* certTemplateId --> field I hu.f
* certId --> field I hu.cb
* members --> field Z hu.mb
* name --> field Ljava/lang/String; hu.jb
* groundActions --> field [Ljava/lang/String; hu.b
* actions --> field [Ljava/lang/String; hu.m
* value --> field I hu.s
* stackable --> field I hu.K
* loader --> field Lhca; hu.B

^ qu implements hooks.GrandExchangeItem
* id --> field I qu.d
* total --> field I qu.b
* transfered --> field I qu.i
* spent --> field I qu.j

^ qq implements hooks.FileOnDisk
* randomAccessFile --> field Ljava/io/RandomAccessFile; qq.d
* file --> field Ljava/io/File; qq.i
* length --> field J qq.b
* position --> field J qq.g
? write() --> method qq.a([BIII)V
? close() --> method qq.b(I)V
? finalize() --> method qq.finalize()V
? getFile() --> method qq.a(B)Ljava/io/File;
? seek() --> method qq.a(JI)V
? length() --> method qq.c(I)J
? () --> method qq.(Ljava/io/File;Ljava/lang/String;J)V
? read() --> method qq.a(III[B)I

^ faa implements hooks.ProducingGraphicsBuffer
* image --> field Ljava/awt/Image; faa.z
* canvas --> field Ljava/awt/Canvas; faa.C
* colorModel --> field Ljava/awt/image/ColorModel; faa.H
* imageConsumer --> field Ljava/awt/image/ImageConsumer; faa.K

^ k implements hooks.SignLink
* eventQueue --> field Ljava/awt/EventQueue; k.s

^ dv implements hooks.Connection
* inputStream --> field Ljava/io/InputStream; dv.e
* outputStream --> field Ljava/io/OutputStream; dv.k
* socket --> field Ljava/net/Socket; dv.l

^ hq implements hooks.PlayerDef
* male --> field Z hq.h

^ oj implements hooks.NpcNode
* npc --> field Lsp; oj.s

^ mq implements hooks.World
* number --> field I mq.m

^ fe implements hooks.GfxCard
* vendor --> field I fe.f
* name --> field Ljava/lang/String; fe.i
* version --> field I fe.d
* device --> field Ljava/lang/String; fe.k
* driverVersion --> field J fe.j

^ u implements hooks.Node
* id --> field J u.b

^ jea implements hooks.Interactable

^ ie implements hooks.Stream
* offset --> field I ie.L
* buffer --> field [B ie.yb

^ er implements hooks.OpenGLToolkit
* openGL --> field Ljaggl/OpenGL; er.Bd

^ jaggl/OpenGL implements hooks.OpenGL

^ r implements hooks.Toolkit

^ to implements hooks.DirectXToolkit
* direct3DDevice --> field Ljagdx/IDirect3DDevice; to.vg
* direct3DCaps --> field Ljagdx/D3DCAPS; to.zg
* geometryBuffer --> field Ljagdx/GeometryBuffer; to.Ag
* direct3DParameters --> field Ljagdx/D3DPRESENT_PARAMETERS; to.Bg
* pixelBuffer --> field Ljagdx/PixelBuffer; to.Mg
* direct3D --> field Ljagdx/IDirect3D; to.Ng

^ s implements hooks.SoftwareToolkit
* nativeId --> field J s.nativeid

^ et implements hooks.ByteArrayWrapper
* byteBuffer --> field Ljava/nio/ByteBuffer; et.g

^ aba implements hooks.IntegerNode
* value --> field I aba.t

^ on implements hooks.TransparentSprite

^ sp implements hooks.Npc
* npcDef --> field Lms; sp.Xc

^ ol implements hooks.Character

^ ms implements hooks.NpcDef
* name --> field Ljava/lang/String; ms.n
* actions --> field [Ljava/lang/String; ms.c

-------------------------
Loading classes took: 3572ms
Update took: 4201ms
Refactoring took: 6126ms
-------------------------
Powered by the RS-Hacking Framework

pyroryan

2010-10-18 20:38:49

Reflection hooks fully updated to #625

Edit:

{**
* Copyright 2010 by Benjamin J. Land (a.k.a. BenLand100)
*
* This file is part of the SMART Minimizing Autoing Resource Thing (SMART)
*
* SMART is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SMART is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with SMART. If not, see <http://www.gnu.org/licenses/>.
*}

const
ClientVersion = 625;

{Static Hooks}
hook_static_LoginIndex = 'pg.e'; //625
hook_static_MyPlayer = 'ji.w'; //625
hook_static_BaseX = 'lw.d'; //625
hook_static_BaseY = 'fb.N'; //625
hook_static_NPCIndexArray = 'uaa.w'; //625
hook_static_NPCNodes = 'bca.e'; //625
hook_static_NPCCount = 'ce.f'; //625
hook_static_GroundSettingsArray = 'qc.Q'; //625
hook_static_LoadedPlane = 'wr.b'; //625
hook_static_PlaneArray = 'jk.b'; //625
hook_static_Toolkit = 'lt.a'; //625
hook_static_MapAngle = 'i.f'; //625
hook_static_DestX = 'na.c'; //625
hook_static_DestY = 'jq.q'; //625
hook_static_MenuOptionCount = 'fw.q'; //625
hook_static_MenuX = 'de.t'; //625
hook_static_MenuY = 'eb.X'; //625
hook_static_MenuWidth = 'ja.h'; //625
hook_static_MenuHeight = 'el.K'; //625
hook_static_MenuOpen = 'kp.d'; //625
hook_static_MenuNodeList = 'jo.c'; //625
hook_static_LoopCycle = 'ou.a'; //625
hook_static_PlayerCount = 'bba.U'; //625
hook_static_PlayerIndexArray = 'lp.d'; //625
hook_static_GetPlayers = 'ph.s'; //625
hook_static_GetSkillLevels = 'vg.c'; //625
hook_static_GetSkillExperiences = 'nga.a'; //625
hook_static_GroundTiles = 'hca.j'; //625
hook_static_GetInterfaces = 'raa.g'; //625
hook_static_ValidInterfaces = 'ega.y'; //625
hook_static_GetSettings = 'ht.y'; //625
hook_static_GroundItemCache = 'uea.f'; //625
hook_static_CamPosX = 'pea.O'; //625
hook_static_CamPosY = 'pr.a'; //625

{Class Animable}
class_Animable = 'pn'; //625
hook_animable_PixelX = 'j'; //625
hook_animable_PixelY = 's'; //625
hook_animable_Plane = 'i'; //625

{Class Player}
class_Player = 'pba'; //625
hook_player_GetLevel = 'Jd'; //625
hook_player_GetName = 'Yd'; //625
hook_player_PlayerDef = 'Kd'; //625
hook_player_GetTeam = 'cd'; //625

{Class Character}
class_Character = 'ol'; //625
hook_character_GetHitDamges = 'nb'; //check?-625
hook_character_Animation = 'Wb'; //625
hook_character_Motion = 'Wc'; //625
hook_character_WalkQueueX = 'Uc'; //625
hook_character_WalkQueueY = 'Tc'; //625
hook_character_GetHeight = 'qc'; //625
hook_character_LoopCycleStatus = 'xb'; //625
hook_character_HPRatio = 'tb'; //625
hook_character_GetInteracting = 'Nb'; //625
hook_character_Orientation = 'zb'; //625

{Class NPC}
class_NPC = 'sp'; //625
hook_npc_NPCDef = 'Xc'; //625

{Class NPCDef}
class_NPCDef = 'ms'; //625
hook_npcdef_GetActions = 'c'; //625
hook_npcdef_GetName = 'n'; //625
hook_npcdef_GetLevel = 'wb'; //625
hook_npcdef_GetID = 'T'; //625

{Class NPCNode}
class_NPCNode = 'oj'; //625
hook_npcnode_GetNPC = 's'; //625

{Class GroundTile}
class_GroundTile = 'up'; //625

{Class Plane}
class_Plane = 'i'; //625

{Class RSInteractable}
class_RSInteractable = 'jea'; //625

{Class Toolkit}
class_Toolkit = 'r'; //625

{Class Viewport}
class_Viewport = 'q'; //625

{Class SDViewport}
class_SDViewport = 'mda'; //625
hook_sdviewport_xOff = 'i'; //625
hook_sdviewport_xX = 'M'; //625
hook_sdviewport_xY = 'H'; //625
hook_sdviewport_xZ = 'r'; //625
hook_sdviewport_yOff = 'h'; //625
hook_sdviewport_yX = 'm'; //625
hook_sdviewport_yY = 's'; //625
hook_sdviewport_yZ = 'z'; //625
hook_sdviewport_zOff = 'L'; //625
hook_sdviewport_zX = 'E'; //625
hook_sdviewport_zY = 'N'; //625
hook_sdviewport_zZ = 'I'; //625

{Class SDToolkit}
class_SDToolkit = 'wk'; //625
hook_sdtoolkit_xMin = 'F'; //625
hook_sdtoolkit_xMax = 'T'; //625
hook_sdtoolkit_yMin = 'X'; //625
hook_sdtoolkit_yMax = 'Q'; //625
hook_sdtoolkit_zMin = 'B'; //625
hook_sdtoolkit_zMax = 'N'; //625
hook_sdtoolkit_xScale = 'D'; //625
hook_sdtoolkit_yScale = 'A'; //625
hook_sdtoolkit_Viewport = 'z'; //625

{Class SDModel}
class_SDModel = 'me'; //625
hook_sdmodel_getIndices1 = 'Ob'; //625
hook_sdmodel_getIndices2 = 'Ib'; //625
hook_sdmodel_getIndices3 = 'wb'; //625
hook_sdmodel_getPointsX = 'ab'; //625
hook_sdmodel_getPointsY = 'Tb'; //625
hook_sdmodel_getPointsZ = 'Cb'; //625

{Class SDPlane}
class_SDPlane = 'i'; //625
hook_sdplane_TileHeights = 'k'; //625

{Class NodeList}
class_NodeList = 'or'; //625
hook_nodelist_Current = 'n'; //625
hook_nodelist_Head = 'j'; //625

{Class Node}
class_Node = 'u'; //625
hook_node_Next = 'f'; //625
hook_node_Previous = 'k'; //625
hook_node_GetID = 'b'; //625

{Class Menu}
class_Menu = 'dh'; //625
hook_menu_Action = 't'; //625
hook_menu_Option = 'w'; //625

{Class PlayerDef}
class_PlayerDef = 'hq'; //625
hook_playerdef_GetEquipment = 'm'; //625

{Class AnimableNode}
class_AnimableNode = 'im'; //625
hook_AnimableNode_GetAnimable = 'g'; //625
hook_AnimableNode_GetNext = 'd'; //625

{Class ObjectInterface}
class_ObjectInterface = 'pca'; //625
hook_interface_GetActions = 'bd';
hook_interface_GetX = 'T'; //625
hook_interface_GetY = 'Qc'; //625
hook_interface_GetWidth = 'Zc'; //625
hook_interface_GetHeight = 'A'; //625
hook_interface_GetText = 'pd'; //625
hook_interface_GetTextureID = 'w'; //625
hook_interface_GetTextColor = 'Lc'; //625
hook_interface_GetModelID = 'Z'; //625
hook_interface_GetModelZoom = 'hc'; //625
hook_interface_GetName = 'Ib'; //625
hook_interface_GetChildren = 'O'; //625
hook_interface_GetID = 'Ub'; //actually GetComponentID/GetItemID we need to change this
hook_interface_GetStack = 'Hb'; //625
hook_interfaces_GetParentID = 'Pb'; //625
hook_interfaces_IsHidden = 'dc'; //625


{Class Ground}
class_Ground = 'up'; //625
hook_ground_AnimableList = 'j'; //625
hook_ground_WallObject1 = 'c'; //625
hook_ground_WallObject2 = 'm'; //625
hook_ground_WallDecoration1 = 'g'; //625
hook_ground_WallDecoration2 = 'l'; //625
hook_ground_FloorDecoration = 'i'; //625

{Class NodeCache}
class_NodeCache_GetNodes = 'sba'; //625
hook_nodecache_GetNodes = 'l'; //625

{Class Item}
class_Item = 'gv'; //625
hook_item_GetID = 'u'; //625
hook_item_GetStack = 't'; //625

{Class NodeListCache}
class_NodeListCache = 'as'; //625
hook_nodelistcache_GetNodeList = 'q'; //625

{Class SettingArray}
class_SettingArray = 'ih'; //625
hook_settingarray_GetData = 'o'; //625

{
/////////////// HOOKS BELOW HERE ARE *OUTDATED* AS OF 14 July 2010 (Client 614) ////////////////////////
These hooks all need to be added to the updater.
}

//Some work actually. You're welcome. Updated as much as I could. (Thanks to TRiLeZ and pyroryan.)

{Class InteractiveObject}
class_InteractiveObject = 'kba'; //625
hook_interactiveobject_GetID = 'ob'; //625
hook_interactiveobject_GetModel = 'R'; //625

{Class InteractiveObject2}
class_InteractiveObject2 = 'jda'; //625
hook_interactiveobject2_GetObjectData = 'R'; //625
//hook_interactiveobject_GetID2 = 'w.H'; //not updated

{Class SecondLevelObject}
class_SecondLevelObject = 'fb'; //625
hook_secondlevelobject_GetID = 'M'; //625

//WallObjectData, WallDecorationData, FloorDecorationData updated -pyroryan
{Class WallObjectData}
class_WallObjectData = 'bp'; //625
hook_WallObjectData_GetID = 'X'; //625
hook_WallObjectData_GetModel = 'E'; //625
hook_WallObjectData_GetOrientation = 'F'; //625
hook_WallObjectData_GetID2 = 'D.H'; //not updated

{Class WallDecorationData}
class_WallDecorationData = 'bb'; //625
hook_WallDecorationData_GetID = 'jb'; //625
hook_WallDecorationData_GetModel = 'bb'; //625
hook_WallDecorationData_GetOrientation = 'T'; //625
hook_WallDecorationData_GetID2 = 'y.H'; //not updated

{Class FloorDecorationData}
class_FloorDecorationData = 'fba'; //625
hook_FloorDecorationData_GetID = 'W'; //625
hook_FloorDecorationData_GetModel = 'J'; //625
hook_FloorDecorationData_GetOrientation = 'U'; //625
hook_FloorDecorationData_GetID2 = 'm.H'; //not updated

Camaro'

2010-10-18 20:40:28

From: pyroryan
Reflection hooks fully updated to #625




You definitely have a parser and or a very sexy updater :)

Bobarkinator

2010-10-18 20:43:19

[QUOTE=Camaro';744376]Care linking me to an outdated one? If I ever get time to make one, [S]it wouldn't be an issue updating and / or make more copies to support many different updaters.


@cstrike - Yea, pretty nifty..

I wouldn't even remember what to search for. I remember BenLand posted it somewhere in the reflection forum, but that was back when it was inside the SMART forum so I don't know if all the threads were kept or not.

pyroryan

2010-10-18 20:44:30

[QUOTE=Camaro';744380]You definitely have a parser and or a very sexy updater :)[/QUOTE]

I have an updater lol. Its not sexy cause my hook patterns break.
There aren't enough released logs to parse for all of those hooks.

Camaro'

2010-10-18 20:53:40

Well, are you sure between yours, RSHackings, and TRiBots updaters wouldn't be enough?

pyroryan

2010-10-18 20:55:42

[QUOTE=Camaro';744385]Well, are you sure between yours, RSHackings, and TRiBots updaters wouldn't be enough?

Wheres the GetEquipment hooks? What about all of the object hooks :)
WallObjectData, WallDecorationData, FloorDecorationData, etc.?

Camaro'

2010-10-18 20:56:17

Why do we use so many that aren't stealable? :)

pyroryan

2010-10-18 21:00:03

[QUOTE=Camaro';744388]Why do we use so many that no one else uses? :)
Edit:
Why do we use so many that aren't stealable?

Dunno. You tell me :)

Looks like ground isn't stealable either…

ZephyrsFury

2010-10-18 21:04:28

Why would we want to rely on someone else for hooks when we can use our own updater ;)

As for the parser, Daniel wrote one and posted it in one of these threads (#61*). I only had a brief look at it but from what I can remember it didn't produce exactly the same output as we'd expect but its a start.

Bobarkinator

2010-10-18 21:15:53

From: ZephyrsFury


As for the parser, Daniel wrote one and posted it in one of these threads (#61*). I only had a brief look at it but from what I can remember it didn't produce exactly the same output as we'd expect but its a start.


Yeah! That's right! Now I remember. Did Ben make one too or did I pull that out of my butt?

Camaro'

2010-10-18 21:23:20

From: ZephyrsFury
Why would we want to rely on someone else for hooks when we can use our own updater ;)

As for the parser, Daniel wrote one and posted it in one of these threads (#61*). I only had a brief look at it but from what I can remember it didn't produce exactly the same output as we'd expect but its a start.


Freddy made a nice hacking framework to get started on grabbing hooks, would be cool if there was maybe a group project at SRL with a nice SVN. :)

pyroryan

2010-10-18 21:48:16

From: cstrike

Then write "625" on top of any 624's you see to show youve updated it to the newest version. That includes the constant at the top ;)


That was just a commenting system I used to tell myself what was updated and what was not. That way if I don't update something, I'll know what revision it was last updated in. Commenting the "//625" doesn't actually do anything.

Camaro'

2010-10-18 22:36:27

From: pyroryan
That was just a commenting system I used to tell myself what was updated and what was not. That way if I don't update something, I'll know what revision it was last updated in. Commenting the "//625" doesn't actually do anything.


I think he knows that. :)

Its better that way to keep things organized.

Dgby714

2010-10-18 22:49:56

TRiLeZ log -> Hooks.simba

program new;

const
LogName = 'MyLog.log';

var
Rev: string;
ClassN: string;

procedure RemoveArrIndex(Index: integer; var Arr: TStringArray);
var
I, P: integer;
begin
if (not (InRange(Index, Low(Arr), High(Arr)))) then
Exit;
P := High(Arr);
for I := Index + 1 to P do
Arr[I - 1] := Arr[I];
SetArrayLength(Arr, Length(Arr) - 1);
end;

function ParseLine(Line: string): string;
var
LineArr, TempArr: TStringArray;
Msg: string;
begin
Line := Trim(Line);
if (Line = '') then
Exit;
LineArr := Explode(' ', Line);

if ((LineArr[0] = 'Client') and (LineArr[1] = 'Revision:')) then
begin
Rev := ExtractFromStr(LineArr[2], Numbers);
Result := 'const'#13#10' ClientVersion = ' + Rev + ';';
Exit;
end;

if (LineArr[0] = 'Class') then
begin
if (not (GetArrayLength(LineArr) = 4)) then
Exit;
ClassN := LineArr[3];
if LineArr[1] = '?' then
Msg := 'Broken';
if (ClassN = 'Client') then
begin
ClassN := 'Static';
Result := #13#10'{Static Hooks}';
end else
Result := #13#10'{Class ' + ClassN + '}'#13#10' class_' + LowerCase(ClassN) + ' := '#39 + LineArr[1] + #39'; //' + Rev + ' ' + Msg;
end;

if (Ord(LineArr[0][1]) = 187) then
begin
if (not (GetArrayLength(LineArr) = 4)) then
Exit;
LineArr[1] := ReplaceRegExpr('get(.*)\(\)', LineArr[1], '$1', True);
if (LineArr[1] = '') then
Exit;
if (ClassN = '') then
ClassN := 'Unknown';
if (Lowercase(LineArr[2] + ' ' + LineArr[3]) = 'broken hook') then
begin
LineArr[3] := '';
Msg := 'Broken Hook';
end;
LineArr[1] := ' hook_' + Lowercase(ClassN) + '_' + LineArr[1];
if (not ((LowerCase(ClassN) = 'static') or (LineArr[3] = ''))) then
begin
TempArr := Explode('.', LineArr[3]);
RemoveArrIndex(0, TempArr);
LineArr[3] := Implode('.', TempArr);
end;
Result := LineArr[1] + ' := '#39 + LineArr[3] + #39'; //' + Rev + ' ' + Msg;
end;
end;

var
FileI, I: integer;
FileCArr: TStringArray;
FileC, Line: string;

begin
FileI := OpenFile(LogName, True);
ReadFileString(FileI, FileC, FileSize(FileI))
FileCArr := Explode(#10, FileC);
CloseFile(FileI);
FileC := '';
for I := 0 to High(FileCArr) do
begin
Line := '';
Line := ParseLine(FileCArr[I]);
if (not (Line = '')) then
FileC := FileC + Line + #13#10;
end;
FileI := CreateFile('Hooks.simba');
WriteFileString(FileI, FileC);
CloseFile(FileI);
end.

I R Bored…

Camaro'

2010-10-18 22:59:41

From: Dgby714
TRiLeZ log -> Hooks.simba

program new;

const
LogName = 'MyLog.log';

var
Rev: string;
ClassN: string;

function ParseLine(Line: string): string;
var
LineArr, TempArr: TStringArray;
Msg: string;
begin
Line := Trim(Line);
if (Line = '') then
Exit;
LineArr := Explode(' ', Line);

if ((LineArr[0] = 'Client') and (LineArr[1] = 'Revision:')) then
begin
Rev := ExtractFromStr(LineArr[2], Numbers);
Result := 'const'#13#10' ClientVersion = ' + Rev + ';';
Exit;
end;

if (LineArr[0] = 'Class') then
begin
if (not (GetArrayLength(LineArr) = 4)) then
Exit;
ClassN := LineArr[3];
if LineArr[1] = '?' then
Msg := 'Broken';
if (ClassN = 'Client') then
begin
ClassN := 'Static';
Result := #13#10'{Static Hooks}';
end else
Result := #13#10'{Class ' + ClassN + '}'#13#10' class_' + LowerCase(ClassN) + ' := '#39 + LineArr[1] + #39'; //' + Rev + ' ' + Msg;
end;

if (Ord(LineArr[0][1]) = 187) then
begin
if (not (GetArrayLength(LineArr) = 4)) then
Exit;
LineArr[1] := ReplaceRegExpr('get(.*)\(\)', LineArr[1], '$1', True);
if (LineArr[1] = '') then
Exit;
if (ClassN = '') then
ClassN := 'Unknown';
if (Lowercase(LineArr[2] + ' ' + LineArr[3]) = 'broken hook') then
begin
LineArr[3] := '';
Msg := 'Broken Hook';
end;
LineArr[1] := ' hook_' + Lowercase(ClassN) + '_' + LineArr[1];
if (not ((LowerCase(ClassN) = 'static') or (LineArr[3] = ''))) then
begin
TempArr := Explode('.', LineArr[3]);
LineArr[3] := TempArr[1]
end;
Result := LineArr[1] + ' := '#39 + LineArr[3] + #39'; //' + Rev + ' ' + Msg;
end;
end;

var
FileI, I: integer;
FileCArr: TStringArray;
FileC, Line: string;

begin
FileI := OpenFile(ScriptPath + LogName, True);
ReadFileString(FileI, FileC, FileSize(FileI))
FileCArr := Explode(#10, FileC);
CloseFile(FileI);
FileC := '';
for I := 0 to High(FileCArr) do
begin
Line := '';
Line := ParseLine(FileCArr[I]);
if (not (Line = '')) then
FileC := FileC + Line + #13#10;
end;
FileI := CreateFile(ScriptPath + 'Hooks.simba');
WriteFileString(FileI, FileC);
CloseFile(FileI);
end.

I R Bored…


Nicely done, rep + for your time :)

Dgby714

2010-10-18 23:04:38

[QUOTE=Camaro';744412]Nicely done, rep + for your time :)[/QUOTE]

Can the hooks be something like "O.lm.J" (2 dots?) If they can I need too change that script a little.

pyroryan

2010-10-18 23:05:03

[QUOTE=Camaro';744405]I think he knows that. :)

Its better that way to keep things organized.[/QUOTE]

W00t I did something right! :)

Camaro'

2010-10-18 23:31:08

From: pyroryan
W00t I did something right! :)


Yea, I think it is very useful the way you commented each hook to say what revision it was on, especially when we are kind of without one main sexy updater.


@Whatever STD Fuzz's name is :)

I think so, but I don't think Simba uses those hooks.

Dgby714

2010-10-18 23:32:56

[QUOTE=Camaro';744419]@Whatever STD Fuzz's name is :)

I think so, but I don't think Simba uses those hooks.

=/ lol

Ok Updated!

pyroryan

2010-10-18 23:37:28

[QUOTE=Camaro';744419]Yea, I think it is very useful the way you commented each hook to say what revision it was on, especially when we are kind of without one main sexy updater.[/QUOTE]

Thanks. I think Trilez has the hooks that Simba uses that I don't have. Kinda hard to have a sexy updater with all of these hooks no one else uses.

Method

2010-10-19 01:05:55

From: pyroryan
Thanks. I think Trilez has the hooks that Simba uses that I don't have. Kinda hard to have a sexy updater with all of these hooks no one else uses.


The client is there for you to refactor and verify your updater's output. Relying on the output of others without really knowing what you're hooking (or why) is a poor way to go about it.

Camaro'

2010-10-19 07:19:06

From: Method
The client is there for you to refactor and verify your updater's output. Relying on the output of others without really knowing what you're hooking (or why) is a poor way to go about it.


Yea, pyro I highly suggest you use methods refractored client to help you.

Quickmarch

2010-10-19 08:43:43

[QUOTE=Camaro';744483]Yea, pyro I highly suggest you use methods refractored client to help you.[/QUOTE]

That's pretty much useless now as jagex have changed alot of code since then.

pyroryan

2010-10-19 08:54:24

From: Method
The client is there for you to refactor and verify your updater's output. Relying on the output of others without really knowing what you're hooking (or why) is a poor way to go about it.


I agree that using a refactored client is the best way to verify hooks, but checking against others is much faster (but less reliable). I don't have the time to verify every hook via a refactored client.
Knowing how the hook works is the best way to find a reliable hook, so I would have to know what I'm hooking.

Camaro'

2010-10-19 14:39:16

From: Quickmarch
That's pretty much useless now as jagex have changed alot of code since then.


Yea, thats true. Still could be of some help I suppose.

From: pyroryan
I agree that using a refactored client is the best way to verify hooks, but checking against others is much faster (but less reliable). I don't have the time to verify every hook via a refactored client.
Knowing how the hook works is the best way to find a reliable hook, so I would have to know what I'm hooking.


Yea.

TRiLeZ

2010-10-19 19:36:17

From: Quickmarch
That's pretty much useless now as jagex have changed alot of code since then.


It's how I find patterns for my updater. Jagex hasn't changed the client too much since #578.