How can I prevent other users from using my unmanaged DLL in their C # application?

I am developing a C # application to help people with reading and writing disabilities - among other things, this application provides word prediction.

Prediction of the word is written in C and runs as a web service on a Linux server and requires the use of a login. No problems.

Recently, however, some of our customers have shown interest in the standalone version that we would like to provide. As a tool for this, I wrote a wrapper (in C) around the word prediction code and compiled it into a DLL that I can use in my C # application along with our prediction data files.

The problem is that now everyone has access to:

  • Our data files (not a problem in itself, because files do not make sense without a prediction code).
  • The compiled library.
  • C # code (which can be easily decompiled to find out how the DLL is used).

I know that I cannot protect C # code, and I also know that it is impossible to completely protect the code, since binaries will always be readable (there are already many questions / answers on this subject, so I will be grateful if people do not repeat these answers )

I would like to know if it is possible to protect a DLL so that it can only be called from my application?

I think something like comparing the checksum of the calling EXE file with the checksum compiled into the DLL. Are other (more elegant) solutions available?

, DLL, 100% ( ) - , /DLL ( , ).

, , .

, , 100% - , ( : .NET ?).

, (, , : ).

, , , , , , ? ?

. .

Windows , - - "" ", Windows". , , , .

, , . ? , ( -) , , , , .

+4
2

- C DLL , , , .

, , Windows ActivateLicense(string key) DLL, # .

, , 100% ( ?).

Obscurity

- , , :

  • DLL
  • DLL , .
  • #
+1

, , , flexlm. , DLL , , , exe.

0

All Articles