Memb
Memb

Reputation: 309

Modify dll exports (symbol table). I want to obfuscate the function names

I have a third party dll that I want to change the symbol names. Is this possible? I dont want the competition to know what component my product uses. I don't have the source for the dll.

Upvotes: 4

Views: 3897

Answers (3)

Steve Fallows
Steve Fallows

Reputation: 6424

You might look at PE Explorer. I'm not sure it will do what you want, but maybe.

Upvotes: 1

mip
mip

Reputation: 8713

Symbol table is required for binding executable with dll during linking and runtime. It usually contains decorated function names and ordinals. It is possible to use ordinals only. If you are building library you can define .def file to have a control over symbol tables. But if this is pre-built 3rd party library, it may be very hard way to go. Of course everything is possible but I doubt it is worth your efforts.

If you are desparate, I would try altering a letter in decorated function name in hex editor, lookup this function ordinal value and then try using GetProcAddress with ordinal of this function.

Upvotes: 1

Rob Walker
Rob Walker

Reputation: 47462

Not without modifying the binary, and if the DLL is signed then this would invalidate the signature.

Even if it isn't signed it would probably violate the license agreement that governs the use of the DLL.

Upvotes: 0

Related Questions