Presentation is loading. Please wait.

Presentation is loading. Please wait.

Obfuscation in .NET Atchyutuni Shilpa CS-795.

Similar presentations


Presentation on theme: "Obfuscation in .NET Atchyutuni Shilpa CS-795."— Presentation transcript:

1 Obfuscation in .NET Atchyutuni Shilpa CS-795

2 What is Obfuscation? Dictionary Meaning: Obfuscation in .Net:
To confuse, to make obscure a problem with extraneous information, to darken. - Obfuscation in .Net: - Technology of shrouding the facts. -Technology that makes .NET assemblies more difficult to decompiles and impedes reverse engineering efforts.

3 .NET Software Development Lifecycle
Protect

4 Why Obfuscation? .NET Programs compiled in MSIL, which is at a higher level than binary machine code. So .NET Programs are easy to reverse engineer using decompilation. The .NET framework ships with a tool (ILDASM) that can disassemble MSIL. Anyone can peruse the details of the software.

5 Why Obfuscation ctd…. Obfuscation reduces the size of an executable.
Obfuscation improves the application performance at runtime. It protects the intellectual property. Why Obfuscation ctd….

6 Dotfuscator Acts obfuscator, pruner, linker, and watermarker for .NET applications. Obfuscation is applied to MSIL and not source code. Obfuscated code is functionally equivalent to traditional MSIL. It executes on CLR with similar results.

7 Dotfuscator features Renaming :
Uses a patented Overload-Induction renaming system. Renames as many methods as possible to a same name. Saves space as short names used for renaming.

8 Renaming Example Original Source Code Before Obfuscation
private void CalcPayroll(SpecialList employeeGroup) { while (employeeGroup.HasMore()) { employee = employeeGroup.GetNext(true); employee.UpdateSalary(); DistributeCheck(employee); } Reverse-Engineered Source Code After Overload Induction Dotfuscation private void a(a b) { while (b.a()) { a = b.a(true); a.a(); a(a);

9 Dotfuscator Features ctd…
2. String Encryption: Strings in sensitive part of the code are encrypted. 3. Control Flow Obfuscation: - Introduces false conditions and misleading constructs in decompiled code. 4. Pruning: Determines unused types, methods and fields. Helps reduce size of the assembly.

10 5. Assembly Linking: Links multiple assemblies into one or more output assemblies. 6. Watermarking: - Used to Embed data (copyright info/unique nos.) into applications, making them unique.

11 Demonstration

12 Drawbacks Maintaining and Troubleshooting becomes difficult.
Can break code that depends on reflection, serialization or remoting. Hampers the debugging process, as obfuscation alters MSIL. Drawbacks

13 Conclusion Obfuscation is not 100 percent protection.
If a hacker is perseverant enough, they can find the meaning of your code. The goal of obfuscation is to make the reverse engineering process extremely time consuming and painful so that it not worth the effort. Conclusion

14 Professional Visual Studio 2005 – Andrew Parsons and Nick Randolph.
us/library/ms227295(VS.80).aspx References

15 THANK YOU !!


Download ppt "Obfuscation in .NET Atchyutuni Shilpa CS-795."

Similar presentations


Ads by Google