Spartan 117
2013-03-17 13:17:22
I know the everything injection can do color can do too but injection is just way more simple for less knowledgable scripters(like myself) to make decent scripts with.
2013-03-17 13:17:22
2013-03-17 13:18:32
2013-03-17 13:27:37
From: RJJ95
We would probably have injecting but IDK if they are looking into this or not. I looked at some old reflection scripts they actually look harder
2013-03-17 13:28:59
From: Ollybest
Lol… you really shouldn't comment if you know nothing about it. :p
And on topic no, i would not like to see it i like having a challenge :)
Also @Wizzup has some nice views on reflection.
From: RJJ95
I looked at some old reflection scripts they actually look harder
2013-03-17 13:42:14
From: Ollybest
Lol… you really shouldn't comment if you know nothing about it. :p
And on topic no, i would not like to see it i like having a challenge :)
Also @Wizzup has some nice views on reflection.
2013-03-17 14:04:17
2013-03-17 14:13:01
From: grahambr
so why not give injection a shot?
2013-03-17 14:17:03
From: NKN
Because making all the hooks not break are annoying.
Figuring out classes named x, f, a, u, fu, fa is not a easy task, it takes time. You'd have to have someone dedicated. I only managed to hook 3 - 4 classes myself. </3
2013-03-17 14:32:12
2013-03-17 14:37:36
2013-03-17 14:50:44
2013-03-17 14:57:08
From: litoris
Biased poll options…
If you consider doing a task, then injection can do it much much better, because it can see more than what human eye can see- it knows locations of mainscreen objects simply by their id, and can let you walk with extreme accuracy. However, it has its risks and it is illegal, not to mention that it is detectable.
Is color good enough? For a good scripter, yes. Nobody gets banned for using Simba (literally no bans since the botnuke) and the developers do not hack the users for their pixels. If we do get reflection, it will be nice to use for things that are harder with color (ie. finding the tripwire in lletya for a grenwall hunter) but color will prevail no matter what.
2013-03-17 15:33:52
2013-03-17 20:20:49
2013-03-17 20:25:42
From: Echo_
Most of the people that were knowledgeable with the client either left or just lurk the forums now (pyroryan, Method, Drags111, etc).
And RJJ95, reflection scripts were really easy. There was a point in time where scripts only really used color for failsafes and running while hooks were being updated. However there were issues with memory leaks and such.
2013-03-17 20:28:55
From: litoris
Biased poll options…
If you consider doing a task, then injection can do it much much better, because it can see more than what human eye can see- it knows locations of mainscreen objects simply by their id, and can let you walk with extreme accuracy. However, it has its risks and it is illegal (apparently not for 07scape), not to mention that it is detectable.
Is color good enough? For a good scripter, yes. Nobody gets banned for using Simba (literally no bans since the botnuke)(NKN disagrees, possible I guess) and the developers do not hack the users for their pixels. If we do get reflection, it will be nice to use for things that are harder with color (ie. finding the tripwire in lletya for a grenwall hunter) but color will prevail no matter what.
2013-03-17 20:30:45
From: Richard
Reflection was never illegal. The reason powerbot and other injection bots were illegal is because they distributed modified versions of the client. (naive knowledge here on in) IIRC reflection just got the hooks from the JVM, rather than actually injecting modified code into the client. AFAIK SMART remained unaltered.
2013-03-17 20:35:44
From: RJJ95
Couldn't they use their own models? I remember custom oak trees on powerbot one time during christmas, but didn't see them without the powerbot client
2013-03-17 20:39:15
From: Richard
That would be actually intercepting the graphics information and altering, something a lot of people having been doing with OpenGL
2013-03-17 21:03:34
Well what are his views of reflection? And i'm talking about injection not reflection so his views might be different.
2013-03-17 21:27:10
From: RJJ95
wait so you have to guess their class names?
2013-03-17 22:04:06
If injection is reliable and legal, I don't see why not as a plugin, reflection is a no-go as they have said they are going to implement their "current bot technologies" meaning encryption, making it a waste of time to start now,
2013-03-17 22:31:00
From: n3ss3s
… No
Injection: The bot uses a client that has been injected with accessors, e.g if in some class the field kl represents animation id, the accessor getAnimation() (or whatever) will return kl and the bot can call that method.
Reflection: The bot doesn't use an injected client, and uses reflection to set the field accessible and reads it.
For both you'll need an updater, it's not any easier to make an updater for injection than reflection, for injection you also need to go the extra mile of injecting the accessors / interfaces rather than just dumping the fields.
2013-03-17 23:43:54
2013-03-18 02:23:33
From: RJJ95
Nvm :o, butI remeber I used my own client for RSPS's and I would cheat by replacing the model with a common item such as a strength amulate with a blank model so when I wore it I would show up invisible :d
2013-03-18 05:31:33
From: Echo_
Then it would only be invisible to you, not any of the other players.
Also if you don't understand how reflection works: http://docs.oracle.com/javase/tutorial/reflect/index.html
2013-03-18 07:09:25
From: RJJ95
My white dot was still visible I was still clickable you just couldn't see me :p Have you ever seen the cheat clients that make people invisible? It's like that.
Also people make reflection cheat clients to cheat on servers and force spawn items (incase they don't have failsafes) such as sending a item to the floor,to your inventory, to the trade screen many possibilities read up on it here: http://www.moparscape.org/smf/index.php?topic=551310.0
I could only get it to work for a limited number of servers mostly crappy ones because I don't know much java and I could spawn items on one that had litterely no failsafes :p
package com.nkn.impl;
import com.nkn.generic.AbstractAnalyser;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.*;
import java.util.ListIterator;
public class PlayerAnalyser extends AbstractAnalyser {
@Override
protected boolean canRun(ClassNode node) {
int inum = 0, strnum = 0;
ListIterator<FieldNode> fnIt = node.fields.listIterator();
while(fnIt.hasNext()){
FieldNode fn = fnIt.next();
if((fn.access & Opcodes.ACC_STATIC)==0){
if(fn.desc.equals("Ljava/lang/String;"))
strnum++;
if(fn.desc.equals("I"))
inum++;
}
}
return inum == 15 && strnum == 1;
}
@Override
protected String analyse(ClassNode node) {
System.out.print("\nFound Player Class at: "+node.name);
String playerName = "";
node.interfaces.add("com/nkn/interfaces/PlayerInterface");
ListIterator<FieldNode> fnIt = node.fields.listIterator();
while(fnIt.hasNext()){
FieldNode fn = fnIt.next();
if((fn.access & Opcodes.ACC_STATIC)==0){
if(fn.desc.equals("Ljava/lang/String;")){
System.out.print("Name is at: "+fn.name+"\n");
//InjectUtils.addGetter(node,fn,"getPlayerName");
MethodNode getter = new MethodNode(Opcodes.ACC_PUBLIC, "getPlayerName", "()Ljava/lang/String;", null, null);
getter.instructions.add(new VarInsnNode(Opcodes.ALOAD, 0));
getter.instructions.add(new FieldInsnNode(Opcodes.GETFIELD, node.name, fn.name, fn.desc));
getter.instructions.add(new InsnNode(Opcodes.ARETURN));
int size = getter.instructions.size();
getter.visitMaxs(size, size);
getter.visitEnd();
node.methods.add(getter);
System.out.print("Added getter at:" + getter.name+"\n");
}
}
}
ListIterator<MethodNode> mnIt = node.methods.listIterator();
methodIterator:while(mnIt.hasNext()){
MethodNode mn = mnIt.next();
if(mn.desc.startsWith("(L")&&mn.desc.endsWith(";I)V")){
ListIterator<AbstractInsnNode> ainIt = mn.instructions.iterator();
while(ainIt.hasNext()){
AbstractInsnNode ain = ainIt.next();
if(ain instanceof FieldInsnNode){
String Level = ((FieldInsnNode) ain).name;
System.out.println("USER IS AT: "+Level);
MethodNode getter = new MethodNode(Opcodes.ACC_PUBLIC, "getCombatLevel", "()I", null, null);
getter.instructions.add(new VarInsnNode(Opcodes.ALOAD, 0));
getter.instructions.add(new FieldInsnNode(Opcodes.GETFIELD, node.name, ((FieldInsnNode) ain).name, ((FieldInsnNode) ain).desc));
getter.instructions.add(new InsnNode(Opcodes.IRETURN));
int size = getter.instructions.size();
getter.visitMaxs(size, size);
getter.visitEnd();
node.methods.add(getter);
System.out.print("Added getter at:" + getter.name+"\n");
break methodIterator;
}
}
}
}
return node.name;
}
}That's one of my accessors for the player class. Haven't updated the hook tho.
2013-03-18 08:04:31
From: RJJ95
My white dot was still visible I was still clickable you just couldn't see me :p Have you ever seen the cheat clients that make people invisible? It's like that.
Also people make reflection cheat clients to cheat on servers and force spawn items (incase they don't have failsafes) such as sending a item to the floor,to your inventory, to the trade screen many possibilities read up on it here: http://www.moparscape.org/smf/index.php?topic=551310.0
I could only get it to work for a limited number of servers mostly crappy ones because I don't know much java and I could spawn items on one that had litterely no failsafes :p
2013-03-18 14:59:36
From: DannyRS
What Echo means is that if you make your model invisible in the local client, everyone looking at you (everyone else on the server) can still see you ;) you just can't see yourself, some servers with bad security means you can force spawn items, like you could in a really early version of RSC before the developers saw that they needed to overcome that, I've got no idea how the whole packet hacking stuff works
2013-03-18 15:17:05
From: Echo_
Also if you don't understand how reflection works: http://docs.oracle.com/javase/tutorial/reflect/index.html
2013-03-18 15:27:22
2013-03-18 15:42:42
From: Vezq
Only reason i don't like injection is that most of the people getting banned for botting atm are because of bots that use injection. Can someone tell me if this is true?
2013-03-18 19:30:22
From: n3ss3s
… No
Injection: The bot uses a client that has been injected with accessors, e.g if in some class the field kl represents animation id, the accessor getAnimation() (or whatever) will return kl and the bot can call that method.
Reflection: The bot doesn't use an injected client, and uses reflection to set the field accessible and reads it.
For both you'll need an updater, it's not any easier to make an updater for injection than reflection, for injection you also need to go the extra mile of injecting the accessors / interfaces rather than just dumping the fields.
2013-03-18 19:32:36
From: n3ss3s
It's not because of using injection but the volume of people that often use a single script
2013-03-18 19:54:06
From: Vezq
I read some people are getting banned for just having rsbot the client open in a botwatch area?
From: Neodymium
Ahh, thanks. I knew what Reflection was, but I assumed Injection was the process of injecting bytecode into certain classes – injecting and editing bytecode I've done.
2013-03-19 05:53:21
2013-03-19 21:01:57
From: DannyRS
Jagex ob-something (I always forget the spelling, you tried to do it once) their code in the applet, so you have to reverse-engineer it and find what everything is, I've got very little knowledge on how injection and reflection work, but I'm with Wizzup on this one,
If injection is reliable and legal, I don't see why not as a plugin, reflection is a no-go as they have said they are going to implement their "current bot technologies" meaning encryption, making it a waste of time to start now,
Theres little that can't be done in color alone, it just takes a smart approach and the time :) colors also alot more fun and challenging for a programmer, IMO you will learn alot more here than simply how to "click object by ID" at PB or elsewhere
2013-03-19 21:25:31
From: pija
Obfucsation.
Even if you don't obfuscate code, you will still not be able to determine the identifiers. The identifier chosen for a method, function, class, variable, will lie nowhere in the bytecode.
2013-03-19 21:29:13
2013-03-19 21:29:53
From: Wizzup?
Simba on itself (and its predecessor) have never ``included'' Reflection or Injection. Reflection was added through a plugin. You're free to create a plugin that does ``Injection'' (just like SMART did Reflection), but it's not something that will (ever) be in Simba itself.
2013-03-19 21:39:30
2013-03-19 21:40:05
From: YoHoJo
Why would people vote no?
If you don't want it, just don't use it….?
Why NOT have an extra feature?
2013-03-19 21:41:05
From: RJJ95
I was thinking the same thing but they might be afraid of to much dev time being poured into it..
2013-03-19 21:45:10
From: YoHoJo
If they don't want to do it, they don't have to.
We're open source and stuff, let the people who have the time/care to do it actually do it then, so once again, why vote no? :X I don't get it.
2013-03-19 22:23:11
2013-03-20 08:50:17
2013-03-24 04:01:54
From: NKN
Not 100% true.
They just don't name it as an identifier. It's still there, you just have to know what to look for.
2013-03-24 11:08:14
From: pija
The identifier IS the name chosen for the variable. The variable is there, are you implying the identifier is left in the code after compiling?
2013-03-24 11:32:14
2013-03-25 16:11:44
2013-03-25 21:00:13
2013-04-03 08:30:11
2013-04-04 07:11:27
2013-04-05 09:43:11
From: dzpliu
is injection detected easily? like the moment you use injection, jagex can detect you?
2013-04-05 17:03:43
From: zer0hax0r
Yea, injection is easily detectable. That's where reflection comes in and takes the cake. :P
2013-04-05 18:58:08
From: NKN
It's not instant detectable.
If it was, all Pbot users would be banned.
It's only detectable if you do it wrong.
2013-05-04 11:55:05
From: Brandon
It's detectable if you don't hide it.
Jagex is either just lazy or don't know what they're doing.
Either that, or they'd be in some legal troubles for doing some methods of detection.
If it can't be done on the Java side, they can simply put it in a dll.
Detecting Injection is just as hard as injecting. You write code to detect it and someone comes and patches that code. You have to write again..
It's a back and forth race. Eventually one side will give in. Jagex is a large company. I'm fairly certain they should be able to detect it. VAC certainly does. But they constantly have to update their security and checks.
2013-05-05 10:05:28
2013-05-05 11:15:11
2013-05-05 12:49:31
From: Flight
I'd just like an accurate way of determining tiles & location as well as all random solvers. Everything else I just prefer to use color.
2013-05-08 07:29:37
2013-05-08 08:17:12
From: billymyo1
Amazing post. informative post for me. thanks for this post.
getfrank.com.au/laughs/funny-jokes
2013-05-08 08:59:18
From: Brandon
Is this a spam-bot? :S
2013-05-08 09:20:51
From: Flight
I'd just like an accurate way of determining tiles & location as well as all random solvers. Everything else I just prefer to use color.
2013-05-08 09:35:54
From: Haxz
Exactly this.
But are coding with reflection/injection different from pascal?
2013-05-08 09:54:30
From: Flight
They're methods reading and/or modifying .class files, I believe. We would be writing scripts as normal with Simba, in Pascal, if SMART could once again use reflection. The only difference is easier and perfect accuracy in scripts, such as finding objects/items/NPCs/players and determining tile coordintes and animations, and so on…
2013-05-08 09:55:21
2013-05-08 10:19:03
From: Frostie
I don't think simba needs injection or even reflection. The way they have color set up it's more reliable with not watch. It's also become one of the most advanced bots ever made.
2013-05-08 13:27:50
2013-05-08 13:45:42
2013-05-08 21:58:07
From: Shatterhand
Anyone trying to revive old SMART versions?
2013-05-08 22:02:34
From: Flight
I believe it'd be simpler to retain the current SMART (8.0+) and just add reflection.
I personally couldn't care less about reflection in EoC RS, walking is done near perfectly with SPS and ObjectDTMs and randoms have been removed from the game; the hard parts are over and anything else we want to do in RS via color is very possible now. I only have interest in reflection for use in OSR where these obstacles are still present.
2013-05-10 06:38:53
From: Flight
I believe it'd be simpler to retain the current SMART (8.0+) and just add reflection.
I personally couldn't care less about reflection in EoC RS, walking is done near perfectly with SPS and ObjectDTMs and randoms have been removed from the game; the hard parts are over and anything else we want to do in RS via color is very possible now. I only have interest in reflection for use in OSR where these obstacles are still present.
2013-05-10 06:54:24
From: NKN
Would it use Injection or Reflection, though? Injection isn't too hard to get all the hooks and make an updater for, it's just implementing it in. I would do it, but I don't really feel like breaking SMART lol. I might fool around with it later, and try and get a hook or two working.
That is, if it's injection, if he's reflection, I'm useless.
2013-05-10 06:58:42
From: Flight
So you wouldn't know how to add injection to SMART? I think it SMART were to use injection/reflection it should be a separate version, strictly for OSR. But that's just my opinion.
2013-05-10 13:09:42
2013-05-10 13:51:23
From: Ollybest
https://github.com/BenLand100/SMART/commits/reflection
Could only guess that Ben ran outta time or got bored :p
2013-05-10 16:00:06
From: Flight
Ah nice I didn't know about that. I did some digging around and found a couple of the current reflection hooks for OSR and I'm looking over the old SRL-Reflection library on how to use them. I'll continue in the morning. Thanks for the link, Ollybest.
2013-05-10 22:43:39
From: Officer Barbrady
Do you plan on making full on reflection for simba or just hooking the tiles? (or maybe some interfaces and NPC's for randoms)
(char*)"exp_getFieldObject", (char*)"function SmartGetFieldObject(objref: integer; path: string): integer;",
(char*)"exp_isPathValid", (char*)"function SmartIsPathValid(objref: integer; path: string): boolean;",
(char*)"exp_getFieldBoolean", (char*)"function SmartGetFieldBoolean(objref: integer; path: string): boolean;",
(char*)"exp_getFieldLongH", (char*)"function SmartGetFieldLongH(objref: integer; path: string): integer;",
(char*)"exp_getFieldLongL", (char*)"function SmartGetFieldLongL(objref: integer; path: string): integer;",
(char*)"exp_getFieldInt", (char*)"function SmartGetFieldInt(objref: integer; path: string): integer;",
(char*)"exp_getFieldShort", (char*)"function SmartGetFieldShort(objref: integer; path: string): integer;",
(char*)"exp_getFieldFloat", (char*)"function SmartGetFieldFloat(objref: integer; path: string): extended;",
(char*)"exp_getFieldDouble", (char*)"function SmartGetFieldDouble(objref: integer; path: string): extended;",
(char*)"exp_getFieldByte", (char*)"function SmartGetFieldByte(objref: integer; path: string): string;",
SmartGetFieldInt(-1, 'hw.client');
SmartGetFieldInt(0, 'hw.client');
SmartGetFieldInt(1, 'hw.client');
2013-05-11 05:22:00
2013-05-11 13:53:44
From: Flight
I'm just trying to understand it and get anything to work. :/ I'll worry about that later.
"Error: Could not call proc at line…"
2013-05-11 21:23:54
From: Brandon
None of those new functions are exported. You try to use them, you'll get access violation or could not call proc. You need to export them and add them to smart's def file for the remote:
https://github.com/BenLand100/SMART/blob/7ba9beeab9ccb45d09b9f0758e60c15ecc8eedcf/src/libsmartremote.def
Notice it exports none of the ref functions. You'll have to add all the exp____ref functions from smartremote.h
2013-05-12 10:57:48
2013-05-12 11:01:41
2013-05-12 11:36:29
2013-05-13 10:03:34
2013-05-13 10:11:48
From: pyroryan
I'd be willing to help on a limited scale with RS 2k7 as long as reflection's use remains largely limited to functions that are difficult to implement in color (i.e. reflection should be a complement to color, not the other way around as it was in the past). I've extended this offer to Flight privately as well.
2013-05-13 11:47:46
From: pyroryan
I'd be willing to help on a limited scale with RS 2k7 as long as reflection's use remains largely limited to functions that are difficult to implement in color (i.e. reflection should be a complement to color, not the other way around as it was in the past). I've extended this offer to Flight privately as well.
2013-05-13 12:09:34
2013-05-13 12:29:34
2013-05-13 12:56:35
2013-05-13 15:21:11
From: StickToTheScript
Just like Haxz said, I will be willing to volunteer my time to do testing. I would love to help creating the plug-in, but I have never been involved with something of the sorts, nor do I think I contain the knowledge. But i will test.
2013-05-13 15:26:05
From: Vinyl Scratch
This is a great way to learn, is it not?
2013-05-13 15:42:43
2013-05-14 13:28:55
2013-05-14 13:37:21
2013-05-14 14:33:35
From: Tuk
no :(
Reflection/Injection puts the scripts at a higher risk of auto detection, previous bot nukes and jagex's current determination to remove bots should be a clear indication that safety should be our primary concern. I personally would much rather monitor safe color only bots.
If injection was used to support what the color is observing to add confidence, sure, but color imo should always be the primary determinant of what the bot does. Especially as jagex is known to fuck around with item ids and adding in invisible objects and all that stuff. I'm a newbie, but my 2 cents is a no :p Especially in regards to random solvers.
+ jagex will most likely be specifically targetting them soon, due to such clients as tribot.
2013-05-14 15:40:52
From: Tuk
no :(
Reflection/Injection puts the scripts at a higher risk of auto detection, previous bot nukes and jagex's current determination to remove bots should be a clear indication that safety should be our primary concern. I personally would much rather monitor safe color only bots.
If injection was used to support what the color is observing to add confidence, sure, but color imo should always be the primary determinant of what the bot does. Especially as jagex is known to fuck around with item ids and adding in invisible objects and all that stuff. I'm a newbie, but my 2 cents is a no :p Especially in regards to random solvers.
+ jagex will most likely be specifically targetting them soon, due to such clients as tribot.
2013-05-14 20:32:34
From: Officer Barbrady
Do you even know what your talking about? Since when has jagex added a auto-reflection client detection system? Second off, chaning the ID's LIVE IN GAME MAKES NO SENSE WHAT SO EVER. Sorry about caps lol but it's just the truth.
From: Tuk
I'm a newbie
2013-05-14 21:05:21
From: Brandon
Ahh don't worry.. You can trust me when I say that "Reflection" in Pascal-Script is NOT that great. Its great but not as great as you'd think it would be. Its not like the reflection PB used to have.
Lags!
Model Recognition is Slow!
Tile clicking is NOT too accurate because you need to get the height right.
Anything too far (roughly 52 tiles) will take more than 20 seconds to find..
The only way Reflection could possibly overcome these is to make it a plugin.. Anything done on the Pascal side for reflection will be pretty slow.
Basic things are a ton faster than colour though. Like finding items in your bank, ensuring that an item is what it is.. Color requires tolerance and constant changing of DTM's to find an item.
Also, if you think about it.. Reflection gives the near exact position of an object. With the current MouseOffset stuff, you're going to have to reset the mouse offset things before clicking every reflection object and set it back for color clicking.
2013-05-17 02:47:08
2013-05-17 07:04:55
From: luxrath
What makes simba attractive to me that it is NOT an injection bot. Injection bots always get caught, or the scripter/bot makers steals account info. I have even heard of the bots being made to automatically dump their gathered resources/bank in to the script writers account (via a bot of is own).
Seriously, dont make Simba in to rsbot 2.0: extra shitty edition
2013-05-17 08:01:20
From: NKN
It's not Injection.
it's a reflection compliment. Only going to use for walking and such, get those nice 1,000 hour proggys like Ashaman
2013-05-17 08:12:44
From: luxrath
What makes simba attractive to me that it is NOT an injection bot. Injection bots always get caught, or the scripter/bot makers steals account info. I have even heard of the bots being made to automatically dump their gathered resources/bank in to the script writers account (via a bot of is own).
Seriously, dont make Simba in to rsbot 2.0: extra shitty edition
2013-05-17 12:52:21
From: luxrath
What makes simba attractive to me that it is NOT an injection bot. Injection bots always get caught, or the scripter/bot makers steals account info. I have even heard of the bots being made to automatically dump their gathered resources/bank in to the script writers account (via a bot of is own).
Seriously, dont make Simba in to rsbot 2.0: extra shitty edition
2013-05-17 13:55:38
From: Kevin
Shatter is right, there is no reason a current simba script can't do all this to you as well. The huge difference is how we're open-source and because of that, you can read the code and figure out if that's about to happen to you.
2013-05-17 14:09:50
From: luxrath
A big difference that you cant really deny between color and injection is that injection bots have an absolutely atrocious ban rate. And if you do reflection, as previously stated, Jagex will change the hooks in no time.
I still maintain that color is the way forward, and development should focus on refining colorbotting and making it more reliable. That and antiban.
2013-05-17 15:13:29
From: Kevin
I agree that other botting techniques tend to have higher ban rates… However, that's true for several reasons not entirely dependent on the botting technique.
1)Simba isn't as popular. You don't start your fight against bots by picking on the little guys, you knock out the big targets first and move your way down.
2)We have better antiban. By a longshot. It's crazy and there's no reason these other bots don't have it, but they don't. They rarely even have failsafes. I've watched Powerbot's "amazing" USlayer script and it's terrible. Seriously, there are almost no failsafes, it makes weird inhuman decisions all the time, it gets stuck in infinite loops, and it has no sense of breaks or messing around like real people do. And that's supposed to be one of their better scripts. I can barely believe their ban rates aren't even higher! (This is probably the biggest reason for our safety).
3)Injection does some weird things occasionally that just don't quite happen the same as what a real player even is capable of doing - but that doesn't affect reflection or color bots.
Jagex can easily change the hooks to stop reflection techniques. But we can also have automatic hook updaters and we won't even have to worry about Jagex trying to stop us with that.
All that said… We are a color community/bot. We will focus on color techniques, refining and reliability. It's where we will go simply because of who we are. But even with all that in mind, the 07 client is atrocious. Color does not and can not do nearly the same same things as far as walking is concerned. Any other aspect and I think color can handle it, but walking puts us at such a tremendous disadvantage, I support reflection for it. Noone is proposing an entire switch over to reflection, we just want reflection to cover the things color simply isn't quite capable of and even then leave it up to the individual developers for what they wish to do.
2013-05-17 20:59:48
2013-05-17 21:05:56
From: Flight
For the sake of not quoting large blocks of text I'll just say this: luxrath, you make great points and I'm fully in agreement with you for keeping a strong sense of security not matter what you're using, even Simba/SMART/SRL/scripts. I have absolute faith in all of the above but even then I encourage all users to look into these things, at least to get a fair understanding of them enough to know that they're safe.
And Kevin you explained it just right, nicely put mate.
It's not so much the client/bot that will get you banned, it's the scripts themselves, as Kevin pointed out. We're superior to the others because we've been doing this before they even knew RS existed. For years and years SRL has changed parallel with RS, we know what is safe and what's not, we can mimic an average player down to the finest details that you simply will never find in any other bot. We're smart about how stay under the radar and this is reflected in our includes and scripts. So it's not the bot that makes you detectable, it's how you use it.
@Haxz : We're at a stand-still at the moment as SMART, from what I can tell, does not yet have reflection fully implanted. I can't go much further myself so I'm waiting to see where Ben goes with this, if he continues or not. There's also always Brandon's work on his custom SMART that we could always work with. But while it's out of my control to move forward with reflection I'll still continue to work more with our available color-based walking methods, like SPS. At this point we can only advance in progress, we can never lose knowledge we have now so might as well try to make what we have better; keep building.
From: flight
this is reflected in our includes and scripts.
2013-05-17 21:45:06
From: Flight
For the sake of not quoting large blocks of text I'll just say this: luxrath, you make great points and I'm fully in agreement with you for keeping a strong sense of security not matter what you're using, even Simba/SMART/SRL/scripts. I have absolute faith in all of the above but even then I encourage all users to look into these things, at least to get a fair understanding of them enough to know that they're safe.
And Kevin you explained it just right, nicely put mate.
It's not so much the client/bot that will get you banned, it's the scripts themselves, as Kevin pointed out. We're superior to the others because we've been doing this before they even knew RS existed. For years and years SRL has changed parallel with RS, we know what is safe and what's not, we can mimic an average player down to the finest details that you simply will never find in any other bot. We're smart about how stay under the radar and this is reflected in our includes and scripts. So it's not the bot that makes you detectable, it's how you use it.
@Haxz : We're at a stand-still at the moment as SMART, from what I can tell, does not yet have reflection fully implanted. I can't go much further myself so I'm waiting to see where Ben goes with this, if he continues or not. There's also always Brandon's work on his custom SMART that we could always work with. But while it's out of my control to move forward with reflection I'll still continue to work more with our available color-based walking methods, like SPS. At this point we can only advance in progress, we can never lose knowledge we have now so might as well try to make what we have better; keep building.
2013-05-25 14:22:22
2013-05-25 17:13:34
2013-05-25 17:40:21
From: Itankbots
Ive never had trouble walking before, Only reason I would use reflection is for looting items that are in the same color background as the item.
2013-06-05 18:31:26
From: Flight
I'm just trying to understand it and get anything to work. :/ I'll worry about that later.
On a related note, I had to add return types to the reflection-related functions in SmartRemote.H. @BenLand100: Is there a reason why none of these functions returned anything? I changed them up to this, can you tell me if these are correct? (I edited these in the style of the reflection functions in the old SMART)
(char*)"exp_getFieldObject", (char*)"function SmartGetFieldObject(objref: integer; path: string): integer;",
(char*)"exp_isPathValid", (char*)"function SmartIsPathValid(objref: integer; path: string): boolean;",
(char*)"exp_getFieldBoolean", (char*)"function SmartGetFieldBoolean(objref: integer; path: string): boolean;",
(char*)"exp_getFieldLongH", (char*)"function SmartGetFieldLongH(objref: integer; path: string): integer;",
(char*)"exp_getFieldLongL", (char*)"function SmartGetFieldLongL(objref: integer; path: string): integer;",
(char*)"exp_getFieldInt", (char*)"function SmartGetFieldInt(objref: integer; path: string): integer;",
(char*)"exp_getFieldShort", (char*)"function SmartGetFieldShort(objref: integer; path: string): integer;",
(char*)"exp_getFieldFloat", (char*)"function SmartGetFieldFloat(objref: integer; path: string): extended;",
(char*)"exp_getFieldDouble", (char*)"function SmartGetFieldDouble(objref: integer; path: string): extended;",
(char*)"exp_getFieldByte", (char*)"function SmartGetFieldByte(objref: integer; path: string): string;",
I believe I was either wrong with those or wrong actually using the function as I get an error "Error: Could not call proc at line…". I tried these 3, perhaps you could point out where I'm going wrong at:
SmartGetFieldInt(-1, 'hw.client');
SmartGetFieldInt(0, 'hw.client');
SmartGetFieldInt(1, 'hw.client');
This is using your SMART 8.1 with the reflection backbone you added about a month ago, loaded in Oldschool RS. I believe that hook is correct but even if not it would be unrelated to my error.
Edit:
Ok now I have all of the hooks for the current OSR client revision. I did a lot of digging through some other client that hosted the most recent hooks on their site; they sure went through a lot of trouble to keep these hidden…
2013-06-05 23:25:14
extern "C" void* exp_getFieldObject(void* obj, char* path);
extern "C" bool exp_isPathValid(void* obj, char* path);
extern "C" bool exp_getFieldBoolean(void* obj, char* path);
extern "C" unsigned int exp_getFieldLongH(void* obj, char* path);
extern "C" unsigned int exp_getFieldLongL(void* obj, char* path);
extern "C" int exp_getFieldInt(void* obj, char* path);
extern "C" int exp_getFieldShort(void* obj, char* path);
extern "C" double exp_getFieldFloat(void* obj, char* path);
extern "C" double exp_getFieldDouble(void* obj, char* path);
extern "C" char exp_getFieldByte(void* obj, char* path);
(char*)"exp_getFieldObject", (char*)"function SmartGetFieldObject(objref: integer; path: string): Integer;",
(char*)"exp_isPathValid", (char*)"function SmartIsPathValid(objref: integer; path: string): boolean;",
(char*)"exp_getFieldBoolean", (char*)"function SmartGetFieldBoolean(objref: integer; path: string): boolean;",
(char*)"exp_getFieldLongH", (char*)"function SmartGetFieldLongH(objref: integer; path: string): Cardinal;",
(char*)"exp_getFieldLongL", (char*)"function SmartGetFieldLongL(objref: integer; path: string): Cardinal;",
(char*)"exp_getFieldInt", (char*)"function SmartGetFieldInt(objref: integer; path: string): Integer;",
(char*)"exp_getFieldShort", (char*)"function SmartGetFieldShort(objref: integer; path: string): Integer;",
(char*)"exp_getFieldFloat", (char*)"function SmartGetFieldFloat(objref: integer; path: string): Double;",
(char*)"exp_getFieldDouble", (char*)"function SmartGetFieldDouble(objref: integer; path: string): Double;",
(char*)"exp_getFieldByte", (char*)"function SmartGetFieldByte(objref: integer; path: string): char;"
EXPORTS
GetPluginABIVersion
GetFunctionCount
GetFunctionInfo
exp_clickMouse
exp_clickMousePlus
exp_getDebugArray
exp_getImageArray
exp_getMousePos
exp_getRefresh
exp_holdKey
exp_holdMouse
exp_holdMousePlus
exp_isActive
exp_isBlocking
exp_isKeyDown
exp_moveMouse
exp_releaseKey
exp_releaseMouse
exp_releaseMousePlus
exp_isMouseButtonHeld
exp_sendKeys
exp_setDebug
exp_setTransparentColor
exp_setGraphics
exp_setRefresh
exp_windMouse
exp_setEnabled
exp_pairClient
exp_killClient
exp_getCurrent
exp_spawnClient
exp_getClients
exp_clientID
exp_getFieldObject
exp_isPathValid
exp_getFieldBoolean
exp_getFieldLongH
exp_getFieldLongL
exp_getFieldInt
exp_getFieldShort
exp_getFieldFloat
exp_getFieldDouble
exp_getFieldByte
EIOS_RequestTarget=EIOS_RequestTarget@4
EIOS_ReleaseTarget=EIOS_ReleaseTarget@4
EIOS_GetTargetDimensions=EIOS_GetTargetDimensions@12
EIOS_GetImageBuffer=EIOS_GetImageBuffer@4
EIOS_UpdateImageBuffer=EIOS_UpdateImageBuffer@4
EIOS_GetMousePosition=EIOS_GetMousePosition@12
EIOS_MoveMouse=EIOS_MoveMouse@12
EIOS_HoldMouse=EIOS_HoldMouse@16
EIOS_ReleaseMouse=EIOS_ReleaseMouse@16
EIOS_IsMouseHeld=EIOS_IsMouseHeld@8
EIOS_SendString=EIOS_SendString@16
EIOS_HoldKey=EIOS_HoldKey@8
EIOS_ReleaseKey=EIOS_ReleaseKey@8
EIOS_IsKeyHeld=EIOS_IsKeyHeld@8
2013-06-06 01:32:59