EXE PROTECTION?

Discuss anything else that does not suite other forums.

Moderator: Rathinagiri

User avatar
Roberto Lopez
HMG Founder
Posts: 3980
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 27 times
Been thanked: 168 times

Re: EXE PROTECTION?

Post by Roberto Lopez » Sun Sep 08, 2019 12:30 am

bpd2000 wrote:
Fri Sep 06, 2019 1:16 pm
Roberto,

"To be honest, I must say that if someone claims that my program is protected in a way that no one can crack it, he is completely wrong. Each program that can be run in an operating system can be cracked by some means"
More info visit:
https://www.cybrary.it/0p3n/advanced-ex ... ree-tools/
I know perfectly that, but I want to make it as difficult as possible for the person attempting to do it :)

A better way to protect your code is creating a web app and market it as a service, but, not all potential customers are willing to incur in a monthly expense.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

User avatar
Roberto Lopez
HMG Founder
Posts: 3980
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 27 times
Been thanked: 168 times

Post by Roberto Lopez » Sun Sep 08, 2019 12:34 am

serge_girard wrote:
Fri Sep 06, 2019 3:38 pm
Roberto,

Maybe you can compile/create EXE on-the-fly from some core-code that is encrypted somewhere... Would be interesting to develop!

Serge
I've considered something like that, but, once the program has been reverse engineered, all of such effort is worthless, so IMHO, the best way is to make the reverse engineering process for the attacker, as difficult as possible.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

User avatar
Roberto Lopez
HMG Founder
Posts: 3980
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 27 times
Been thanked: 168 times

Post by Roberto Lopez » Sun Sep 08, 2019 12:47 am

EduardoLuis wrote:
Fri Sep 06, 2019 7:32 pm
Hola Roberto:

Debo coincidir con BDP2000 en cuanto a que casi todo programa es crackeable.-
No obstante, yo utilizo un método para mis aplicaciones que hasta ahora me funcionó.-
Creo un exe que opera como un menu general, desde el que disparo cualquiera de los multiples subaplicativos.-
Cada vez que se convoca un subaplicativo genero un *.mem que es leido por el subaplicativo al iniciarse, si no lo encuentra o no coincide no se ejecuta.- Si por lo contrario, lo encuentra, lo elimina se ejecuta y al terminar la ejecucion del aplicativo ejecuta el aplicativo menu general.- Este procedimiento lo hago no tanto por protegerme de hackeos, sino para facilitar las eventuales correcciones en un aplicativo y no sobrecargar la memoria.- A modo de ejemplo un aplicativo que diseñe para adm. de propiedades, lleva un total de 37 exes, por lo que no haber adoptado el criterio me obligaria a buscar cualquier error en miles de linea de codigo.-
Lo que si podés hacer es encriptar las tablas; tambien pueden llegar a ser hackeables, pero al menos que les tome algo de tiempo.-
Espero haber sido de alguna ayuda.-
Eduardo

Hi Roberto:

I must agree with BDP2000 about that all systems are hackeables.-
No mather, i use a method on my app that till now it works fine.-
I develope an exe file that acts like a general menu, from where i trigger multiple sub-app's.-
Each time user trigger sub-app, main app generates a *.mem file that is read by sub-app triggerd, if this app don't find the file, autoabort app.- If *.mem file is found, new app deletes it, and execute sub-app, when finished triggers main app (general menu).- I've use this method to make easy errors corrections and also future upgrades. As an example i've develope a system for building adm which have's 37 exes (this way when the occours an error i don't need to look on thousands of line code.-
You can encrypt table files; although they are hackeables, at least hackers must invest lot of time.-
Hopping these helps you, with regards.
Eduardo
I'm doing something very similar (multiple exes linked via special parameters) but (as I've said in a previous message) if you are 'reverse engineered' no security measure is effective enough.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

User avatar
serge_girard
Posts: 2342
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Has thanked: 588 times
Been thanked: 124 times
Contact:

Post by serge_girard » Sun Sep 08, 2019 8:06 am

Roberto,

What is your main worry and how great is the possibility that it could happen?
Just a thought... One cannot foresee all!

Serge

User avatar
Roberto Lopez
HMG Founder
Posts: 3980
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 27 times
Been thanked: 168 times

Post by Roberto Lopez » Sun Sep 08, 2019 1:20 pm

serge_girard wrote:
Sun Sep 08, 2019 8:06 am
Roberto,

What is your main worry and how great is the possibility that it could happen?
Just a thought... One cannot foresee all!

Serge
Well... at first, I'm a little paranoid :D

Besides that, the app that I want to protect is a generic POS (with a potentially huge market) so, the prize for a cracker could be big.

Until now, I've mostly developed highly customized apps, that have value for an specific customer only. In such cases there is no need to care about piracy.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

User avatar
serge_girard
Posts: 2342
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Has thanked: 588 times
Been thanked: 124 times
Contact:

Post by serge_girard » Sun Sep 08, 2019 3:20 pm

I see!

It's a stand-alone POS without connection to a HQ? I made such which will not work without connection to HQ (also EXE). So you can hack the POS but will also need to hack HQ-EXE as well in order to get it working. Maybe an idea for you!

Serge

User avatar
Roberto Lopez
HMG Founder
Posts: 3980
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 27 times
Been thanked: 168 times

Post by Roberto Lopez » Sun Sep 08, 2019 7:48 pm

serge_girard wrote:
Sun Sep 08, 2019 3:20 pm
I see!

It's a stand-alone POS without connection to a HQ? I made such which will not work without connection to HQ (also EXE). So you can hack the POS but will also need to hack HQ-EXE as well in order to get it working. Maybe an idea for you!

Serge
If I understood you correctly, you mean, "call home".

Again, if the app is reverse engineered, all the process to call home and wait for an adequate response to continue, could be completely bypassed.
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

User avatar
serge_girard
Posts: 2342
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Has thanked: 588 times
Been thanked: 124 times
Contact:

Post by serge_girard » Mon Sep 09, 2019 6:24 am

You are probably right...!
I will think about it

Serge

User avatar
Anand
Posts: 410
Joined: Tue May 24, 2016 4:36 pm
DBs Used: DBF
Has thanked: 112 times
Been thanked: 60 times

Post by Anand » Mon Sep 09, 2019 10:23 am

Roberto Sir,

You are developing in HMG, which is 'C based' in core. There is no 'pll' or such thing in your exe, I assume. So you have one or more exes.
Then
  • run UPX on them with maximum compression
  • Use 'locals' as much as possible in functions as they lose their variable names in exe
  • Use 'static functions wherever possible in prgs
These are the steps which will "make the reverse engineering process for the attacker, as difficult as possible", IMHO.

BTW, I use the above approach, from Clipper 5 time.

Regards,

Anand
Image

User avatar
Roberto Lopez
HMG Founder
Posts: 3980
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 27 times
Been thanked: 168 times

Post by Roberto Lopez » Mon Sep 09, 2019 9:21 pm

Anand wrote:
Mon Sep 09, 2019 10:23 am
Roberto Sir,

You are developing in HMG, which is 'C based' in core. There is no 'pll' or such thing in your exe, I assume. So you have one or more exes.
Then
  • run UPX on them with maximum compression
  • Use 'locals' as much as possible in functions as they lose their variable names in exe
  • Use 'static functions wherever possible in prgs
These are the steps which will "make the reverse engineering process for the attacker, as difficult as possible", IMHO.

BTW, I use the above approach, from Clipper 5 time.

Regards,

Anand
Thanks!
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

Post Reply