SRL Archive - Discussions & Debates

256 color mode bot? [help]


m3gaman3g3nd

2013-01-01 23:04:13

so i run my lap top in standard 8-bit 256 color mode… i use zero hardware excelleration and i play runescape…
runescape runs fine… rgb colorspace is good… its all operational… my question is how would i go about botting? both simba and scar have absolutely zero 8-bit app support.
this is a discussion… discuss away

also is there any tips how i can go about this? i know open gl and how it works but im not running rs in open gl mode im running it in obviously safemode…
will some mega genious point me to a sweet method on similarities to open gl hooking?? kind o like it but to be honest i dont even know what it is called…

lets see well i deinately want to hook my agp… i want to see raw code like gl and dx hooking… well if i toggle the hardware exceleration swich in my troubleshoot options all the way down then what is rendering my graphichs?

Brandon

2013-01-01 23:22:38

Enlighten me as to how in the world you run runescape on 8 bits-per-pixel.. 256 colours..

I just tried this (I saved this bitmap with Simba, it does support 8-bpp bitmaps)..

Just so you know, my wallpaper is light blue!


You can't see anything!! 16-bit is better by FAR!! But still, why would you want to use these modes?

24 or 32 bit I definitely understand but I don't think 8 bit is viable. 16 is ok I guess.


You'd be wasting time attempting OpenGL and DirectX anything in 8-bit colour schemes.

m3gaman3g3nd

2013-01-01 23:47:44

Brandon i am running windows xp so what i did was went to "list all modes" in the adapter options, selected 256 color… by default windows automatically adjusts to this setting by changing the icons and stuff… im not sure but if you want to test what i mean by rgb color space a good test would be to download flashplayer 10 and run a video in fullscreen mode… it should be perfect in 256 colors…

rune scape runs normal ill up load screens
-http://oi45.tinypic.com/zjjw8y.jpg

I honestly feel that 8-bit is less to work with when it comes to it… uhm also i can dim my display far darker with fewer colors and see clearly.

more reasons would be that i cannot use as much power and also i simply prefer
using 256 color mode … html pages are fine… flash player 10 still works for youtube



****************
okay here what i had to do was take the screenshot in my usual 256 color mode then after, swich to 16-mode and then paste it in mspaint.
theres a problem when pasteing 8-bit whilst still in 8-bit. i gues it hast to do with windows xp not really being an 8 bit os imns.

heres how runescape looks on a 256 color color pallate

btw yeah simba cant take 8-bit screenshots and i probably is the same reason why ms paint cant load 8-bit shots taken… strange if you ask me

Gu3st...

2013-01-01 23:50:11

Doubt any SRL versions would work with 8-bit mode :p
You'd have to make one yourself, or edit an old SRL version

Brandon

2013-01-01 23:59:37

From: m3gaman3g3nd
Brandon i am running windows xp so what i did was went to "list all modes" in the adapter options, selected 256 color… by default windows automatically adjusts to this setting by changing the icons and stuff… im not sure but if you want to test what i mean by rgb color space a good test would be to download flashplayer 10 and run a video in fullscreen mode… it should be perfect in 256 colors…

rune scape runs normal ill up load screens
-http://oi45.tinypic.com/zjjw8y.jpg

I honestly feel that 8-bit is less to work with when it comes to it… uhm also i can dim my display far darker with fewer colors and see clearly.

more reasons would be that i cannot use as much power and also i simply prefer
using 256 color mode … html pages are fine… flash player 10 still works for youtube



I also did that list all modes. Your image looks fairly similar to mine :S

The amount of pixels in an 8-bit bitmap is far too low to do anything.

Look at the image you sent me :S Literally pixelated..

Also, it's not "less" work per say.. Sometimes they're compressed using RLE-4 or RLE-8. If it uses BI_RGB then it's fine I guess..

Bitmaps at 8-bits per pixel is 1 pixel per byte. Reading will be easier but it's not less work on the CPU or graphics card at all because it still has to go through the same amount of iterations as a 24 or 32 bit bitmap. 24-bit will require padding for the 4-byte boundaries.. 32 will not.

All the bitmaps are still 54 bytes from the top to the pixel offset. Only difference is that you won't have to worry about padding. This is also true for 32-bit bitmaps. It is roughly the same speed as reading a 32-bit bitmap.

Also all of them are stored upside down and all will require flipping still OR reading bottom-up..

The difference in reading is around about 2-3 millisecond tbh.

Order of easiest to read & fastest to read..

8 & 32 tied.
24
16.

Also, my mistake. It seems Simba will save bitmaps in 24-bpp no matter what; not 8.

m3gaman3g3nd

2013-01-02 00:33:59

well in 256 color mode windows is definately using RLE-8 or BI_RGB mostlikely BI_rgb… but im still content with this 8-bit "hack" not so much a hack.. but nonetheless…
"blended" colors. I set my hardware excelleration to none… im using jre6… the bitmap i took was save in 256 color… im sure theres an explination for why its be displayed "pixelated" i agree that bitmap is *shit* but if if truely did work how i am saying its perfectly rendered and all the colors are proportioned…
between my rle-8 compression vs yours… rle-16, 32? is there even such a thing? im not sure but there is definately an obdtruction from properly viewing that screenshot.

yeah but i know the flash player runs in 256 color mode [flash player 10] and should
be similar to the way runescape is "blended" i should not look like crap, what should be seeing is if almost there are bigger pixels



****************
okay here what i had to do was take the screenshot in my usual 256 color mode then after, swich to 16-mode and then paste it in mspaint.
theres a problem when pasteing 8-bit whilst still in 8-bit. i gues it hast to do with windows xp not really being an 8 bit os imns.

heres how runescape looks on a 256 color color pallate

btw yeah simba cant take 8-bit screenshots and i probably is the same reason why ms paint cant load 8-bit shots taken… strange if you ask me

mr. pali

2013-01-02 02:06:53

is this the future of color botting?

Hazzah

2013-01-02 02:23:24

I must say, that looks horrible. Not sure how anyone could get used to that color/pixelation.

m3gaman3g3nd

2013-01-02 19:56:13

,so simba cant choose colors in 256 color mode, its very glitchy. SCAR on the other hand can…
no worries though because simba still works in 256 color mode but im just going to have to borrow a color picker from amother app…

other than this though, this is not what im looking for… 100% color…

im still searching for a way to read the data sent to my graphics card only to be renderd by my cpu… from this data i can study and extract information based on the display… color is great but mixing the two would be even grater… uhm yeah and uh dude like seriously uh yeah, haha, uhm man, like uh but im doing this all in 256 color mode… nonetheless runescape does have less colors to bot with so just run runescape in software or safe mode. safe mode is the one im currently using since i use zero hardware exelleration..

for this there is probably a string identifier to identify what is drawn on the screen… yup, well first of course i would need a agp interceptor to intercept and read all the graphical and gpu data set to me. After redirect traffic back to the origin, and then decipher the code *ie code identifier… models, screen locations etc…

its brilliant really.

Brandon

2013-01-02 20:06:10

:S Sounds like you're speaking of:

https://github.com/Brandon-T/GLHook

and

https://github.com/Brandon-T/SRL-GLHook


Other than that, there is no other way to hook data from the graphics card other than a DirectX/GDI hook.


I don't think injection/reflection hooks the graphics card data.. Also, if you do attempt to develop something similar to that in the links, well.. You're going to need some knowledge in mathematics, various algorithms and pattern finding on top of the API you choose to use. I haven't seen anyone attempt to develop or use this so you might have a hard time getting started since the code has no comments really.. It's written in C++; thankfully, I removed the assembly since the very start. It should be fairly easy to get the hang of. Most, if not all of it is written already. I think tribot is the bot you're referring to as it already does some of that I think.

Goodluck on your endeavors. Still, I don't see the point of 256 colour-mode botting :l

The Official Thread for GLHook is: http://villavu.com/forum/showthread.php?t=88242

m3gaman3g3nd

2013-01-02 22:27:59

i enjoy your support brandon, i also enjoy your ogl hooking technique… i have personally attempted to test it but failed after a couple trys (i put the dll in the runesape live folder where all the bin files are. i set my graphics to open gl,, (not sure if that was what i was supposed to do)) i tried the pascal script method and not lape yet but thats because im an a different machine.

anywho ive been thinking that whatever goes to your agp or graphics card is only graphical data and that it. the rest is up to the main cpu to give functionality towards the graphical arrays… this will lead to cpu hooking…

cpu hooking sounds far more fun as it will process all the information to where things are drawn and other functions of anything that may be processed by it.
it will process where things will be drawn and thats all you need to know.

it sounds more complicated though because it seems thats some information will bestore in memory instead making somethings out of reach. in jagex bin files to their servers, encrypted game information is sent. hopfully theres a way to intecept all cpu information for interpretating.

trees in runescape are everywhere, so the cpu needs to send data to the gpu(graphics processor?) of which where to be drawn… meh ill keep reading up on articles trying to figure out meathods to intecepting information let alone sorting it out one by one…

Brandon

2013-01-03 00:50:31

From: m3gaman3g3nd
i enjoy your support brandon, i also enjoy your ogl hooking technique… i have personally attempted to test it but failed after a couple trys (i put the dll in the runesape live folder where all the bin files are. i set my graphics to open gl,, (not sure if that was what i was supposed to do)) i tried the pascal script method and not lape yet but thats because im an a different machine.

anywho ive been thinking that whatever goes to your agp or graphics card is only graphical data and that it. the rest is up to the main cpu to give functionality towards the graphical arrays… this will lead to cpu hooking…

cpu hooking sounds far more fun as it will process all the information to where things are drawn and other functions of anything that may be processed by it.
it will process where things will be drawn and thats all you need to know.

it sounds more complicated though because it seems thats some information will bestore in memory instead making somethings out of reach. in jagex bin files to their servers, encrypted game information is sent. hopfully theres a way to intecept all cpu information for interpretating.

trees in runescape are everywhere, so the cpu needs to send data to the gpu(graphics processor?) of which where to be drawn… meh ill keep reading up on articles trying to figure out meathods to intecepting information let alone sorting it out one by one…



There is no such thing as CPU hooking :S Well.. Not that I know of.

Here is what happens.. Hopefully I can explain it easily:

File is sent from Server to client containing VertexShader information.
File is sent from Server to client containing FragmentShader information.
Client initializes itself and starts receiving data.
Shader is fully downloaded so the client then creates its interface.
GDI is invoked on Windows and a DC (Device context is created.. Aka a Canvas for drawing on)
The DC is prepared for the type of rendering that will be done.
Client COMPILES the shaders at runtime as you cannot pre-compile these.
Any and all errors are thrown if there are any that is.
A backbuffer aka vertex buffer is created (VBO's).
A front buffer aka vertex buffer is created (VBO's).
Another "Set" of buffers are created for a total of 8 running at once.
More are created but are deleted right after being used.
Client begins drawing and shading in models and textures on BackBuffer.
Client "Swaps" buffers. (Front and Back switch.. Now the backbuffer is displaying on screen).
Client Draws on the new backbuffer (the old front one).
Client "Swaps" buffers. (Back and Front switch.. Now the Front is back to the screen).
Repeats the last 4 steps. Requests data only when needed for new scenarios/areas/models.

Server sends what the client starts requesting from here on out. Only way to get the data is to inject into the client or "packet sniff". Nothing is done on the CPU unless you're in safe-mode.

Only things that come from the CPU is the vertices and colours which it receives from the server and sends to the graphics card directly. The interception part comes in because you sit in the middle of the client and the API (DirectX/OpenGL/GDI).

Sitting in the middle means everything goes through you first before it gets to the graphics drivers/screen.

Other information is just stored in the client itself or in downloaded files. Basically, what you see is what you get. What you cannot see requires injection/reflection since it's java.

So yes.. No CPU "hooking". It's either Injection, Reflection, Interception, Packet-Sniffing. Nothing more, nothing less. Well not that I know of anyway.

wantonman

2013-01-03 20:39:12

Have you perhaps tried checking out this?
http://www.brackeen.com/vga/

good-luck

m3gaman3g3nd

2013-01-16 16:38:16

strange but i couldent get it to work even with bitmap from lient functior nor could i do rgbtoccolor or anything… the fact is that i would have to re-build simba equiped wiith compatability for the new profile

kyleinkman

2013-01-22 13:11:55

i wouldent be able to look at that very long :(

m3gaman3g3nd

2013-01-22 19:07:24

i was studying simbas source and thoroughly read the bitmaps.pas file and basically came to a conclusion of how easy it actually is


this is a procedure from the file "bitmaps.pas" located in "\Simba\Simba\Units\MMLCore\"

Procedure ArrDataToRawImage(Ptr: PRGB32; Size: TPoint; out RawImage: TRawImage);
Begin
RawImage.Init; { Calls raw.Description.Init as well }

RawImage.Description.PaletteColorCount:=0;
RawImage.Description.MaskBitsPerPixel:=0;
RawImage.Description.Width := Size.X;
RawImage.Description.Height:= Size.Y;

RawImage.Description.Format := ricfRGBA;
RawImage.Description.ByteOrder := riboLSBFirst;
RawImage.Description.BitOrder:= riboBitsInOrder; // should be fine
RawImage.Description.Depth:=24;
RawImage.Description.BitsPerPixel:=32;
RawImage.Description.LineOrder:=riloTopToBottom;
RawImage.Description.LineEnd := rileDWordBoundary;

RawImage.Description.RedPrec := 8;
RawImage.Description.GreenPrec:= 8;
RawImage.Description.BluePrec:= 8;
RawImage.Description.AlphaPrec:=0;


RawImage.Description.RedShift:=16;
RawImage.Description.GreenShift:=8;
RawImage.Description.BlueShift:=0;

RawImage.DataSize := RawImage.Description.Width * RawImage.Description.Height
* (RawImage.Description.bitsperpixel shr 3);
RawImage.Data := PByte(Ptr);
End;


——————————————————————-

possible changes to accommodate for 256 color mode*
RawImage.Description.Depth:=24; - change to 8**
RawImage.Description.BitsPerPixel:=32; - change to 8**

RawImage.Description.RedPrec := 8; - change to **
RawImage.Description.GreenPrec:= 8; - change to **
RawImage.Description.BluePrec:= 8; - change to **
RawImage.Description.AlphaPrec:=0; - change to **


RawImage.Description.RedShift:=16; - change to **
RawImage.Description.GreenShift:=8; - change to **
RawImage.Description.BlueShift:=0; - change to **

——————————————————————-

im sure theres more to do but this should give it some basic compatibility. if your familliar with this kind of work it shouldent be tough to implement.


here is a relevant article for this type of work http://wiki.freepascal.org/Fast_direct_pixel_access