Click here to Skip to main content
15,896,730 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more: (untagged)
Hello! We are caring experiments with several obfuscators. We want to protect our source code from using once more with somebody else. Our main task is to make exe (or dll) analysis for getting original source code structure as complicated as possible. In other words it must be easier to develop application on your own, than to use our sources restored from exe (or dll). At the moment we are testing SmartAssembly 6. We deobfuscate result exe and dll with de4dot. The result is evaluated in Reflector. Thereby we have several questions (It is implicated that analyzed exe (or dll) was obfuscated with SmartAssembly).

Questions:
1. Is there any method (deobfuscation, process dumping, debugging etc) to recover sources of internal and private functions (which are not called from public functions) without extensive and long work? If it is possible - please specify the method.
2. The same questions about internal and private function parameter names and local variables.
3. Which obfuscator (protector etc) you think we should use instead of SmartAssembly to achieve our goals (with license cost not less than 200$)?

Several observations from our experiments:
1. De4dot does not recover local var names after SmartAssembly (just renames basing on var types to facilitate the analysis http://prntscr.com/78puxr ). But public function code structure and parameter names are recovered pretty good.
2. internal and private functions was not found with Reflector in De4dot recovered file http://prntscr.com/78pvh4 . Besides, their source cannot be found even if public functions is called from it (I mean from internal or private function source) http://prntscr.com/78pxcf .
3. However if private function is called by public one, it can be found and its structure is easily recognized http://prntscr.com/78q5pm
Posted

1 solution

I seriously think that obfuscation does not worth the effort.

First of all, think critically: does your product really worth stealing? Yes, your obfuscation will seriously delay the reverse engineering for those who just want to get a quick improvement of your code but are not the skilled code crackers. But do they really need to be stopped? What would you gain from that?

At the same time, people who really want to steal your code for the purpose which are both illegal and would threaten your business won't see your obfuscation as any serious obstacle. If they are determined to reverse-engineer your product and use it for such purposes, you can be sure: they will certainly do it, and very quickly.

Now there are commercial products which can be quite expensive and provide much stronger protection against reverse engineering than the obfuscation, how about them? I heard from the reverse engineer specialist: if such protection software is well-known, it makes the cracking even easier, because such specialists already invested a lot of work in studying the operation of such projects. Only some unknown but highly sophisticated protection software get some chance to withstand cracking. Well, at least for a while…

Therefore, here is my friendly advice: don't waste your time for obfuscation. However, you decide.

—SA
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900