Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DarkBotRS :: Oldschool bot and wrapper
#1
Radiation 
DarkBotRS

The very instant that Oldschool Runescape was released I began to work on a bot out of curiosity, but it turned into a much more grandiose project pulling ideas that I had circling in my head for a very long time, from back when I was still writing scripts for preexisting bots (particularly KBot2, KBotPRO and Quirlion).

Toward the end of old RS transitioning into RSHD bot lifespans became increasingly shorter, which was infuriating -- scripts written for one bot were rarely ever ported to another, leading to new bots taking forever to gain traction. RuneScape bindings on each also all differed in names, structure, and bugs, making porting scripts much more than an hour's project. I reflected on these discrepancies and designed a universal interface to all of these different bots, but never implemented those ideas until DarkBotRS.

I have learned a good deal about how and how not to design wrappers in developing this -- especially how difficult it is to come up a wrapper that isn't horribly non-conforming to DRY Saddest In the end I believe I've managed to design a pretty overarching and generalized API, encompassing both OSRS and RS3 in the same bindings and making differences between bot backend wrapper implementations almost disappear. I also pulled in API generation from my DarkMod Minecraft project from the alpha days (which used concepts from injection RS bots but generated the API alongside inserting getter methods and callbacks to an event bus).

Sadly I've lost interest in maintaining it and it has fallen far behind the state current OSRS cheating scene (which changes so very tumultuously, so rapidly Worry ). The updater never had any real effort put into it, so it only has a few identiifers that probably now fail to match anything. (Sorry vInsert and OSBot, I was stealing your hooks Winkv ). I'm just leaving the project here for anyone interested.

Summary of what DarkBotRS does:
  • Provides a script API and general API for RS bindings
  • Allows the implementation of the API for RS bindings as a wrapper for bots, which then can be loaded as a library for a script
  • Scripts can work anywhere that the API is implemented
  • Provides an implementation for itself as a standalone bot
  • Has as part of its API full world walking (with uncompleted web walking)
  • Dynamically generates an API (in jar form) for RS bindings from a hook definition file which means stealing hooks is easy lols

DarkBotRS: https://bitbucket.org/DarkStorm_/darkbotrs
OSBot Impl (Outdated): https://bitbucket.org/DarkStorm_/darkbotrs-osbotimpl
Aurora Impl (Outdated): https://bitbucket.org/DarkStorm_/darkbotrs-auroraimpl
Some scripts I wrote: https://bitbucket.org/DarkStorm_/darkbotrs-scripts

I released both DarkFighter and DarkAgility on OSBot (with great success) and I was working on finishing the Aurora implementation, but the scripts were already almost flawless there with no changes.

Screenshots:

Early development build of the standalone bot:

[Image: lylenXX.png]


DarkFighter (identical script, no changes) running in both the standalone and in Aurora (I ported my paint interface system to my script API, so this is clickable):

[Image: hj85Fs4.png][Image: S2O9NSN.png]


Interface Explorer (identical script, no changes) running in both OSBot and Aurora:

[Image: XQMF5sH.png][Image: vN5Icw2.png]


Early version of the global walking collision data recorder (map can be clicked and dragged around to generate and traverse a path):

[Image: EhGu3xI.png]
[Image: Av19eBM.png]
Reply
#2
Very cool project! How long did it take for you to create a beta?
Reply
#3
(01-06-2015, 02:44 AM)konloch Wrote:  Very cool project! How long did it take for you to create a beta?

I had a loader and injector within a week of the release and it took me a few more days to reverse the modular multiplicative inverse multipliers that were littered everywhere. A few more weeks of development and I had a working script API and RS API with a few things hooked. I didn't take the time to write a proper updater, so I just built the updater and the few identifiers I had into the bot itself. Once I had my bot kinda working I turned to other bots and implemented my API there for testing (which required about a day or two per bot). After that I just wrote some scripts, screwed around with walking, and eventually lost interest Saddest
Reply
#4
(01-06-2015, 07:08 AM)DarkStorm Wrote:  
(01-06-2015, 02:44 AM)konloch Wrote:  Very cool project! How long did it take for you to create a beta?

I had a loader and injector within a week of the release and it took me a few more days to reverse the modular multiplicative inverse multipliers that were littered everywhere. A few more weeks of development and I had a working script API and RS API with a few things hooked. I didn't take the time to write a proper updater, so I just built the updater and the few identifiers I had into the bot itself. Once I had my bot kinda working I turned to other bots and implemented my API there for testing (which required about a day or two per bot). After that I just wrote some scripts, screwed around with walking, and eventually lost interest Saddest

Ah fair enough, good job on this!
Reply
#5
Hopefully someone can pick this off and continue it, Or maybe you'reself sounds like its worth continueing.
Reply
#6
Years later this is still applicable Smile
Reply
 


Forum Jump:


Users browsing this thread: 1 Guest(s)

About The Bytecode Club

We're a community focused on Reverse Engineering, we try to target Java/Android but we also include other langauges/platforms. We pride ourselves in supporting and free and open sourced applications.

Website