Skip to content

A simple (and outdated) Old-School RuneScape decompiler/deobfuscator. Performs field and method analysis which uses ASM and bytecode patterns for identification. Identified fields could be used for creating bot clients or QoL clients. For educational use only.

Soxs/OSRSUpdater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

OSRSUpdater

A hook updater for OSRS which uses bytecode patterns and ASM for identification.
Probably no longer works, but could be a good resource for someone trying to learn.
Credits: Kevboi

Example Log:

(which is quite old, it now has deobfuscation etc)

Starting OSRS Updater.
Finished loading 230 classes in 671ms from: gamepack#103.jar
Stored 1113 multipliers

[- Node identified as: gj extends Object -](3/3)
	[> 'getNext()' identified as 'gj.eo' -] (Lgj;)
	[> 'getPrevious()' identified as 'gj.ee' -] (Lgj;)
	[> 'getHash()' identified as 'gj.ec' -] (J)

[- CacheableNode identified as: gt extends gj -](2/2)
	[> 'getNext()' identified as 'gt.ci' -] (Lgt;)
	[> 'getPrevious()' identified as 'gt.cp' -] (Lgt;)

[- HashTable identified as: gy extends Object -](1/1)
	[> 'getCache()' identified as 'gy.p' -] ([Lgj;)

[- LinkedList identified as: gl extends Object -](2/2)
	[> 'getHead()' identified as 'gl.d' -] (Lgj;)
	[> 'getCurrent()' identified as 'gl.p' -] (Lgj;)

[- Queue identified as: gw extends Object -](1/1)
	[> 'getCacheableNode()' identified as 'gw.d' -] (Lgt;)

[- Cache identified as: gu extends Object -](4/5)
	[> 'getHashTable()' identified as 'gu.l' -] (Lgy;)
	[> 'getEmptyCacheableNode()' identified as 'gu.d' -] (Lgt;)
	[> 'getRemaining()' identified as 'gu.p' -] (I)	[ * 1 ]
	[> 'getSize()' identified as 'gu.v' -] (I)	[ * 1 ]

[- Renderable identified as: ch extends gt -](1/1)
	[> 'getModelHeight()' identified as 'ch.cf' -] (I)	[ * 1812947537 ]

[- CollisionData identified as: dl extends Object -](1/3)
	[> 'getFlags()' identified as 'dl.aj' -] ([[I)

[- Actor identified as: aj extends ch -](9/19)
	[> 'isAnimating()' identified as 'aj.al' -] (Z)
	[> 'getSpokenText()' identified as 'aj.ac' -] (LString;)
	[> 'getGridX()' identified as 'aj.ax' -] (I)	[ * -2013728192 ]
	[> 'getGridY()' identified as 'aj.bx' -] (I)	[ * 2137051008 ]
	[> 'getHitsplatsDamage()' identified as 'aj.ay' -] ([I)
	[> 'getHitsplatsTypes()' identified as 'aj.ag' -] ([I)
	[> 'getMaxHealth' identified as 'aj.bi' -] (I)	[ * -1324479051 ]
	[> 'getGameCycle()' identified as 'client.r' -] (I)	[ * -1040073859 ]
	[> 'getLoopCycle()' identified as 'aj.bs' -] (I)	[ * -1158366777 ]

[- Projectile identified as: u extends ch -](3/3)
	[> 'getProjectileComposite()' identified as 'u.s' -] (Laf;)
	[> 'isMoving()' identified as 'u.m' -] (Z)
	[> 'getDuration()' identified as 'u.g' -] (I)	[ * -46564401 ]

[- ProjectileComposite identified as: af extends gt -](1/1)
	[> 'isMoving()' identified as 'af.m' -] (Z)

[- Item identified as: ak extends ch -](2/2)
	[> 'getId()' identified as 'ak.d' -] (I)	[ * -848428919 ]
	[> 'getStackSize()' identified as 'ak.p' -] (I)	[ * 1308808435 ]

[- ItemComposite identified as: at extends gt -](5/5)
	[> 'getStackIds()' identified as 'at.f' -] (I)	[ * 1303294175 ]
	[> 'getName()' identified as 'at.k' -] (LString;)
	[> 'isMember()' identified as 'at.ae' -] (Z)
	[> 'getActions()' identified as 'at.ak' -] ([LString;)
	[> 'getGroundActions()' identified as 'at.ao' -] ([LString;)

[- Model identified as: dn extends ch -](6/6)
	[> 'getVerticesX()' identified as 'dn.w' -] ([I)
	[> 'getVerticesY()' identified as 'dn.u' -] ([I)
	[> 'getVerticesZ()' identified as 'dn.a' -] ([I)
	[> 'getIndicesX()' identified as 'dn.b' -] ([I)
	[> 'getIndicesY()' identified as 'dn.o' -] ([I)
	[> 'getIndicesZ()' identified as 'dn.m' -] ([I)

[- GameObject identified as: ct extends Object -](2/2)
	[> 'getRenderable()' identified as 'ct.y' -] (Lch;)
	[> 'getId()' identified as 'ct.x' -] (I)	[ * 714123667 ]

[- GameObjectComposite identified as: ac extends gt -](4/4)
	[> 'getName()' identified as 'ac.m' -] (LString;)
	[> 'getActions()' identified as 'ac.ak' -] ([LString;)
	[> 'getWidth()' identified as 'ac.z' -] (I)	[ * -1976023901 ]
	[> 'getHeight()' identified as 'ac.t' -] (I)	[ * 1162660975 ]

[- Player identified as: v extends aj -](7/7)
	[> 'getName()' identified as 'v.w' -] ([LString;)
	[> 'getModel()' identified as 'v.n' -] (Ldn;)
	[> 'getPlayerComposite()' identified as 'v.p' -] (Lfz;)
	[> 'isVisible()' identified as 'v.i' -] (Z)
	[> 'getCombatLevel()' identified as 'v.u' -] (I)	[ * 1614853309 ]
	[> 'getSkullIcon()' identified as 'v.o' -] (I)	[ * 959962901 ]
	[> 'getPrayerIcon()' identified as 'v.v' -] (I)	[ * 1744423653 ]

[- PlayerComposite identified as: fz extends Object -](2/2)
	[> 'getEquipment()' identified as 'fz.p' -] ([I)
	[> 'isFemale()' identified as 'fz.v' -] (Z)

[- Npc identified as: aw extends aj -](1/1)
	[> 'getComposite()' identified as 'aw.d' -] (Lar;)

[- NpcComposite identified as: ar extends gt -](4/4)
	[> 'getActions()' identified as 'ar.q' -] ([LString;)
	[> 'getName()' identified as 'ar.w' -] (LString;)
	[> 'getId()' identified as 'ar.y' -] (I)	[ * -2095462435 ]
	[> 'getModelIds()' identified as 'ar.al' -] ([I)

[- Widget identified as: fg extends gj -](21/26)
	[> 'getIndex()' identified as 'fg.ao' -] (I)	[ * 1645211541 ]
	[> 'getName()' identified as 'fg.cl' -] (LString;)
	[> 'getItemStackSize()' identified as 'fg.eg' -] (I)	[ * 1393082105 ]
	[> 'getItemId()' identified as 'fg.ey' -] (I)	[ * 813479615 ]
	[> 'getScrollX()' identified as 'fg.ad' -] (I)	[ * -352661099 ]
	[> 'getScrollY()' identified as 'fg.aw' -] (I)	[ * -1602694527 ]
	[> 'getSlotStackSizes()' identified as 'fg.dr' -] ([I)
	[> 'isHidden()' identified as 'fg.az' -] (Z)
	[> 'getId()' identified as 'fg.x' -] (I)	[ * -1536575275 ]
	[> 'getActions()' identified as 'fg.ch' -] ([LString;)
	[> 'getParentId()' identified as 'fg.ba' -] (I)	[ * 686060225 ]
	[> 'getBorderThickness()' identified as 'fg.an' -] (I)	[ * -357503007 ]
	[> 'getTextureId()' identified as 'fg.au' -] (I)	[ * -131734905 ]
	[> 'getType()' identified as 'fg.n' -] (I)	[ * -1305917269 ]
	[> 'getText()' identified as 'fg.cl' -] (LString;)
	[> 'getHeight()' identified as 'fg.f' -] (I)	[ * 507570867 ]
	[> 'getWidth()' identified as 'fg.g' -] (I)	[ * 124195285 ]
	[> 'getSlotContentIds()' identified as 'fg.da' -] ([I)
	[> 'getChildren()' identified as 'fg.ez' -] ([Lfg;)
	[> 'getParent()' identified as 'fg.cc' -] (Lfg;)
	[> 'getOpcodes()' identified as 'fg.dg' -] ([[I)

[- WidgetNode identified as: d extends gj -](1/1)
	[> 'getId()' identified as 'd.l' -] (I)	[ * 1518911111 ]

[- Region identified as: cc extends Object -](3/3)
	[> 'getGameObjects()' identified as 'cc.e' -] ([Lct;)
	[> 'getGameObjectCache()' identified as 'cc.al' -] ([Lct;)
	[> 'getTiles()' identified as 'cc.w' -] ([[[Lcy;)

[- WallObject identified as: cq extends Object -](3/3)
	[> 'getRenderable()' identified as 'cq.w' -] (Lch;)
	[> 'getRenderable2()' identified as 'cq.u' -] (Lch;)
	[> 'getId()' identified as 'cq.a' -] (I)	[ * 785572969 ]

[- FloorObject identified as: cb extends Object -](2/2)
	[> 'getRenderable()' identified as 'cb.l' -] (Lch;)
	[> 'getId()' identified as 'cb.y' -] (I)	[ * 827739875 ]

[- Tile identified as: cy extends gj -](6/6)
	[> 'getGameObjects()' identified as 'cy.m' -] ([Lct;)
	[> 'getWallDecoration()' identified as 'cy.u' -] (Lcq;)
	[> 'getFloorDecoration()' identified as 'cy.e' -] (Lcb;)
	[> 'getPlane()' identified as 'cy.d' -] (I)	[ * -1839515449 ]
	[> 'getX()' identified as 'cy.p' -] (I)	[ * 1489288579 ]
	[> 'getY()' identified as 'cy.v' -] (I)	[ * -648052847 ]

[- Client identified as: client extends ea -](26/40)
	[> 'getWidgetNode()' identified as 'client.io' -] (Lgy;)
	[> 'getNpcs()' identified as 'client.cv' -] ([Law;)
	[> 'getPlayers()' identified as 'client.gi' -] ([Lv;)
	[> 'getGroundItems()' identified as 'client.hd' -] ([[[Lgl;)
	[> 'getProjectiles()' identified as 'client.hn' -] (Lgl;)
	[> 'getCollisionMaps()' identified as 'client.w' -] ([Ldl;)
	[> 'isItemSelected()' identified as 'client.o' -] (Z)
	[> 'getCompassAngle()' identified as 'client.ei' -] (I)	[ * -1718342721 ]
	[> 'getRegion()' identified as 'l.dj' -] (Lcc;)
	[> 'getBaseX()' identified as 'dy.a' -] ([I)
	[> 'getTileHeights()' identified as 'w.d' -] ([[[I)
	[> 'getPlane()' identified as 'l.gb' -] (I)	[ * -747958745 ]
	[> 'getSettings()' identified as 'client.m' -] ([I)
	[> 'getWidgetPositionsY()' identified as 'client.lo' -] ([I)
	[> 'getWidgetPositionsX()' identified as 'client.lt' -] ([I)
	[> 'getSelectedItemName()' identified as 'client.it' -] (LString;)
	[> 'getSkillLevelArray()' identified as 'client.lt' -] ([I)
	[> 'getRealSkillLevelArray()' identified as 'client.hb' -] ([I)
	[> 'getSkillExpArray()' identified as 'client.hz' -] ([I)
	[> 'getMenuOptionCount()' identified as 'client.hq' -] (I)	[ * 1768430155 ]
	[> 'getCameraPitch()' identified as 'ek.fo' -] (I)	[ * 1162853107 ]
	[> 'getCameraYaw()' identified as 'eh.fs' -] (I)	[ * -210812059 ]
	[> 'getTileBytes()' identified as 'w.p' -] ([[[
	[> 'getPlayerSettings()' identified as 'fy.v' -] ([I)
	[> 'getLocalPlayer()' identified as 'el.hw' -] (Lv;)
	[> 'getWidgets()' identified as 'fg.d' -] ([[Lfg;)
	[> Method 'getItemComposite()' identified as 'z.d' -] ((IB)Lat;)
	[> Method 'getObjectComposite()' identified as 'r.p' -] ((II)Lac;)

[- Mouse identified as: eu extends Object -](0/0)

[- Keyboard identified as: ep extends Object -](0/0)

Identified 123/155 fields
Identified 29/29 classes
Also, identified 2 methods
Finished analyzing in 2568 ms

About

A simple (and outdated) Old-School RuneScape decompiler/deobfuscator. Performs field and method analysis which uses ASM and bytecode patterns for identification. Identified fields could be used for creating bot clients or QoL clients. For educational use only.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages