Clarity
2014-11-04 17:06:12
Obviously SMART isn't being actively detected automatically. Anecdotal evidence suggests that they do detect it when they investigate accounts further (as a result of reports, botwatch flagging, whatever).
While ideally, we should never be autoflagged (that's dependent on script quality I guess), let's assume we are…
After discussion with some programming friends and reading of some forum posts, it seems that Jagex could be seeing SMART via either the USER_AGENT or the window title. Both are extreme giveaways, in that the window title is "SMART etc etc" and the user agent is a very outdated and unused version of Firefox that literally everyone using SMART mysteriously switches to from normal versions when they do botlike activities.
Currently this is what is in the SMART source:
I went to What's My User Agent? to get my user agent string while using my current browser and replaced it in SMART's source. Changed the title as well:
Also modified user_agent and titles everywhere else it was used in the source.
Questions
Like this (credit Obscurity):
While ideally, we should never be autoflagged (that's dependent on script quality I guess), let's assume we are…
After discussion with some programming friends and reading of some forum posts, it seems that Jagex could be seeing SMART via either the USER_AGENT or the window title. Both are extreme giveaways, in that the window title is "SMART etc etc" and the user agent is a very outdated and unused version of Firefox that literally everyone using SMART mysteriously switches to from normal versions when they do botlike activities.
Currently this is what is in the SMART source:
public static final String VERSION = "8.3";
public static final String TITLE = "SMARTv" + VERSION + " - SMART Minimizing Autoing Resource Thing - By BenLand100";
public static final String USER_AGENT; //default for an (old) firefox version is set below
static {
String osname = System.getProperty("os.name");
String windowing = "X11";
if (osname.contains("Windows")) windowing = "Windows";
else if (osname.contains("Mac")) windowing = "Macintosh";
USER_AGENT = "Mozilla/5.0 (" + windowing + "; U; " + osname + " " + System.getProperty("os.version") + "; " + Locale.getDefault().getLanguage()+"-"+Locale.getDefault().getCountry()+"; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10";
}
I went to What's My User Agent? to get my user agent string while using my current browser and replaced it in SMART's source. Changed the title as well:
public static final String TITLE = "RuneScape - MMORPG - The No.1 Free Online Multiplayer Game - Mozilla Firefox";
public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0";
Also modified user_agent and titles everywhere else it was used in the source.
Questions
- Will this help us? Or does this accomplish nothing and the problem goes far beyond this? I don't know much about the software aspect of antiban. I do know that Jagex can only detect so much until they start breaching our computer privacy, so if we can cover our bases up until that point, we should be OK?
- Could they be tracking all the user agents associated with an account? Would this be stored in our own jagexcache or on their servers?
- Can we change SMART's source to spoof a variety of user agents, and specify which one we want it to select?
Like this (credit Obscurity):
gameClients:[
{
name:'FireFox',
versions:['32.0.3','32.0.2','32.0.1'] //~ Etc
}
{
name:'Chrome Webkit',
versions:['40.0.2202.3','40.0.2402.3'] //~ Etc
}
//~ Etc
]


