Results 1 to 16 of 16

Thread: [2007] Using OSBuddy's quickhop code

  1. #1
    Join Date
    Nov 2014
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default [2007] Using OSBuddy's quickhop code

    If anyone doesn't know what OSBuddy's quick hop feature is: it lets you change worlds instantly in OSRS without having to log out, exactly like the "Join friend" option in Runescape3.

    OSBuddy does this by calling code in the client responsible for switching you to a bot world.
    (Information: There are two "bot worlds". If the game suspects you of botting, it will transfer you to one of these worlds. This occurs without you logging out and the whole process takes ~one second.).

    The gist of this is that there is code in the OSRS client that can allow you to switch to any world without logging out of the game. Any hacked client could call this, you don't have to be OSBuddy. The problem is that I haven't been able to locate this code in the gamepack. I haven't gotten any hints from OSBuddy either, because OSBuddy's gamepack is encrypted in a custom format ending in .fpack.

    Any ideas on how I can locate the world switching code in the old school RS gamepack?

  2. #2
    Join Date
    Mar 2013
    Posts
    1,010
    Mentioned
    35 Post(s)
    Quoted
    620 Post(s)

    Default

    #slack4admin2016
    <slacky> I will build a wall
    <slacky> I will ban reflection and OGL hooking until we know what the hell is going on

  3. #3
    Join Date
    Dec 2006
    Posts
    399
    Mentioned
    0 Post(s)
    Quoted
    3 Post(s)

    Default

    If you don't understand the client enough to even find the code, you should not even bother trying to use it, because if you do just one thing wrong, you'll probably just be banned for using a hacked client.
    Hax0r


  4. #4
    Join Date
    Mar 2012
    Posts
    201
    Mentioned
    8 Post(s)
    Quoted
    74 Post(s)

    Default

    You won't get banned for using a hacked client

    Quite easily actually to hop worlds.

    You need to construct a new in-game world object and set the domain, worldID, and mask. Then using that you invoke the world hop method, and finally set the gamestate to 45 to refresh the client

  5. #5
    Join Date
    Nov 2014
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    Hmm I'm not following you simply because I don't understand the client too well. My "bot" is completely at the packet level so up until know I've been able to avoid having to find hooks.

    So you're saying that creating a world object, calling hop, setting the gamestate, this allows you to switch worlds without logging out from the game like OSBuddy's quick hop?

    EDIT: I can't find the WorldObject class that you're talking about. The WorldObject in the OSRReflection client seems to be referencing an object in the world you can interact with (like a bank booth) instead of a World you can log into.
    Last edited by derek22; 11-18-2014 at 07:00 PM.

  6. #6
    Join Date
    Dec 2011
    Location
    United States
    Posts
    960
    Mentioned
    21 Post(s)
    Quoted
    504 Post(s)

    Default

    Quote Originally Posted by derek22 View Post
    Hmm I'm not following you simply because I don't understand the client too well. My "bot" is completely at the packet level so up until know I've been able to avoid having to find hooks.

    So you're saying that creating a world object, calling hop, setting the gamestate, this allows you to switch worlds without logging out from the game like OSBuddy's quick hop?

    EDIT: I can't find the WorldObject class that you're talking about. The WorldObject in the OSRReflection client seems to be referencing an object in the world you can interact with (like a bank booth) instead of a World you can log into.
    Do you have a working standalone packet bot?

  7. #7
    Join Date
    Nov 2014
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    It's not standalone: I can send out one packet at a time or send a list of packets in a text file.

    It prints out the unencrypted packet opcodes and the packet parameters before they're sent out to the server. I can also inject my own opcode/parameters into the same point in the code. It's a very ghetto bot though: no GUI. It rides on top of vInsert which is an open source injection bot.

    @Cheddy I'm having trouble finding which call represents the world object and which class has the world hop method. Any hints
    Last edited by derek22; 11-20-2014 at 01:13 AM.

  8. #8
    Join Date
    Nov 2014
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    @Cheddy What classes hold the world object, the world object array, and the hop method? I'm having difficulty finding them!

  9. #9
    Join Date
    Nov 2014
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    @Cheddy I'm having trouble finding the class that represents the World object and the class that has the hop world method. Any hints?


    And yeah, I have a rudimentary packet bot but it essentially only sends packets one at a time (I have to manually type them into System.in). If you want any more info on it, let me know!

  10. #10
    Join Date
    Mar 2012
    Posts
    201
    Mentioned
    8 Post(s)
    Quoted
    74 Post(s)

    Default

    I wouldn't suggest using a packet bot, those things are a thing of the past (highly detectable)
    Code:
    World = s
    > getActivity = s.d
    > getDomain = s.i
    > getIndex = s.m (-781463647)
    > getLocation = s.q (122560199)
    > getMask = s.x (-485706191)
    > getPopulation = s.k (-1825444877)
    > getWorldID = s.n (-1049303969)
    @Summary(7/7 Fields : 0/0 Methods)
    
    % changeGameState(II)V = i.e (-1398873718)
    % setCurrentWorld(Ls;I)V = fp.o (2079200391)
    > getGameState = client.c (346046433)
    Obviously when setting the mask and id of the world object you make you will have to mod inverse the multi first and then multiply your value by it to set the field. The rest is straight forward I beleive

  11. #11
    Join Date
    Nov 2014
    Posts
    7
    Mentioned
    0 Post(s)
    Quoted
    2 Post(s)

    Default

    @Cheddy

    Hmm right now when I try it I end up on a random world (something like world 5000-30000) which obviously is not a real world and does not let me log in.

    What do you mean by "mod inverse the mult"? If I have x.mod-1(y), and the multi = x, then what is y?
    EDIT: It looks like I might do some kind of bitflip on the multi and then multiply it with the actual value?
    Last edited by derek22; 11-20-2014 at 07:27 PM.

  12. #12
    Join Date
    Mar 2012
    Location
    127.0.0.1
    Posts
    3,383
    Mentioned
    95 Post(s)
    Quoted
    717 Post(s)

    Default

    Quote Originally Posted by derek22 View Post
    @Cheddy

    Hmm right now when I try it I end up on a random world (something like world 5000-30000) which obviously is not a real world and does not let me log in.

    What do you mean by "mod inverse the mult"? If I have x.mod-1(y), and the multi = x, then what is y?
    EDIT: It looks like I might do some kind of bitflip on the multi and then multiply it with the actual value?
    http://en.wikipedia.org/wiki/Modular...cative_inverse

    Does that help at all?

  13. #13
    Join Date
    Mar 2012
    Posts
    201
    Mentioned
    8 Post(s)
    Quoted
    74 Post(s)

    Default

    Here is the code I use to get the mod inverse of a given multi, "multi". =)
    Code:
    public static long modInverse(long multi) { 
        return new BigInteger(String.valueOf(multi)).modInverse(new BigInteger(String.valueOf(4294967296L))).longValue();
    }

  14. #14
    Join Date
    Jun 2013
    Posts
    15
    Mentioned
    1 Post(s)
    Quoted
    12 Post(s)

    Default

    Dear members,

    I posted this question in another topic also, I'm sorry if it is against the rules (bumping a topic and post a question twice) but I found this topic and thought it was a better place to ask my question:

    I'm trying to load all the worlds to my clients (invoking get all worlds method) and than the worldlist page will open. Do you guys know how I can close that screen so I can load all the worlds but don't have to show the list itself.

    Also when logged in, the worldlist method doesn't work anymore (obviously).

    The thing I want to do:
    1. Load the worldlist so I can get all the worlds.
    2. Refresh the worldlist so I can update the worlds data.


    Thanks in advance!

  15. #15
    Join Date
    Nov 2016
    Posts
    3
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    thank you for ask. i will find answaer

  16. #16
    Join Date
    Aug 2016
    Posts
    20
    Mentioned
    1 Post(s)
    Quoted
    6 Post(s)

    Default

    Quote Originally Posted by evilid View Post
    Dear members,

    I posted this question in another topic also, I'm sorry if it is against the rules (bumping a topic and post a question twice) but I found this topic and thought it was a better place to ask my question:

    I'm trying to load all the worlds to my clients (invoking get all worlds method) and than the worldlist page will open. Do you guys know how I can close that screen so I can load all the worlds but don't have to show the list itself.

    Also when logged in, the worldlist method doesn't work anymore (obviously).

    The thing I want to do:
    1. Load the worldlist so I can get all the worlds.
    2. Refresh the worldlist so I can update the worlds data.


    Thanks in advance!
    Just load from the website?

    http://hastebin.com/jumefuweju.java
    http://hastebin.com/yebovumaqi.java

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •