Reverse engineering protection / hardening

I want to protect my applications from reverse engineering.

What I would like to do is to protect the executable file from any fakes, for example, using hex editors, resource editors and unauthorized access.

My idea is for the application to check the hash value of itself for the imported value in the version file from the service server (possibly an xml or flatfile file), then turn off the application or somehow completely disable it if the values ​​do not match.

I am here in strange waters, so if anyone has any comments, suggestions, ideas or code examples, I would appreciate it.

The development language is C ++, but I would gladly accept examples from any language.

Thanks in advance for any help.

+3
source share
5 answers

I am afraid it is not so simple.

If someone has the ability to modify the executable, then they have the option to remove any check that the application does with a known hash.

You can do more complex things, such as encrypting application data using a hash of a known executable file as a key, but this only makes it a bit difficult to bypass.


The creators of all kinds of very expensive software have been trying to find a solution to this for decades - and their efforts have always been handled by people with much less resources.

+4
source

: . , , , " ".

, , , , , .

, , , !

+1

- . , . - , upx, .

. ( ) . , AV / .

/ /, Phrack ​​ . , .

/ (non-speedbump) - , AES, , . / , )

:

+1

, , - , , " ", . USB-.

, , . .

.

0

, , , , - !

0

Source: https://habr.com/ru/post/1752438/


All Articles