Re: [Lazarus] Make unreadable names into bunary

2012-04-05 Thread Kjow
2012/4/4 Kjow antispamm...@gmail.com:
 Hi all,

 I would make unreadable functions/components/classes/etc names into
 the binary built.
 I noticed that with an hex editor I can see things like TButton,
 width, heigh etc.
 Avoiding this, could make also more difficul a reverse engeneering
 with the binary.

 Is there an option to enable this in compiling?

 Thank you,
 Kjow

Thank you all for replies :)

Kjow

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Make unreadable names into bunary

2012-04-04 Thread Kjow
Hi all,

I would make unreadable functions/components/classes/etc names into
the binary built.
I noticed that with an hex editor I can see things like TButton,
width, heigh etc.
Avoiding this, could make also more difficul a reverse engeneering
with the binary.

Is there an option to enable this in compiling?

Thank you,
Kjow

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Make unreadable names into bunary

2012-04-04 Thread Reinier Olislagers
On 4-4-2012 16:10, Kjow wrote:
 Hi all,
 
 I would make unreadable functions/components/classes/etc names into
 the binary built.
 I noticed that with an hex editor I can see things like TButton,
 width, heigh etc.
 Avoiding this, could make also more difficul a reverse engeneering
 with the binary.
 
 Is there an option to enable this in compiling?

That's called obfuscating the code.
See tools/options/jcf format settings/obfuscate to see what that does.
Haven't tried it, probably requires codetools/jedi code format packages...

Regards,
Reinier

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Make unreadable names into bunary

2012-04-04 Thread Marco van de Voort
On Wed, Apr 04, 2012 at 04:10:46PM +0200, Kjow wrote:
 I would make unreadable functions/components/classes/etc names into
 the binary built.
 I noticed that with an hex editor I can see things like TButton,
 width, heigh etc.

Yes. These are needed to stream forms.

 Avoiding this, could make also more difficul a reverse engeneering
 with the binary.

On Windows, use tools that encrypt the whole binary. They usually allow
resources to keep working. (at least they do with delphi)

 Is there an option to enable this in compiling?

No, the form based streaming is a corner stone of the designer.

--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Make unreadable names into bunary

2012-04-04 Thread Hans-Peter Diettrich

Kjow schrieb:

Hi all,

I would make unreadable functions/components/classes/etc names into
the binary built.
I noticed that with an hex editor I can see things like TButton,
width, heigh etc.


These names must match the declarations of the components and properties 
in LCL source code, so that the resource loader can find the registered 
classes and their published properties. This means that you have to use 
an obfuscated LCL, with obfuscated class and property names. The 
component names instead can be choosen freely, but I don't see an 
improvement when e.g. a TButton is renamed from Button1 to something 
else - its class name still will be readable.


Skilled hackers still may get many (type) names from a running 
executable, depending on the platform and widgetset. A decompiler (like 
IDA) also will reveal much of the source code, in all OO languages. This 
is why I never wrote an decompiler for Pascal (Delphi/FPC) binaries, to 
discourage sniffing in other peoples' apps.


In practice it's much easier to use a tool that compresses an executable 
into a self-expanding archive. Then the names can no more be found in 
the files on disk, and the size of the distributed files can become much 
smaller. And use the FPC and LCL *trunk* versions, to build your 
distributed apps, so that no decompiler will succeed in matching parts 
of the code with a *release* version of the libraries.


Graeme may praise fpGUI now again, which AFAIK does not use resources 
for the creation of the components on a form. Newer Delphi versions, in 
contrast, are much more verbose about application details, in the 
extended RTTI that is enabled by default and becomes part of every 
binary; turing it off is very complicated, must be done in every single 
unit, and for many types (classes, records...).


DoDi


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus