SRL Archive - Java Help and Tutorials

Help on java obfuscating?


Camaro'

2010-12-10 17:17:12

I can't seem to get proguard to obfuscate my program completely, it misses most of the file :(

http://proguard.sourceforge.net/

I am obfuscating my file because I'm selling a RSBot script and don't want people reverse engineering it.

Any help is appreciated .. :(

mastaraymond

2010-12-10 17:34:45

Obfuscating is so overrated.

Camaro'

2010-12-10 17:36:13

From: mastaraymond
Obfuscating is so overrated.


I know, but then people are going to remove my auth system :(

lordsaturn

2010-12-10 17:39:16

have a auth check in every single funct in the script? or have the script query your server for commands it needs to run

MylesMadness

2010-12-10 17:41:56

Trust me, if I've learned anything in the last month, its that no amount of obfuscating will keep people from cracking java scripts.

Troll

2010-12-10 17:47:21

Why dont you make it go to a sever for ID's and the sever checks a auth code for it to work if what eveyone else is saying about it being a waste is ture?

Shuttleu

2010-12-10 17:52:07

From: lordsaturn
have the script query your server for commands it needs to run

i think this would be a good idea

~shut

Train

2010-12-10 18:09:04

Await for http://scripts.powerbot.org/ to come out.

Camaro'

2010-12-10 20:44:41

From: lordsaturn
have a auth check in every single funct in the script? or have the script query your server for commands it needs to run


What would stop the user from removing either of those from the script?

I have a list of mac addresses on my server that are allowed to run the script, and the script checks to see if your mac address is on that list, and if it is not the script won't run. The problem is people are going to remove it.

TomTuff

2010-12-10 20:55:25

what saturn says. It's what robotz in disguise does, and they can't be cracked (or at least haven't been yet afaik).

TRiLeZ

2010-12-10 21:36:17

This is what I'm gonna do for my for my paid-for scripts:
  • Make a loader to load the actual script jar from your website, using custom request properties, which the server will check
  • Make your server give the loader the url to the script jar, using custom request properties
  • Make every method verify it's legit
  • Use reflection to call methods, and make the script get the method names from the server
  • Edit: Also use it to get/put fields, and make the script get the field names from the server


WIN.

Camaro'

2010-12-10 21:47:47

I'll try that, thanks for everyones posts.

mastaraymond

2010-12-11 07:30:08

From: TRiLeZ
This is what I'm gonna do for my for my paid-for scripts:
  • Make a loader to load the actual script jar from your website, using custom request properties, which the server will check
  • Make your server give the loader the url to the script jar, using custom request properties
  • Make every method verify it's legit
  • Use reflection to call methods, and make the script get the method names from the server
  • Edit: Also use it to get/put fields, and make the script get the field names from the server


WIN.

Still easily crackable? Just check the the data java sends to your server..

So that means you'll have to use HTTPS or something for the data connection, but even that is probably crackable.

I can only say; if people are foolish enough to buy a RSBot script they wouldn't know a thing about Java and therefore probably don't crack it.. And if they do, there are still thousand of other RSBot users around who don't have access to the cracked version.

lordsaturn

2010-12-11 08:10:55

Just do what jagex does and release updates with scrambled code every hour.

Nadeem

2010-12-11 12:28:22

From: TRiLeZ
This is what I'm gonna do for my for my paid-for scripts:
  • Make a loader to load the actual script jar from your website, using custom request properties, which the server will check
  • Make your server give the loader the url to the script jar, using custom request properties
  • Make every method verify it's legit
  • Use reflection to call methods, and make the script get the method names from the server
  • Edit: Also use it to get/put fields, and make the script get the field names from the server


WIN.


I could only imagine how slow your script would be lol

best would be to just write your script as hard to understand possible..that should filter out the noobs ;)


~NS

TRiLeZ

2010-12-11 15:49:09

From: mastaraymond
Still easily crackable? Just check the the data java sends to your server..

So that means you'll have to use HTTPS or something for the data connection, but even that is probably crackable.

I can only say; if people are foolish enough to buy a RSBot script they wouldn't know a thing about Java and therefore probably don't crack it.. And if they do, there are still thousand of other RSBot users around who don't have access to the cracked version.


Java will always be crackable, but this will make it hard for people to crack, especially if the script is obfuscated. If it were to be obfuscated, you wouldn't be able to compile a decompiled version, before deobfucating it, so someone's best bet would be to use bytecode to change stuff up. However, you could make the script/loader check the jar's hashcode to verify it hasn't been modified, same thing with the loader jar. You could also change up all of the method / variable names everytime you update the script.

From: Nadeem
I could only imagine how slow your script would be lol

best would be to just write your script as hard to understand possible..that should filter out the noobs ;)


~NS


Once one thing is loaded from the server, you won't be needing to load it again.