Mr_X wrote:
I just read this topic, and I don't get it
It's about hiding Scipts and stuff. what does that have to do with hackers?
It doesn't. He's just calling people who remix hackers.
Offline
To make a sprite 99% anti-hacking:
<<Create and select the sprite>>
1. Click the new sprite button.
2. Move the window that appears.
3. Click the new sprite button again.
4. Ignore the error sound
5. Click cancel in the window.
6. Double click the white square in the middle of the screen.
<<Change the GFX to make it hard to find should it ever be found with a 'goto' block>>
7. Change the original 8x8 sprite into a 1x1 white pixel (to make it extremely hard to click)
8. Make another sprite and make sure it's big and flashy (I used a simple black square)
9. Name sprite 'Stage'
<<Put in the cyber-barriers>>
10. Put script in and put a 'switch to costume (whatever you named the pixel sprite)' block
11. Make script in hidden sprite which requires a password in order to switch from the pixel to the block
Fin.
Credit to 'Lucario621' (password idea) and 'The Whiz' (sprite creation idea)
Last edited by Peninsular (2010-03-22 07:47:21)
Offline
Peninsular wrote:
To make a sprite 99% anti-hacking:
<<Create and select the sprite>>
1. Click the new sprite button.
2. Move the window that appears.
3. Click the new sprite button again.
4. Ignore the error sound
5. Click cancel in the window.
6. Double click the white square in the middle of the screen.
<<Change the GFX to make it hard to find should it ever be found with a 'goto' block>>
7. Change the original 8x8 sprite into a 1x1 white pixel (to make it extremely hard to click)
8. Make another sprite and make sure it's big and flashy (I used a simple black square)
9. Name sprite 'Stage'
<<Put in the cyber-barriers>>
10. Put script in and put a 'switch to costume (whatever you named the pixel sprite)' block
11. Make script in hidden sprite which requires a password in order to switch from the pixel to the block
Fin.![]()
Credit to 'Lucario621' (password idea) and 'The Whiz' (sprite creation idea)
I have found a way around this already... sadly
Just save a local copy and reopen it. No more hidden sprites (You can select them from the sprite library)
Offline
Hackers, as if you needed more tips...
Shift-click the "File" Scratch menu. Click "Write Project Summary". Save the text file somewhere you can find it. Then, open up notepad (or some other simple word processing program) and open the file. It should show a "summary" of the entire project and all its blocks and sprites. Using this you can get a better idea about what the project is all about.
Offline
Chrischb wrote:
Ouchie...
![]()
Ouch Charlie... OOOUCH!
Charlie, that really hurt.
--
Sorry, I had too.
I use project summaries all the time.
I think it could be used to prevent theft of projects. Upon upload, it could compare the summaries, and if no difference is found in the scripts, it gives the "upload failed, unknown reason" warning.
"Unknown Reason" because if the thieves know the reason, they could just add a random block to trick the filter.
Offline
We need an obfuscator, to jumble up variable and list names. *That's* the one and only protection.
Offline
Chrischb wrote:
You just gave it away.
![]()
I like that, but it's a bit mean...![]()
Mean? Are you kidding me? Its the best, and probably the only good way to prevent project stealing!
Offline
illusionist wrote:
Chrischb wrote:
You just gave it away.
![]()
I like that, but it's a bit mean...![]()
Mean? Are you kidding me? Its the best, and probably the only good way to prevent project stealing!
![]()
Unless they invent a way to send electric charges through the internet to your input devices when you try to steal a project
Offline
I'm surprised no one's brought up the "import project" trick for showing hidden sprites easily.
Just open a blank project and go to File > import project. Find the project with hidden sprites. When it imports, every sprite will show up at the bottom.
Offline
hmnwilson wrote:
I'm surprised no one's brought up the "import project" trick for showing hidden sprites easily.
Just open a blank project and go to File > import project. Find the project with hidden sprites. When it imports, every sprite will show up at the bottom.![]()
It's another way to do it, but most users find it easier just to save the project and open it again.
Offline
"We need an obfuscator, to jumble up variable and list names. *That's* the one and only protection."
I take it no one found that praticle or liked my idea?
Offline
The method of making hidden sprites was amazing!!! I can finally avoid these stupids who don't play the gmae but steal the passwords! HERE THAT HACKERS!!! By the way, how do you put animations in these posts?
Offline
Are you referring to hmnwilson's signature? That's a gif - you can make your own and upload it or find one from somewhere.
Offline
Jrocket97 wrote:
The method of making hidden sprites was amazing!!! I can finally avoid these stupids who don't play the gmae but steal the passwords! HERE THAT HACKERS!!! By the way, how do you put animations in these posts?
Um.... I cracked that one a LONG time again.
Offline
Chrischb wrote:
There have been lots and lots of people who support the Locking Downloads button.
There have also been lots and lots of people who disagree and support remixing.
There has been a decision that the button shall be avoided.
....................................
Yes, you may hate hackers ruining your projects. Well, here's the guide to make your projects confusing!
But because this ruins remixing, we have decided to split this into two parts. The first one tells you how to help your project.
And the second one tells you how to unravel the scripts.
That way, we don't discourage remixing!
We shall now go through the tips... in a series of chapters as usual.
-Contents-
Part One: The side of the protector.
1. Hide your scripts.
2. Disguising your blocks.
3. Defense.
4. Epilogue: Can your projects be truly impregnable?
5. Tips from the protectors.
Part Two: The side of the hacker.
1. Bring out the hidden scripts!
2. Uncovering disguises.
3. Attack.
4. Epilogue: Why hack into projects?
5. Tips from the hackers.
Note: We shall use the term "hacker" instead of "remixer" to make it more exciting.
.........................................................................................................................
Part One: The side of the protector
-Chapter One-
-Hiding your scripts-
This is the key element to making your projects undestructable (well, unless all the scripts are deleted...). There are easy and hard ways to do it, and we'll start with the easiest.
• To easily hide a script, place it far away to the right. And remember this: Do not use the Cleanup feature. Your script will be transported back to the left side.
Sure, lazy hackers will probably fail to find it, but it needs something more.
Let's step it up a bit.
• To help hide a script in the distance, find a script that does something along these lines:if condition and condition and condition and condition and...
If so, brilliant! Find a way to squeeze your script in (it should be easy, because the set of "and"'s or "or"'s will have inreased in height), and then you're done! And once again, don't use the cleanup feature.
You may think that it's good enough, but the next bullet shall list going to the point of lunacy.
• Create a bunch of dummy scripts and treat them like normal ones. Hide your scripts behind them, and they won't be suspected - after all, that perfectly normal script can't be hiding something, right?
Note: For help on creating dummy scripts, try this:
* Start it with a broadcast that never gets broadcasted.
* Split a script in half and in-efficiently create two scripts. Use the taller one to hide something.
* Or, if you don't like the idea of extra scripts, simply find a way to cram it into a perfectly normal one. Be careful, though.
* Or, if you don't like the idea of cramming, you can simply create a 1-sprite-1-scripter and use that. Nobody will bother to read it all.
* Or, if you don't like the idea of 1-sprite-1-scripters, you can simply use BYOB to somehow do what you want.
Tricky, right?
* Or, you can make a 1-sprite-1-scripter and ruin by adding dummy sprites and scripts.
-Chapter Two-
-Disguising your scripts
Disguising is another element in the war against hackers. It can sometimes be far more effective than hiding, and may be easier as well.
However, disguising works better on blocks rather than scripts. Here are some good examples:
A programmer wants to hide the variable "Score" to avoid it being changed.
Here's what he can do:
• Name it "Xtracker" or something like that.
• Hide it as an item in a list.
• Use the variable "Score" anyway and hide the script (hackers may create their own scripts, unfortunately. See chapter three).
Now we'll look at it in detail.
• Name it "Xtracker" or something like that.
Well, it's a start. The more dull and complex the name is, the less the likelihood is that a hacker will check it (unless it's so complex that it's inviting). "XVelocity" or "Gravity_swing" may put them off as well.
A variable works the same as all other variables. The only differences are the names and the way they are put to use. Therefore, it may be difficult.
• Hide it as an item in a list.
Ooh, tricky. The more items in a list, the better. And if the hidden identity bears some resemblance to the other items, you are on your way to success.
If you can, make the variable content similar. If you are in despair, create a dummy list (give it a convincing name and maybe some dummy scripts to go with it) and a bunch of dummy items.
• Use the variable "Score" anyway and hide the script.
Hmm... the problem is that a hacker can simply create a script of their own to fight your scripts.
For example, they could create:
When Space key Pressed
set score to 9999999999999999999999999999
Not good. You need defense! Skip to chapter three if you're in a hurry (which has some good defense tactics), or read the good bits about this.
The use of the variable may lull the hacker into a false sense of security, but will slap him in the face if the variable "Score" is really a dummy variable with dummy scripts to go with it. Ugh. To best thing to do here is try a large variety of tactics, and see what you get.
-Chapter Three-
-Defense-
Despite your best efforts, a hacker may still navigate through your maze and find a way to wreck harm. Therefore, you need one of the keys to success - defense!
Defense can be as simple as a forever with a variable or a bunch of dummies put in a large formation. Even larger still would be to create a project and hide another in it!
But we need to show some simple tactics.
As mentioned before, a hacker can simply create a script that sets the score to a large amount. Well, the power of the forever block comes at hand.
When Space key Pressed
set score to 9999999
When Green Flag Clicked
forever
set score to (correct score)
endforever
The hacker's script will only temporarily change the variable. Yours, fortunately, will continuously set the variable to the correct amount.
Yes, it requires another variable to do the work, but what's another variable? Treat it the same way as you would with the original score variable.
Another method of defense will be demonstrated below.
For non-scrolling platformers:
Perhaps you need a character to reach a gate. Maybe a door. Well, the hackers can always give it a script that will change its X and Y accordingly. Ugh!
A forever will do no good, because it will have reached the target (however quickly. One odd method is to give it a script that forces it to stay at the target for a certain amount of time; that will work.
Without that, you could try giving it other obstacles in the game. Maybe a lever.
But whatever it is, do anything. Defense is very complicated, and cannot be written well as a set of instructions.
Now for the epilogue!
-Epilogue-
-Can your projects be truly impregnable?-
Despite every single bit of effort you have thrown it, it will always be possible to beat the defense system. Fortunately, you can irritate the hacker by making him spend days at the computer; maybe he would give up and leave. But some may treat it as a game, and persist. How irritating.
But Scratch is built to support remixing, and it's a good thing that people can edit your projects. What is bad is false credit over projects, but usually people step in and do something to help out.
What we suggest it only trying it as a challenge, or a challenge for someone else - enjoy your scripting, and leave it to the hackers.
-Tips from the protectors-The-Whiz wrote:
There is a way to make your projects almost impregnable. Here it is:
1. Click the new sprite button.
2. Move the window that appears.
3. Click the new sprite button again.
4. Click cancel in the window.
5. Double click the white square in the middle of the screen.
6. It's there, but it doesn't appear in the sprites box.shadow_7283 wrote:
Or, you can open up the paint window, right click, select grab screen region for new sprite, and then press OK. The sprite is there but hidden, and then you can double click on it and script to your heart's content.
Lucario621 wrote:
Yeah this is really THE BEST WAY. Its THE MOST IMPREGENABLE way. You make a hidden sprite. Before you make the main scripts, make sure that theres a script, with hidden letters you have to press, to make the sprite visible, so you can edit the scripts. In addition, use that sprite to also make a password. Because the sprite is hidden, you can't find out what the password is. Only a few people know how to find out, by hacking squeak.
16Skittles wrote:
here's a nearly 100% foolproof way to hide passwords.
1. follow The-Whiz's instructions
2. make a white and black background. name the black bk and white wh.
3. make script on stage:
when green flag clicked
forever
set background to variable:BG
4. make this scriot on secret sprite:
when x pressed (you can use random letters)
set bg to black
show
(and the same for set bg to wh and hide)
there you go!
the white square will only show on black, but if the person clicks the black BG, the sprite would show without the hide block. also put the sprite in a corner spot so it wouldn't be noticed.
Remixes are good but codes are better kept secret.rubiks_cube_guy238 wrote:
If you want to make a almost 100% hidden sprite, you need to add 2 'for this sprite only' variables called 'x position' and 'y position'. Now set those variables both to 'n/a'. This way, if someone tries to use the attribute block ([x position] of [hidden sprite]) to locate the hidden sprite, they won't find it. Don't ask me why it works because it's sorta complicated, but point is, it works!
filo5 wrote:
If your project has lots of sprites, you don't have to bother with hiding them all. Just spread the thing among the sprites. Let's make a huge stockpile of broadcasts, some of them fake, which do all the communication with scripts. Make their names random, like Waffles584_a5 Personally, I never used this one, but... Try this:
Sprite1:Script1->Sprite3:Script8->Sprite2:Script1->Sprite6:Script1->Sprite1:Script2->Sprite5:Script2
The remixer might discover the connections, but it'd take ages. Also, if it's BYOB, try embedding custom blocks in custom blocks in custom blocks (maybe some recursion?).hidas wrote:
if you need to see exactly what happens when scripts are executed, just start single-stepping. click "edit" then "set single stepping" set it to "flash blocks slow", then go back and click "start single stepping". you can watch the whole project go while watching what is happening.
.........................................................................................................................
Part Two: The side of the hacker
-Chapter One-
-Bring out the hidden scripts!-
Welcome to the Hackers' Academy. Here we train to combat the strength of those who wish to destroy the power of remixing.
We equip our students with knowledge, and you shall become a skilled master.
To bring out scripts from under others, follow these extremely easy steps:
1. Right-click. Easy.
2. Select "cleanup"
3. Laugh at the ease of your mission.
"Cleanup" is very handy, but some hidden scripts are truly irritating. Is it with BYOB? If so, check for oddly colored blocks (try removing them to see what happens). Is it inside a script? Check every block carefully.
If you still can't find it, maybe disassemble some of the scripts. Change variable values. If all else fails, try searching another sprite. Maybe the scripts were thrown in another sprite that made less sense!
But if you can't find it, check chapter three for tips.
-Chapter Two-
-Uncovering disguises
Being a hacker is easy. You simply deploy a few tricks, and the project is uncovered.
Well, uncovering disguises is tricky. Writing it out as steps would fail to get the point across, so we'll have to use paragraphs.
Most of the time, disguise is done by faking variables and lists. Open every one and check the scripts in accordance. It's an odd task, but finishing it is always rewarding.
Still haven't found it? Maybe it's part of a script. Skim through every block (beware of dummy scripts. If you find one, you're on to something), and remember this: If you get bored, you can either find another project or get a relaxing drink.
If you still haven't found it, just shrug and try another tactic. Now for the element of attack.
-Chapter Three-
-Attack-
Attack is the definite opposite of defense, but both incorporate some %5 percent of the other. Forget that, and have a think.
If you've read the other chapter three, try and think about what a strong defense is. How would you destroy it? Would building a script help? Would combatting a forever work?
A lot of thought is required, and a textbook won't help. What you can try and do is take apart suspicious scripts and study them (you should have studied enough by now), or dive into the process of creating scripts.
The nasty equivalent of a created scripts would be to unleash a pack of dogs into the enemy territory. They will do your bidding, and fearlessly storm through the area. Well, you need to beware of what the result is.
If you're unlucky, the project will have defenses such as a forever. Study the result closely to guess what may be happening. Then stop it!
But overall, attack and defense is a tricky thing.
-Epilogue-
-Why hack into projects?-
You may be wondering why you hack into projects. Well, you're a lot better than the real hackers out there. You're not a hacker! That's just the term that's being used in this book.
You may be doing it to get past an impossible level, to fix a bug, or just for fun. Enjoy it, and have a lie-down on the couch if you get frustrated. We understand.
But for being a remixer, you're just trying to get your remix across. Remember this, though: Don't take credit for your new remix.
And one last thing: If you have any tips, please post them to help out.
-Tips from the hackers-Greatdane wrote:
One of the ways I hack projects is look at the variables.
Or something that almost always works:
Download and make it so the main character is draggable
That's the best way to hack games that you want to beat. You just need to look at the scripts.filo5 wrote:
For hackers: If you see a stockpile of messages, try broadcasting them by random and see what's happening. If it's BYOB, see what's inside the grey blocks...
16Skittles wrote:
to find a hidden sprite, make a sprite and put this script: [blocks]<when green flag clicked>
<forever>
<go to[ hidden sprite
<end>
that will make the sprite go to the hidden sprite. If you don't know which the hidden sprite is, it's the sprite that doesn't show up in the sprites area.
[/blocks]
then press the stop button, record the X and Y positions, move the finder sprite, then double click at the X and Y positions to find the hidden sprite.
Or you can just add a comment on every sprite, not to remix it and if they do, flag it. If that doesn't work then contact scratch.
Offline
Remixing is a good thing... as long as the remix has a large enough difference between the original.
If they don't change anything and don't give credit, remind them - if they still don't give credit, you can flag the project.
Offline
Chrischb wrote:
Remixing is a good thing... as long as the remix has a large enough difference between the original.
If they don't change anything and don't give credit, remind them - if they still don't give credit, you can flag the project.
But credit is already given technically... Because it says "Based on whoever's project."
Offline
WeirdF wrote:
Chrischb wrote:
Remixing is a good thing... as long as the remix has a large enough difference between the original.
If they don't change anything and don't give credit, remind them - if they still don't give credit, you can flag the project.But credit is already given technically... Because it says "Based on whoever's project."
technically, but sometimes the use the "Import Project feature"
Offline
WeirdF wrote:
Chrischb wrote:
Remixing is a good thing... as long as the remix has a large enough difference between the original.
If they don't change anything and don't give credit, remind them - if they still don't give credit, you can flag the project.But credit is already given technically... Because it says "Based on whoever's project."
Yeah... but the Scratch Team said we could flag it anyway.
Offline
Chrischb wrote:
WeirdF wrote:
Chrischb wrote:
Remixing is a good thing... as long as the remix has a large enough difference between the original.
If they don't change anything and don't give credit, remind them - if they still don't give credit, you can flag the project.But credit is already given technically... Because it says "Based on whoever's project."
Yeah... but the Scratch Team said we could flag it anyway.
![]()
so then why does this topic exist?
Offline
I wasn't being entirely serious when I made it.
I learned some tricks to make your projects hard to understand, and decided to put them together.
It's good for collaborations who want to work secretly, I think...
Offline