Page 1 of 1

Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 5:11 pm
by Nituvious
Do we have to worry about people disassembling our programs for our source code?
When people try to disassemble programs that were created in PureBasic, does it give them our source code, or a garbled mess?

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 5:27 pm
by c4s
Disassembling comes from "assembling". So first take a look what the assembly language really means - for example at wikipedia.

Then ask again ;)

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 5:50 pm
by Kale
The more helpful and less obtuse reply is, no.

Unless you are doing something very advanced then the likelyhood of some proficient cracker disassembling your work is very low.

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 6:47 pm
by Thorium
Disassembling don't recreates a PureBasic source code. It just shows the assembly code. So you don't have to be worried about it. No one can steal your source that way. People can modify you program that way but in most cases this is nothing to be worried about.

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 8:34 pm
by luis
There are some language where a lot of informations about the original source are stored in the final executable, for a reson or another (.net languages are a good contemporary example), but PB generate ASM code then translated to binary from the FASM assembler, so there is no way to go back to the original source code as you have written it from it.

You can disassemble it and see what it does, or patch it for example in the data section to alter some strings, but pratically not a lot more.

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 9:25 pm
by Thorium
luis wrote: You can disassemble it and see what it does, or patch it for example in the data section to alter some strings, but pratically not a lot more.
You can alter the code too, not only strings.

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 9:49 pm
by Rook Zimbabwe
So keep the registration checker in a DLL and hide the reg info in a PW protected PAK or ZIP or something... :mrgreen:

I used to create time limited versions of my Blitz3d programs by PAKing a .txt file with a single number in it.

When program ran it would unpak the file... read number... if number not less than 1 decrement... rePAK and run... If number < 1 then move down to the REGISTER NAG.

Not perfect by any means but good enough for most!

Re: Do we need to worry about disassembling?

Posted: Wed Nov 04, 2009 9:53 pm
by luis
Thorium wrote: You can alter the code too, not only strings.
Yes. You can alter any single byte, it's a file.

Reply was intended to show to the original poster what a not particularly skilled person can do.

Certainly not get the source code. Have a peek at the code and change some strings. You can expect this.

Reverse engineering your mighty code to steal your precious algorithms probably not, unless you write something really great.

Probably if you are writing something so great you don't need to ask the original question in the first place.

Anyway yes, sorry to not have mentioned this. You can alter the code too, for example patching some conditional instructions to skip some checks or similar things.

Re: Do we need to worry about disassembling?

Posted: Fri Nov 06, 2009 9:42 pm
by X
Right. Disassembling means converting the EXE to assembly. Decompiling is where they can view the purebasic source code. You can NOT decompile PB source code. You can disassemble any file, on any computer, though. This is one of the things that makes PB vastly superior to anything .NET.

Re: Do we need to worry about disassembling?

Posted: Fri Nov 06, 2009 10:55 pm
by utopiomania
No.
No again. Yes.

:wink:

Re: Do we need to worry about disassembling?

Posted: Fri Nov 06, 2009 11:13 pm
by Kaeru Gaman
one addition:
disassebled you can see the ASM-Code, yes.
but all Variables and Lables are without descriptive names, they are just pointers.

so, to read and understand the code is much more difficult than when you read the commended ASM-Output of the PB-Compiler.