Jump to content
Sign in to follow this  
mmavipc

SQF Encryptor

Recommended Posts

This does not make any sense just say don't take credit and if they do you can tell them to put your name up. It is so easy to get the code even if you try to hide it. Good Luck though,

Share this post


Link to post
Share on other sites

We should now do what this community always does in this instance - Engage in analogies that do nothing to make the original point clearer! :)

Share this post


Link to post
Share on other sites

No offense, but I hope this goes nowhere. Your a clever guy. You want keep what your missions and scripts for yourself. There's nothing wrong with that, of course if everyone thought that way, then this community wouldn't be nearly as big and enjoyable as it is. Sharing code and knowledge is the basis of it's success.:(

Share this post


Link to post
Share on other sites

I can say that the primary reason here was to ensure that individuals were not getting the mission and using it ahead of doing a qualification test. This was done for Military Gaming and the OP happens to be a young lad who is a member of our Development Team.

Yes people could crack it as Nou pointed out, however the majority of users out there would not even know where to start or would even consider taking the time. Even if they did the time they spend probably really wouldn't even be worth it since that in itself still does not actually get them a pass on the qualification.

Share this post


Link to post
Share on other sites
I can say that the primary reason here was to ensure that individuals were not getting the mission and using it ahead of doing a qualification test. This was done for Military Gaming and the OP happens to be a young lad who is a member of our Development Team.

So the point is to prevent participants from getting a hold of the map ahead of time. Yet...

If they did the time they spend probably really wouldn't even be worth it since that in itself still does not actually get them a pass on the qualification.

Then why would it matter if they got a hold of the map if it wouldn't help them pass some exam or w/e?

In regards to the tool itself:

1. It's neat

2. It's not full proof (trust me if I wanted to see how the mission worked, I could)

3. I see no reason for bashing this tool. It's been done in the past several times (unsuccessfully).

Anyone remember Zaphod? The guy is a coding/scripting genius, and he couldn't even make this sort of thing work. << (use that for ammo, maybe you can get it to be fullproof) :cool:

Share this post


Link to post
Share on other sites

Oh my, so much negativism on this thread.

Please just let people release their work at will, if you like it, you use it, if you don't, well...

I wonder what's gonna happen when Java starts to be utilized...Will you just say the same when you will not be able to check the source files? Should Java also get "nowhere"?

Share this post


Link to post
Share on other sites

I think kju was dead-on that if you really would like to protect access or sharing, you're left to doing the relevant things server-side only, in a server-side-addon.

Some of this could then still be reverse engineered if someone is able to execute code on his client that for instances exposes a script console,

but you can make this quite unfeasable if you do not leave references to variable names and such in your mission code.

Personally, I don't think there's anything wrong with protecting certain cases for specific reasons. OTOH I do agree that the community wouldn't be where it is today, if that were the case for everything.

Oh my, so much negativism on this thread.

Please just let people release their work at will, if you like it, you use it, if you don't, well...

I wonder what's gonna happen when Java starts to be utilized...Will you just say the same when you will not be able to check the source files? Should Java also get "nowhere"?

Java, just like .NET, compiles to bytecode and is basically in all cases reverse enginerable to usable source, minus comments.

At best it can be obfuscated and made harder in the process.

AFAIK only when compiling to native code, do things get much harder, but compiling to native code makes the binary not portable, one of the strengths of these languages,

amongst loosing other of such flexibilities.

Edited by Sickboy

Share this post


Link to post
Share on other sites

WTF is wrong with the haters? There is nothing wrong with encryption. What some people dont get is that sharing small scripts and helping others with scripting problems is a good thing. But having something very large that you spent weeks or months coding ripped and re-used is not a good thing. Anyone who babbles this shit about people wanting to protect their hard work should really try to think from someone else's perspective. It is easy to say that sharing is fun and nice if you are the one receiving free stuff. But wait until you code something a few thousand lines of code worth and then have it copied, taken apart and therefore ruined its success, because your work is scattered and diluted in quality.

Point is, always free sharing no matter what is not always a good thing. Hard work should be rewarded which is achieved by having complete control over your work and gathering a large playerbase in this case. Most mission/addon makers, while doing the work for free in a monetary sense, do not do it for free in the sense of the work getting attention. So the guy who made the stuff GETS TO BATH IN THE GLORY IT BRINGS.

Imagine badass modders like gnat having his models ripped and re-used with hello kitty textures or sickboy having the source code of SIX stolen and then many derivates of it popping up, being turned into porn downloading torrent programs? They would probably track you down and bitch slap you so hard that you will get knocked out and the last thought before you hit the floor with be _THIS SELECT 0.

So I am done ranting, if anyone wonders, coding dialog menus in OA for a week does that to your temper.

you're left to doing the relevant things server-side only, in a server-side-addon.

Could you elaborate on this? I not very experienced with addon scripting. How would you increase dependency on server addons? Have functions that are called from an addon that is only on the server? Or is it keeping parts of the mission scripts exclusively on the server, by preventing scripts from the mission file to be sent to the client?

Edited by alleycat

Share this post


Link to post
Share on other sites

Could you elaborate on this? I not very experienced with addon scripting. How would you increase dependency on server addons? Have functions that are called from an addon that is only on the server? Or is it keeping parts of the mission scripts exclusively on the server, by preventing scripts from the mission file to be sent to the client?

You keep parts of the mission on the actual server itself within the pbo. The client doesn't need to know about server-side stuff, so it wouldn't affect your mission if it was designed as such.

Basically the easiest way to "protect" your SQF is to obfuscate the variable/method/etc names and remove comments before releasing publicly. This is how we do it at work as well. When the compiled code is distributed to clients, the compiler will not compile comments anyways (that's how it always is), but we obfuscate all the names first. If you want an example of this, download minecraft and decompile any class. You will see they have variable/method/class names like AAA or AAB.

The best form of security in programming is to try to deter the person from properly reverse-engineering it, it's not to prevent them from stealing your code as that is IMPOSSIBLE. If a human wrote the code, a human can always reverse-engineer it.

PS: I personally don't do anything to prevent people from looking at my scripting. I learned off of other people's work, so I would never prevent people from learning off of mine. If I've written something that I don't want publicly released, I'll keep it server-side and not include it in the actual mission.

Share this post


Link to post
Share on other sites
You keep parts of the mission on the actual server itself within the pbo. The client doesn't need to know about server-side stuff, so it wouldn't affect your mission if it was designed as such.

I dont get it, isnt a mission always a packed pbo that is sent to the client when he connects?

Share this post


Link to post
Share on other sites
I dont get it, isnt a mission always a packed pbo that is sent to the client when he connects?

Yes, but not all scripts in a mission need to be run on the client, so the server-side scripts don't necessarily need to be contained in the mission pbo file. Anything that only happens on the server can be kept in a separate addon file and executed from there.

Share this post


Link to post
Share on other sites

But how to access these scripts? Assuming they have to be in the addons folder and not in the mission folder?

Share this post


Link to post
Share on other sites
But how to access these scripts? Assuming they have to be in the addons folder and not in the mission folder?

You just need to know the full path to the script (inside the addon). Also, make sure only to call it on the server (because the client won't have it, obviously).

For example:

if (isServer) then {
 [] execVM "\MySecretAddon\scripts\serverStuff.sqf";
};

Share this post


Link to post
Share on other sites

That is very useful, thanks!

btw can I simply pbo-pack my script and load it within a @folder or does it need its own cpp?

Share this post


Link to post
Share on other sites
I learned off of other people's work, so I would never prevent people from learning off of mine.

This.

I'm same.

So if you learnt off others and their scripts, you have little right to go hoarding your own variations.

@alleycat

No need for a CPP. A pbo can be just full of scripts

Share this post


Link to post
Share on other sites

It doesn't even need to be a PBO, you can execute scripts placed in the game's directory (or any subdirectory) as well.

Share this post


Link to post
Share on other sites

And it's easy for it to have client side code contained on the server. This also minimizes the amount of code needing to be ran by the client on mission startup (as PVs are loaded before the init).

if (isServer) then
{
my_fnc = compile preProcessFile "\server_mission_file\fnc_something.sqf";
publicVariable "my_fnc";
// my_fnc can now be called by clients
};

waitUntil {!isNil "my_fnc"};
[] spawn my_fnc;

Share this post


Link to post
Share on other sites
This.

I'm same.

So if you learnt off others and their scripts, you have little right to go hoarding your own variations.

I get what you mean, but let me explain something. Lets take the models you created. If someone would decompile them to look at them int a modeling program to find out how properly model complex things that would be ok I guess, someone trying to learn from your work. But if he rips the models and repackages them as his own you would certainly not like it. Even worse if he puts them into a mod that becomes very successful and even more worse if that success is relied on the models you made. That would be someone else profiting off your work. Now lets translate this to programming. Looking at someones scripts to learn how to do stuff is ok, copying and re-using is not. Unless the author allows it. The issue with coding is that it is far easier to copy stuff and get away with it than copying models because it takes a lot more effort to cover your tracks when stealing models.

And there is a huge gap between relying on help for some snippet and 100% depending on outside help.

Share this post


Link to post
Share on other sites

In my opinion this is not the correct way of thinking. The implication that someone would steal your code and somehow profit from it in Arma is ridiculous. By doing this you are going to be restricting new comers from learning how to code in this game. That's how I started, I would look at code from others missions and see how it works; I'd put hints in to tell me when its doing something and when I start to understand it I MAKE MY OWN code to use. Without the reference material I would never have learned how to code in Arma.

Think of it this way, a new player comes in and is amazed by the content that he is playing in Arma; this inspires him to make his own mission. But sadly he does not know how to code in this game. So he finds some DPBOing software and decides to rip open his favorite mission. But when he looks inside he just sees encrypted .sqf files. He is shocked, shocked to see that a community is so paranoid about people stealing their work that they resort to encrypting their files.

Arma has always been built around a open and helpful community, this community has caused Arma to thrive and without it, Arma would not be where it is today. I have nothing against the author of this thread or those that support him, but the thought of stealing in such a strong community is absurd and in some ways could be seen as insulting.

I know that it would be wrong to ask the author to stop his work, but what I will ask is that this won't escalate to the point where new players will leave the community.

Thanks for reading,

-Bigshot

Share this post


Link to post
Share on other sites
In my opinion this is not the correct way of thinking. The implication that someone would steal your code and somehow profit from it in Arma is ridiculous. By doing this you are going to be restricting new comers from learning how to code in this game. That's how I started, I would look at code from others missions and see how it works; I'd put hints in to tell me when its doing something and when I start to understand it I MAKE MY OWN code to use. Without the reference material I would never have learned how to code in Arma.

Agree. Yes there's some times where protection is "legit" (only referring to scripting/configs) but in general where would YOU be without having the chance of studying other peoples code(bis code)?

I must admit (shamefully) that i've looked into bis pbo's to learn how things done :butbut:

Share this post


Link to post
Share on other sites

Encrypt all you like but I will not use it or play it - against my philosophy. Everything I make is for the pure enjoyment of others and the good of the game, look at it, rip it, copy it, make better or worse versions, don't credit me and put your own name on it if you wish - I don't care lol.

Share this post


Link to post
Share on other sites

^ This.

I seriously don't give a damn if people use stuff I made. I won't, as a principle, rip off stuff from somebody else, unless it was clearly stated that I could when released, and make sure I put in the right credits when I use it. But if people use some of my stuff, well, good for them (or not)! Happy to have contributed to something, and I don't feel the need to see my name in big letters on everybody's screen. If they do credit, it shows respect, if they don't. Well, they need to learn some manners, is all. Seeing that most of the people in here are respectful and all that regarding this, I don't see the point in depriving everybody from your results just cause you're scared somebody might "forget" to mention your work.

Share this post


Link to post
Share on other sites

There's different aspects of this. THIS PART of the ArmA community is all about sharing, but at the same time, other people abuse that. Look at wasteland for example. I can probably count on ONE hand how many of those servers actually credit TAW_Tonic or bobtom(Craig), and they have made 90% of the mission! I agree with sharing, I agree with sharing with my peers, people who understand what it's like to sit for a desk for hours upon days upon months, working on a project that your 2 sole purposes are for you to enjoy and for others to enjoy. How do you get enjoyment out of your work when someone who doesn't understand let alone even respect this process comes by and rips it off? Removes your name, and literally, by definition, steals it. Those who say they don't care if someone steals from them, good for you, that makes you bigger people, it really does, but to be honest, In real life would you not care if someone stole your car? Would you not care if someone stole a couple bucks from you? I'm pretty sure each and everyone of us would, so what is the difference with the hard work we put into arma? If someone stole some of my code, didn't even care to mention my name, and made everyone else think he made it, I'd have a lot more to say then "I don't care". Again, I'm more than willing to give out every single line of code I've ever written to any of the people that come on this section of the forums on a daily-bidaily basis, but I'm kind of hesitant to let some person, who doesn't respect the fact that I took time making something, come by and steal what I worked so hard on.

My 2 cents.

Share this post


Link to post
Share on other sites

It depends how much value you actually place on the product of your hobby. I've always been the same - I hand out lures, flies, bait and hooks when I'm fishing. I don't ask anything in return because I enjoy making them and it takes a lot of time. I don't expect anyone to sing my praises or tell anyone they only caught a fish because they were using my patterns. So why should I here? If it keeps the game going we should hand out everything we make. One day BIS could close - then what will you do with your precious scripts and models? It will not last forever, nothing ever does. Share the fun and keep the game alive?

Edited by Mattar_Tharkari

Share this post


Link to post
Share on other sites
There's different aspects of this. THIS PART of the ArmA community is all about sharing, but at the same time, other people abuse that. Look at wasteland for example. I can probably count on ONE hand how many of those servers actually credit TAW_Tonic or bobtom(Craig), and they have made 90% of the mission! I agree with sharing, I agree with sharing with my peers, people who understand what it's like to sit for a desk for hours upon days upon months, working on a project that your 2 sole purposes are for you to enjoy and for others to enjoy. How do you get enjoyment out of your work when someone who doesn't understand let alone even respect this process comes by and rips it off? Removes your name, and literally, by definition, steals it. Those who say they don't care if someone steals from them, good for you, that makes you bigger people, it really does, but to be honest, In real life would you not care if someone stole your car? Would you not care if someone stole a couple bucks from you? I'm pretty sure each and everyone of us would, so what is the difference with the hard work we put into arma? If someone stole some of my code, didn't even care to mention my name, and made everyone else think he made it, I'd have a lot more to say then "I don't care". Again, I'm more than willing to give out every single line of code I've ever written to any of the people that come on this section of the forums on a daily-bidaily basis, but I'm kind of hesitant to let some person, who doesn't respect the fact that I took time making something, come by and steal what I worked so hard on.

My 2 cents.

You just hit the nail on the head, with that post.

I also would like to add, most of these people that are editing Wasteland, and other various popular missions, are new the series & community. Mostly from the jump in numbers from a mod which I don't like to mention here that gained ArmA millions of players within past year. Than they got bored of that said mod, and moved to find something else. Saw the chance to run a server and get numbers, and took it. Than took missions, learned some little basic facts, asked questions, edited the mission and for one DON'T EVEN know who made it first, nor bother to give credit because they don't know this great community. Nor know how things like to work around here. That is just down right disgusting. It'd be classified as plagiarism in the real world, or copyright infringement. Bet you 10 bucks they don't do that on college papers with all the tech schools have now that scan for plagiarism.

In general, I am like the many others who may not know it all. I have written a handful of coding/scripts with ArmA IMHO. But the ones I have, have been from learning and going off others in this fantastic community that have shared their knowledge with others, and allow others to learn from their work & in cases, use their code freely. That is why we have such advanced missions we have now. From learning from others, adapting and expanding. We wouldn't have all these fancy dancy missions we have now without this principle of sharing. I credit every single person that I even remotely read , helped me , learned, or used their script. It's only fair. I allow anyone to use my crappy low level scripts if they want. Why? Because that is how people learn. It's how we grow stronger and better as a community. That right there is why I have a very strong addiction to ArmA editing. Because everyone is so helpful to help others learn, grow and get better at what they want to achieve.

Most people I know here, like to de-PBO missions before they play them, to learn how the maker made the mission, how they implemented certain things, learn from it (BUT NOT STEAL), so they can get better themselves as a mission maker, or just to learn something new everyday. Without that thinking, I don't think we be were we are at now with how missions have become. We'd be far back in the timeline. If everyone locked down their code, than people would be forced to steal to learn. Guides help, but seeing how things are done hands on, is the best way of learning for most people in this world.

That said, and going a tad off topic with this discussion. But I don't really think OP is going in the right direction with this. But I respect what he wants to do, and why he wants too. But if you don't want people to use your scripts, than do what ST does. Anyone that leaks anything, gets blacklisted and bared from the group, and their name will now be in the community as a person to watch out for. Plus in the kindest regards, I am sure not everything in your mission is hand made by you alone. Meaning: You learned from others, read other scripts, used something from another script, asked for help, etc etc. What gives you the right to lock down something that you learned from others, that helped you make a mission? None IMHO. <- that is of course if you LEARNED or USED absolutely nothing from anyone else within the community, but I doubt it.

Edited by KilrBe3

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×