Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

How to hide the Graphics?


vitinho444
 Share

Recommended Posts

@Soul:

> Eh. Like Stephan once said, Encryption is like locking a door in a room without walls. If someone really wants your 2D graphics and .mid music, they'll get it.

But is it possible to repeatedly encrypt something? Like if you had to decrypt a folder and then it gives you another encrypted folder, and another and another etc etc… Even if they wanted it, a lot of people would get annoyed and quit.
Link to comment
Share on other sites

I tried to uncompress a molebox packed exe with 3 softs and i couldn't. But as Soul says, you can always press Print Button and paste image on paint or whatever. Then clean it (this should be the most tedious part). Lol
Anyways. If you wish to protect a specific tile maybe you should cover it with pieces of another tiles. Example if you want to protect an important scenary object you could cover it with leaves on the sides. So the copy & paste shouldn't be so clean at all. They'll have to reconstruct the object if they have imagination.

A crazy idea but it could work. LOL
Link to comment
Share on other sites

@Gohan:

> Well I doubt there's a way to disable the effects of Print Screen button while the client is active :/

Interesting idea, this could make it harder than harder. Once ago when I try to print screen when playing a video, the player screen looked black when paste. Anyways there was screen shooter sofwares for that.
This was a while ago.

Ask some source coder here. I really don't know if you can do that with source code. But maybe you can open and close a external sofware for that when clients open/close.

EDIT –------------------------------------------------------------------------
Not sure if you can block print screen button. But i think you can block clipboard when game's runing. Just i don't know how. u.u
Link to comment
Share on other sites

There is a way to "hide" them with in the exe file itself. Cant remeber how to do it been so long since I myself messed with vb6.

My buddy did that back in the day on one of his programs he made. It had a secrete button with a password and after you stuck in the pass ect you could access the files.

So in theory you should be able to do this with your graphic files.

Only thing is any patches you make will need to send the whole client.exe over
Link to comment
Share on other sites

@Draken:

> Only thing is any patches you make will need to send the whole client.exe over

I patch all the graphics, musics & sounds on my Client.exe with Molebox.
That's the first solution (?

Next solution should be a way to lock clipboard when exe's runing or lock print screen function. Or at least open a same time external hidden soft that locks it for you, and closes it when you closes client.
Or fullfill the whole map with a black tile on press print button.
Link to comment
Share on other sites

@Gohan:

> @Soul:
>
> > Eh. Like Stephan once said, Encryption is like locking a door in a room without walls. If someone really wants your 2D graphics and .mid music, they'll get it.
>
> But is it possible to repeatedly encrypt something? Like if you had to decrypt a folder and then it gives you another encrypted folder, and another and another etc etc… Even if they wanted it, a lot of people would get annoyed and quit.

Encrypting once is a waste of processor cycles, encrypting n times is therefore a reason not to even run your programme.

@xLukzx:

> @Gohan:
>
> > Well I doubt there's a way to disable the effects of Print Screen button while the client is active :/
>
> Interesting idea, this could make it harder than harder. Once ago when I try to print screen when playing a video, the player screen looked black when paste. Anyways there was screen shooter sofwares for that.
> This was a while ago.
>
> Ask some source coder here. I really don't know if you can do that with source code. But maybe you can open and close a external sofware for that when clients open/close.
>
> EDIT –------------------------------------------------------------------------
> Not sure if you can block print screen button. But I think you can block clipboard when game's runing. Just I don't know how. u.u

I can just run it through WINE and still use PrintScreen, even if you managed to prevent PrintScreen from copying it to my clipboard.

@Draken:

> There is a way to "hide" them with in the exe file itself. Cant remeber how to do it been so long since I myself messed with vb6.
>
> My buddy did that back in the day on one of his programs he made. It had a secrete button with a password and after you stuck in the pass ect you could access the files.
>
> So in theory you should be able to do this with your graphic files.
>
> Only thing is any patches you make will need to send the whole client.exe over

And I can disassemble it or unpack it and get the graphic files. Perhaps you should take a look at the PE standards Microsoft wrote.

tl;dr: anything stored on a disk, can be read and there's no way to prevent it from being read, especially when there are programmes that need the raw data.

Regards,
  Stephan.
Link to comment
Share on other sites

I think we assumed they can do it anyways. We're just thinking on how to make it harder. Don't get mad.

These are another possibilities.
As soul says, your game might not control your pc. But it can control what happen inside it. So i thought you could do the next things.

1º on press button print screen.
Closes your game.

2º on press button print screen.
  Turn night on and uses a black tile on it.

Inclusive if i'd know the case number for the PrintScreen hotkey i'd can do it via SadScript.

Just don't be so closed.
Link to comment
Share on other sites

@xLukzx:

> I think we assumed they can do it anyways. We're just thinking on how to make it harder. Don't get mad.
>
> These are another possibilities.
> As soul says, your game might not control your pc. But it can control what happen inside it. So I thought you could do the next things.
>
> 1º on press button print screen.
> Closes your game.
>
> 2º on press button print screen.
>   Turn night on and uses a black tile on it.
>
> Inclusive if I'd know the case number for the PrintScreen hotkey I'd can do it via SadScript.
>
> Just don't be so closed.

Those two are circumventable as well. You cannot make it harder, it's as hard as using PrintScreen or a memory debugger.

Regards,
  Stephan.
Link to comment
Share on other sites

You say that as you were a god of knowledge. I mean, i can't believe this kinda sentences without exposed fundamentation or previous test.  I don't use to surrender until i try by myself.

Actually i can't try for many reasons. But someday i'll do it.
There is allways a way to do what you want. And sometimes u have to wait, think a lot, search and work very hard to do it. Sometimes you bump with people who says "no, impossible, etc" but you must not stay with this.

I've learned it since i learn sadscript and i programmed a lot of cool things.

Maybe you can think i'm a Nwb that says Nwb things. But i really learned a lot last months. And now i can say i'm at Baron's level or another on SadScripting.

Regards ~
Link to comment
Share on other sites

@xLukzx:

> Maybe you can think I'm a Nwb that says Nwb things. But I really learned a lot last months. And now I can say I'm at Baron's level or another on SadScripting.
>
> Regards ~

I've been programming for 2+ years and I'm still not at Baron's level.

You probably should take Goddie's word on computer related things. He's the closest you'll ever see anyone to being a computer genius. He has legitimate permission to talk like a God if he wants.
Link to comment
Share on other sites

**Protip**: the following post might contain a lot of terms you are not familiar with. It helps if you use Wikipedia to look them up.

@xLukzx:

> You say that as you were a god of knowledge. I mean, I can't believe this kinda sentences without exposed fundamentation or previous test.  I don't use to surrender until I try by myself.

Sure, I'll prove it. Even though I might be an operating system developer, that doesn't give me the right to say something is wrong without proper back up.

The first thing you should look at is how images are stored. Formats like Microsoft Bitmap (sic) Pictures (BMP), Portable Network Graphics (PNG), Graphics Interchange Format (GIF), Joint Photographic Experts Group (JPEG), Truevision TGA or Targa (TGA), X PixMap (XPM), etc. have at least one thing in common. They are a raster image with the same unit, the pixel, where they form an array of pixels that can be properly represented in two dimensions. Most of these formats also support compression like Huffman where you can recode the file using character occurrence where you will store the file optimally in size. In some other scenarios you can use adaptive Huffman. On top of that most formats also use some sort of dictionary compression like LZW77 or LZ77.

Now I also have to define a pixel. Which is a single dot on a display, in a digital raster image, etc. encoded into a specific colour format. This colour format is composed out of colour channels such as red, green, blue, alpha, cyan, magenta, yellow, black, hue, luminosity, saturation, etc. Generally, people will refer with terms like: YUV, RGB, RGBA, BGR, BGRA, CMYK, HSV, etc. More specifically they also specify the channels because your pixel can be encoded as R8G8B8A8 or R5G6B5

**Tip**: colour theory shows us that green is the most noticeable colour in difference, whereas a difference in red and blue is hard to notice. Hence colour formats like R5G6B5 and R3G3B2.

How will a programme load images and use it in combination with DirectX or OpenGL? This is actually very simple. First of all the programme usually does this through libraries, since programmers usually don't want to re-invent the wheel. The procedure is basically always the same. You first decompress the image and then you read the pixel data and store this into a gigantic array using a specific colour channel format for your pixels. Then you provide this image to DirectX or OpenGL and they will send it to the GPU.

**Tip**: the GPU always uses its own colour format (e.g. Nvidia cards generally use BGR(A)), stores textures as 2nx2n or forces you to send images using these dimensions.

Now the image is at three locations. Your medium (e.g. a hard disk), into the programme's address space and into the video memory of the GPU. Now we will go over to encryption. Encryption and its counterpart decryption are used to encode messages. Encryption however usually adds to the size of the message, whereas compression takes off the size. What is always important for encryption is that you always have a password or multiple passwords. There is a difference in the types of encryption, that is, you have two kinds of encryption: symmetric-key encryption (e.g. AES) and asymmetric-key encryption (e.g. RSA). The latter simply uses a different password for decoding the messages.

Now let's see how we can easily retrieve the data of a programme using either symmetric-key encryption or asymmetric-key encryption. The first fact is that the programme has to decompress and in this case decrypt the image. This means we can simply read what is inside the memory using a memory debugger or use a programme that tells us what textures are present at the GPU. Both ways would work and give us the exact images, without even bothering decrypting the files, because the programme did this for us. The harder part would be decrypting the file directly. First of all you have to guess what encryption is used (e.g. RSA, AES, etc.), since writing your own is way too difficult if you lack a professional degree of mathematics (and even then), you will usually rely on existing implementations, because there aren't that many, it's going to be very easy to guess what one was used. The second thing you have to know is the password for decoding. The irony here is that the password is public, it's either encoded into the programme or the server will send the password(s) for the file(s). The first one can be found using a memory debugger or simply a disassembler or even a hexadecimal editor for some parts. The second one can be found using a memory manager or a packet sniffer. The benefit of having asymmetric-key encryption in this case, is that it makes the files harder to edit, but you could also just use CRC32 to verify this, and hope nobody changes the code using a disassembler.

You may think hiding the files on your medium is a very good idea. Well it isn't, since they aren't really hidden anyway. What can be read, can be read. What I mean with this is, the files are always stored on your disk using the structure of the file system for that part of the disk. File browsers simply hide files by setting a flag that is normally clear and all they do is just skip the file if this flag is set when displaying the files in a folder. Now if you have a file browser with the behaviour of displaying all files, where the hidden files are a bit transparent, then you can still see them (and Microsoft Windows Explorer has this feature).

Merging the files with an executable (or a PE-file) is possible, but doesn't protect them. If you know how PE works, then you can simply extract them from the executable. An example of this is ELI, where you can use an utility like 7-zip to extract all the files.

Now you can also try to block certain keys using some trick, but you forget a few things. Some features were added since a specific version of Windows, some features aren't supported by some software that tries to run Windows executable outside of Windows, some features simply don't exist and you can always disassemble the programme and tweak the code. It's therefore always circumventable.

tl;dr:
@xLukzx:

> Sometimes you bump with people who says "no, impossible, etc" but you must not stay with this.

Getting the content of the files will never be impossible, you are right at that one.

Regards,
  Stephan.
Link to comment
Share on other sites

Thanks for the info.

@xLukzx:

> we assumed they can do it anyways.

That's clear. I don't deny this.
but if they haven't the knowledge on how to do that, they can't unless they effort to learn it.
And often normal people don't like to effort.

Not all who plays a 2d online rpg is a computer genius. I'm talking about normal people who knows press a button, and paste. No more than that.

I don't try to stop hackers with years in the net. Just normal people. And this is not impossible :)

@Miguu:

> I've been programming for 2+ years and I'm still not at Baron's level.

Are you talking about sadscript? If yes well. I'm fast at learning. You can believe it or not.

Regards.
Link to comment
Share on other sites

@xLukzx:

> @xLukzx:
>
> > we assumed they can do it anyways.
>
> That's clear. I don't deny this.
> but if they haven't the knowledge on how to do that, they can't unless they effort to learn it.
> And often normal people don't like to effort.
>
> Not all who plays a 2d online rpg is a computer genius. I'm talking about normal people who knows press a button, and paste. No more than that.

You are contradicting yourself for assuming someone would get far with your resources.

@xLukzx:

> I don't try to stop hackers with years in the net. Just normal people. And this is not impossible :)

You are also assuming someone who has that much knowledge actually would use your resources.

@xLukzx:

> @Miguu:
>
> > I've been programming for 2+ years and I'm still not at Baron's level.
>
> Are you talking about sadscript? If yes well. I'm fast at learning. You can believe it or not.
>
> Regards.

He said: "programming". Sadscript or VBS is actually a scripting language.

Regards,
  Stephan.
Link to comment
Share on other sites

I said coherent things. Don't distort what I wrote. Because this is not the point of the post.

Your last post looks like a childish way to try to beat me turning over all what I said. And I'm not here with the intention of a fight or whatever. I'm here because I'm interested on this topic theme.

Sorry for the offtopic.
Link to comment
Share on other sites

@xLukzx:

> I said coherent things. Don't distort what I wrote. Because this is not the point of the post.
>
> Your last post looks like a childish way to try to beat me turning over all what I said. And I'm not here with the intention of a fight or whatever. I'm here because I'm interested on this topic theme.
>
> Sorry for the offtopic.

You're really grasping at straws with this argument. The simple point still stands that if data is required to be accessed, you can't hide it. Obscuration is **not** the same as encryption, and if you want to argue about the pros & cons of it, you can go make your own thread.

I've had people consistently stealing my stuff for years now. My philosophy is that if they have such a lack of skill and imagination that they need to take my stuff instead of being able to create their own, their project isn't going to go anywhere in the first place.
Link to comment
Share on other sites

Well it's okay.
I'm tired of trying to explain my point.
Do what people say and get frustrated.
I'll do what i think i must do and stumble if I'm wrong.
Sorry, but I hate feeling limited.

Besides that, i'm not affraid for someone who stole my graphics since i use RPGMXP graphics. Lol

I was only trying to think on how to help Topic owner.
Regards.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...