This is probably a very lame newbie question: When i open my program (a very simple calculator in C and WINAPI) in a HexEditor i can see the name of some functions and variables mixed in all the asc stuff. When i try to do the same thing with a professional program i cant see such thing.
At first i thought that was because i was adding extra info for debugging (and setting this option). But now, using only -s3 as a compiler option, all that is still there.
I did some search on Google and i find some exe encryptors that were supposed to hide this stuff.
Well, can anyone explain about this things to me? Should everyone that is writting commercial software use this encryptors? Is there any other method? What are the popular encryptors? Is there a loose of performance when running a encrypted exe?
Ulrich
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Was the professional program in c ?.
What most do not understand is that c was called " high level ASM language" , it was one, if not the first language of that kind to come out after ASM language for general programming.
The reason i brought this up is because any hex editor will see all of a c program, because c is so close to ASM after it is compiled. C++ on the other hand, with its true OO that allows the creation of objects, is harder to see, the objects a user creates, in a hex editor.
The reason is this, while c has many many predefined, "objects", that all compile in the same way every time with every c compiler : C++'s created user defined objects, are of more complexity and are not known, as well as c "objects" are.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My question is:
Why are you scared? Do you want some kind of serial protection in your prog?
If so, think about it: When opening the prog in a hex editor, what do you see and is knowing the name of a variable or function really harming your protection? If yes, better rewrite your protection.
What I mean is, that if you disasm (or look at the hex) and want to *break* some kind of protection knowing variable names is pretty useless unless you know what happens to these variables. This requires some good knowledge of asm and if the protection is really good it takes a lot of time and maybe be even impossible...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It would all depend on the program. A bad protection like if(password = "Something") is allways easy to find, but if crypto is involved it gets harder. Pure DOS assembler progs should be hardest...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is probably a very lame newbie question: When i open my program (a very simple calculator in C and WINAPI) in a HexEditor i can see the name of some functions and variables mixed in all the asc stuff. When i try to do the same thing with a professional program i cant see such thing.
At first i thought that was because i was adding extra info for debugging (and setting this option). But now, using only -s3 as a compiler option, all that is still there.
I did some search on Google and i find some exe encryptors that were supposed to hide this stuff.
Well, can anyone explain about this things to me? Should everyone that is writting commercial software use this encryptors? Is there any other method? What are the popular encryptors? Is there a loose of performance when running a encrypted exe?
Ulrich
Was the professional program in c ?.
What most do not understand is that c was called " high level ASM language" , it was one, if not the first language of that kind to come out after ASM language for general programming.
The reason i brought this up is because any hex editor will see all of a c program, because c is so close to ASM after it is compiled. C++ on the other hand, with its true OO that allows the creation of objects, is harder to see, the objects a user creates, in a hex editor.
The reason is this, while c has many many predefined, "objects", that all compile in the same way every time with every c compiler : C++'s created user defined objects, are of more complexity and are not known, as well as c "objects" are.
Good answer.
Kip
Yeah, it's always fun to learn more about C++ :)
My question is:
Why are you scared? Do you want some kind of serial protection in your prog?
If so, think about it: When opening the prog in a hex editor, what do you see and is knowing the name of a variable or function really harming your protection? If yes, better rewrite your protection.
What I mean is, that if you disasm (or look at the hex) and want to *break* some kind of protection knowing variable names is pretty useless unless you know what happens to these variables. This requires some good knowledge of asm and if the protection is really good it takes a lot of time and maybe be even impossible...
Is it easier to crack a C program than a c++ program?
It would all depend on the program. A bad protection like if(password = "Something") is allways easy to find, but if crypto is involved it gets harder. Pure DOS assembler progs should be hardest...