Testing Jagex's Macro detection systems
g0tp0t
2010-04-28 19:28:06
i was looking at the how to auto section, to see if any light was shed on jagex's techniqes.
I found a semi-old thread about how jagex caught you, by lollify i think.
I made this thread in order for people to contribute greatly to srl, by posting small scripts that test one specific way Jagex might find you, like i am creating a small script that will use a Random mouse movement until finds uptext, then stops, then continues. this should test simple mouse movement W/O mouseclicks. if i get attention (AKA randoms) i will move on to mouse spiral, then bezier splines, and if i get randoms on bezier, then they DEFINTETLY track mouse movements.
Frement
2010-04-28 19:29:05
Dont we allready know they track mouse movement clicks and such?
g0tp0t
2010-04-28 19:36:54
not for sure, i dont think, it just speculation, that could be a rumor for all we know now.
Frement
2010-04-28 19:38:58
Im pretty sure there was some code also from the client? or something in the same thread.
aran armath
2010-04-28 19:40:07
From: g0tp0t
i was looking at the how to auto section, to see if any light was shed on jagex's techniqes.
I found a semi-old thread about how jagex caught you, by lollify i think.
I made this thread in order for people to contribute greatly to srl, by posting small scripts that test one specific way Jagex might find you, like i am creating a small script that will use a Random mouse movement until finds uptext, then stops, then continues. this should test simple mouse movement W/O mouseclicks. if i get attention (AKA randoms) i will move on to mouse spiral, then bezier splines, and if i get randoms on bezier, then they DEFINTETLY track mouse movements.
Not to be mean, but this I think is your second or third thread you have started today (maybe today and yesterday, cant remember) but try to stick to one project at a time and not be jumpy from one to the other.
Edit-
http://villavu.com/forum/showthread.php?t=30138Theres a link to a thread discussing how they detect, and seems very knowledgeable and true.
MylesMadness
2010-04-28 20:30:23
Movements and clicks can be tracked and code is in the client to do so, but it is unlikely that they track movements because that would take a massive about of server power.
i luffs yeww
2010-04-28 20:30:26
It's already known, according to the .jar (I think).
g0tp0t
2010-04-28 20:40:00
unless it is using our own proccessing power. they cvould have our comps testing how straight or fast our movements are, along with accuracy, if unhunman then they send
i luffs yeww
2010-04-28 21:23:48
I don't think they care that much. It doesn't affect anything unless people complain.
Bionicle
2010-04-28 21:27:13
movements can be tracked, but Jagex is too lazy to do it, this was verified by The Claw (i think, maybe another mod/admin, it could have been hobbit my mind fails me :()
Jagex however does track clicks.
Method
2010-04-28 21:30:20
They track and send both mouse movements and clicks to the server.
Brain
2010-04-28 21:42:21
I heard they turn on your webcam and make sure you're at the computer.
i luffs yeww
2010-04-28 22:16:44
g0tp0t
2010-04-28 22:38:41
i must say, that is a perfect connection, almost like the brain meant to respond after you, or did he? hmm, he is the brain:tongue:.
ok, so it was verified in code, so why do we use the legeant mouse movement stuff if we dont even need it, lol, i think i will make a test acc and replace mmouse with an int move then wait 500ms or something. then run scripts that have been so far mostly undetectable.
offtpoic:
im trying to create a function that chooses a lank in the agility arena. one plank does not have slits in the side, meaning it is sturdy and wont break when you walk on it, a mistake causes you to fall into the lava below.
i cant think of any way to identify it without reflection, maybe even with reflection i couldnt do it:P
i luffs yeww
2010-04-28 22:43:40
With reflection you most definitely can. Without, you still can. I just can't explain right now.
g0tp0t
2010-04-28 23:11:14
is reflection fixed enough to do it?
Camaro'
2010-04-29 07:03:30
Reflection is pretty much fixed (it was never really broken), only thing thats broken is a few hooks need updating, TileToMS, and one or two more functions ( that are pretty easy to fix ). The one holding everyone back I believe is TileToMs.
g0tp0t
2010-04-29 07:53:19
i said i would do tiletomas, because noone else has, and so i will, where do i get tiletoms source
the one that neds to be converted
MylesMadness
2010-04-29 10:59:18
Well the problem is no one really has the time (or if they do the knowledge) to find the tile to ms code
g0tp0t
2010-04-29 11:08:37
… i do and will, i am in school, my programming teacher said he knew some people who were very good at java. and i am good with scar/pascal script, so we will translate it that way, the problem is i NEED the untranslated java version of TileToMs.
MylesMadness
2010-04-29 11:33:22
From: g0tp0t
… i do and will, i am in school, my programming teacher said he knew some people who were very good at java. and i am good with scar/pascal script, so we will translate it that way, the problem is i NEED the untranslated java version of TileToMs.
No that has spare time has the knowledge to find it in the client. I would look in a deob (
http://www.moparisthebest.com/rs/deob/) to see if you can find anything
g0tp0t
2010-04-29 12:12:33
j_pizzle showed it to me, used pastebin, maybe link isnt dead yet :D
EDIT: i found it:
public Point worldToScreen(int x, int z, int height, int plane) {
RenderVars render = parent.getRenderVars();
int y = tileHeight(x, z, plane) + height;
int z1 = (render.zOff + ((render.zx * x + render.zy * y + render.zz * z) >> 15));
if (z1 < render.zNear || z1 > render.zFar) {
return new Point(-1, -1);
}
int x1 = render.xMultiplier * (render.xOff + ((render.xx * x + render.xy * y + render.xz * z) >> 15)) / z1; //todo hd is different ??
int y1 = render.yMultiplier * (render.yOff + ((render.yx * x + render.yy * y + render.yz * z) >> 15)) / z1; //todo hd is different ??
System.out.println("Z1: " + z1 + ", X1: " + x1 + ", Y1: " + y1 + " {");
System.out.println(" AbsoluteX1: " + render.absoluteX1 + ", AbsoluteX2: " + render.absoluteX2 + ", AbsoluteY1: " + render.absoluteY1 + ", AbsoluteY2: " + render.absoluteY2);
System.out.println("}");
if ((x1 >= render.absoluteX1 && x1 <= render.absoluteX2) && (y1 >= render.absoluteY1 && y1 <= render.absoluteY2)) {
int pointX = x1 - render.absoluteX1;
int pointY = y1 - render.absoluteY1;
if (onScreen(pointX, pointY)) {
return new Point(pointX, pointY);
}
}
return new Point(-1, -1);
}
public int tileHeight(int x, int z, int plane) {
Plane aPlane = null;
if ((aPlane = getPlaneAt(x, z, plane)) == null) return 0;
return getTileHeight((SDPlane) aPlane, x, z); // and wut abt HDPlane?
}
private SDPlane getPlaneAt(int x, int z, int plane) {
int x1 = x >> 7;
int z1 = z >> 7;
if (x1 < 0 || x1 > 103 || z1 < 0 || z1 > 103) {
return null;
}
if (plane > 3 && (parent.getClient().getGroundHeightInfo()[1][x1][z1] & 2) != 0) {
plane++;
}
Plane[] planes = parent.getClient().getPlanes();
if (planes.length > plane && planes[plane] != null) {
return ((SDPlane) planes[plane]);
}
return null;
}
private int getTileHeight(SDPlane plane, int x, int z) {
int x1 = x >> plane.getScale();
int z1 = z >> plane.getScale();
if (x1 < 0 || z1 < 0 || x1 > plane.getXSize() - 1 || z1 > plane.getZSize() - 1) {
return 0;
}
int y1 = x & plane.getYSize() - 1;
int y2 = z & plane.getYSize() - 1;
int aLocalInt5 = ((plane.getHeightArray()[x1][z1] * (plane.getYSize() - y1) + plane.getHeightArray()[x1 + 1][z1] * y1) >> plane.getScale());
int aLocalInt6 = ((plane.getHeightArray()[x1][z1 + 1] * (plane.getYSize() - y1) + plane.getHeightArray()[x1 + 1][z1 + 1] * y1) >> plane.getScale());
return (aLocalInt5 * (plane.getYSize() - y2) + aLocalInt6 * y2 >> plane.getScale());
}
i luffs yeww
2010-04-29 21:46:11
^ Doesn't look too hard to change into Pascal.
g0tp0t
2010-04-29 22:03:22
i know, thats why i thought it must be a function or something, i learned a little bit of java today, and… i think it will be fairly easy.
i luffs yeww
2010-04-29 22:07:20
I don't even see why you need to know any Java. The syntax is all that matters, really. The only main differences I can see is the operators (||, etc.).
g0tp0t
2010-04-29 22:24:18
it is the first line wich had me stumped, and it still might actually, will the procedure ruturn a point? dont think so, havnt gone through that far yet, but y is it declaring it as a point? confusing. lol
I quickly skimmed it, yes it is a function that returns a point :duh:
OKay, render and rendervars has me stumped now, and it is the one thing i see that i dont know in the function :(
EDIT2: W00t! im a genuis, i had just remembered that kbot had a render debugger which gives most of th things this is asking for :O. so basicly, this is all in rs and the hook experts need to retreive it :P
Camaro'
2010-04-30 07:08:57
Hows it coming?
MylesMadness
2010-04-30 10:24:58
So wait, tiletoms can be found in a hook?
g0tp0t
2010-04-30 12:01:29
sorry, i guess i was a little misleading, no, TileToMs is NOT in a hook. i meant that those render.xoff and all the other render stuff can be retreived from client by using hooks.
oh, and BTW, i have research the >> operator extensivly, and i can not figure out how the hell to do it in scar, will i need to make a function that inverts the binary form of the number myself? is that even what that really means, that single sign, and all the other bitwise operators have really stopped my proggress
EDIT: how long do u have to contribute directly to srl include to be considered a dev? opr how do i become dev -.-, lol
Frement
2010-04-30 12:29:37
From: g0tp0t
sorry, i guess i was a little misleading, no, TileToMs is NOT in a hook. i meant that those render.xoff and all the other render stuff can be retreived from client by using hooks.
oh, and BTW, i have research the >> operator extensivly, and i can not figure out how the hell to do it in scar, will i need to make a function that inverts the binary form of the number myself? is that even what that really means, that single sign, and all the other bitwise operators have really stopped my proggress
EDIT: how long do u have to contribute directly to srl include to be considered a dev? opr how do i become dev -.-, lol
Once you know how to script, you are trustworthy (I for one can never get dev status (i think)) and some other stuff, you have to know how to really really script.
g0tp0t
2010-04-30 12:36:55
as i get better i get really really good, and im not bad right now, :P. i 'think' i could become mem after a few tries. also i dont see y i wouldnt be trusted so that wouldnt prevent me from directly developing srl.
But more to the point, what is >> in pascal script? it is a bitwise shift in java, which has me kinda confused. i might have to make a function which converts a # to binary then screws with the bits like this does apparently. i dont see y that bitwise would be needed in this function though :[
Gu3st...
2010-04-30 12:55:41
g0tp0t, >> = shr << = shl (shl = shift left, shr = shift right)
Frement
2010-04-30 13:02:50
From: g0tp0t
as i get better i get really really good, and im not bad right now, :P. i 'think' i could become mem after a few tries. also i dont see y i wouldnt be trusted so that wouldnt prevent me from directly developing srl.
But more to the point, what is >> in pascal script? it is a bitwise shift in java, which has me kinda confused. i might have to make a function which converts a # to binary then screws with the bits like this does apparently. i dont see y that bitwise would be needed in this function though :[
Really good is not enough :) For example, lets take Coh3n, hes really good, right? Even better then "really good" if you ask me. Still hes just a member :) I dunno if he has been asked to be dev and has said no or something, I mean, you really have to contribute, i dont think ill ever get to be dev because of what i have done, nor do i have any desire actually.
g0tp0t
2010-04-30 13:11:12
so i have to be asked to be dev, not apply?
also, how do i emiulate javas bitwise shit operator '>>' in scar
Frement
2010-04-30 13:29:49
From: g0tp0t
so i have to be asked to be dev, not apply?
also, how do i emiulate javas bitwise shit operator '>>' in scar
From: Zyt3x
g0tp0t, >> = shr << = shl (shl = shift left, shr = shift right)
That.
g0tp0t
2010-04-30 14:28:39
yea, i know what tghe operator is, but apparently it takes the binary form of a number and shifts the bits in the specified direction, does scar have an operator 4 that??
MylesMadness
2010-04-30 14:34:18
1 shl 10
Tim0suprem0
2010-04-30 14:50:40
From: g0tp0t
so i have to be asked to be dev, not apply?
also, how do i emiulate javas bitwise shit operator '>>' in scar
I don't know how it is anymore, but you used to apply to be an srl dev. But that was a long time ago, I don't know if they still do it like that, or if they ask you to join their club :)
There is also the rank SRL Aristocrat, which I believe is given to you if you come up with lots of helpful functions/procedures for SRL.
g0tp0t
2010-04-30 15:04:23
ohhh, so shl and shr ARE the operators ;), lol, i would never have figured that out. ty. im back to converting. :)
Gu3st...
2010-04-30 15:13:39
From: g0tp0t
ohhh, so shl and shr ARE the operators ;), lol, i would never have figured that out. ty. im back to converting. :)
<_<
I rest my case.
TRiLeZ
2010-05-01 01:20:22
I'll give you the hooks you need once RSBot updates. :D
g0tp0t
2010-05-01 20:01:14
progress:
i am now just converting without know what the h3ll im doing… :P. the bitwise stuff really confuses me, dont see the point in haveing it their.
EDIT: didnt see ur post, lol, but - yay! helpfull
TRiLeZ
2010-05-01 22:43:10
Here are the hooks that I took from RSBot:
getToolkit() bm.V
getAbsoluteX1() fg.L
getAbsoluteX2() fg.B
getAbsoluteY1() fg.y
getAbsoluteY2() fg.nb
getZNear() fg.W
getZFar() fg.lb
getXMultiplier() fg.ab
getYMultiplier() fg.eb
getViewport() fg.z
getXOff() ff.u
getXX() ff.t
getXY() ff.k
getXZ() ff.p
getYOff() ff.o
getYX() ff.r
getYY() ff.s
getYZ() ff.m
getZOff() ff.l
getZX() ff.q
getZY() ff.j
getZZ() ff.n
Replying to what someone said on the last page…My hat = Aristocrat
g0tp0t
2010-05-04 11:28:02
omg!! sweet trilez. u own, so now i place these in hooks file and use the corresponding functions right?