So I'm reading about antidebug and anti-reverse engineering techniques, but these cover, in all the docs I've seen, just executables.

Are there any resources that target specifically shared and static libraries?

If not, are the techniques for executables mainly applicable for static/dynamic libraries?


  • It should be pretty straight forward to adjust anti-debugging techniques from executables to libraries. Which parts are you having difficulties with?
    – NirIzr
    Jan 13, 2017 at 17:30
  • Apparently I can use the tutorials for executable. I have (now) no difficulties. I needed to assess the feasibility before embarking in this effort.
    – senseiwa
    Jan 15, 2017 at 10:36

2 Answers 2


To the best of my knowledge theoretically most obfuscation techniques are also applicable to libraries, but there are considerable downsides: Slowdown and increased support-difficulties. Please note if a program does something, there is always a way to find out how it archived it when you control the execution environment.

I'd advise you to keep any business logic you want to protect out of libraries by keeping the libraries generic. If your business model concerns the distribution of logic you want to keep a secret - its a pretty bad situation.

If you really want to offer some confidential functionality and performance is not an issue, think about offering it on the server side.

  • I agree, but what if I need in my business to offer secret functionalities on a client? I know this is bad, but are there additional recommendations?
    – senseiwa
    Jan 15, 2017 at 10:38
  • 1
    When performance isn't of utmost importance, you can still apply anti-reversing obfuscation. These may slow down, but experienced reversers will always be able to find out what is happening.
    – Nordwald
    Jan 15, 2017 at 12:24

I think all anti-debug and anti-reversing techniques are also applicable to shared and static libraries. Shared libraries are still code, just placed in a different file format. I guess people don't talk much about anti-reversing techniques in library codes since the techniques are the same.

  • I tend to disagree, since symbols are important and most obfuscation has influence on the performance which is unfavorably in case of shared libraries which do heavy lifting.
    – Nordwald
    Jan 12, 2017 at 8:44
  • 1
    I see. Good point.
    – yellowbyte
    Jan 17, 2017 at 6:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.