DeepSea Obfuscator 2009

DeepSea Obfuscator 2009

© 2009 TallApplications BV

Legal Note Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, email addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of TallApplications BV. TallApplications BV may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from TallApplications BV, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. Windows NT, 2000, XP, Server 2003, Vista, Server 2008 and 7, .NET Framework, Microsoft Office, Excel, Access and Internet Information Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. © 2001-2009 TallApplications BV. All rights reserved. DeepSea Obfuscator is a trademark of TallApplications BV.

Contents

3

Table of Contents

Foreword

0

6

Part I Introduction

1 About DeepSea Obfuscator 2009

................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ...................................................................................................................................

6 7 7 7

2 About This Guide 3 Staying Up To Date

4 Getting More Help Part II Getting started

9

1 Concepts

9

2 Your First Obfuscation 3 Your Second Obfuscation 4 Adding obfuscation features

10 12 13 13 14 15

5 Obfuscation projects

6 Reading obfuscated stack traces

7 Where to go from here Part III External configuration

17

1 Creating and external configuration file

................................................................................................................................... ................................................................................................................................... ...................................................................................................................................

17 18 19

2 Obfuscation preview

3 External configuration file format Part IV Obfuscation Reference

22

................................................................................................................................... 1 ObfuscationAttribute .......................................................................................................................................................... 22 Attribute properties .......................................................................................................................................................... 22 Rename feature .......................................................................................................................................................... 23 Encrypt strings feature .......................................................................................................................................................... 24 Control flow obfuscation feature .......................................................................................................................................................... 25 Cleanup feature .......................................................................................................................................................... 26 Optimize feature .......................................................................................................................................................... 27 Make internal feature .......................................................................................................................................................... 27 Seal feature .......................................................................................................................................................... 28 Inject feature .......................................................................................................................................................... 29 Change namespace feature .......................................................................................................................................................... 30 Add prefix feature .......................................................................................................................................................... 30 Clean XML documentation .......................................................................................................................................................... 31 Disabling features .......................................................................................................................................................... 31 Common feature arguments ................................................................................................................................... 32 2 ObfuscateAssemblyAttribute ................................................................................................................................... 32 3 Obfuscation in Silverlight or NET 1 1 ................................................................................................................................... 32 4 Smart Protection 22

© 2009 TallApplications BV

3

4

DeepSea Obfuscator 2009

35

Part V Tool Integration

1 Visual Studio

................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ................................................................................................................................... ...................................................................................................................................

35 35 37 38 39 40 42 42 43 43

2 MSBuild

3 NAnt

4 Command line application 5 Directories and file paths

6 De-obfuscation API Part VI Solving problems

42

1 Reflection 2 Framework

3 Bugs

4 The problem remains, now what? Part VII Evaluation and licensing

45

1 Evaluation 2 Licensing Index

................................................................................................................................... ...................................................................................................................................

45 45

46

© 2009 TallApplications BV

Part

I

Introduction

6

DeepSea Obfuscator 2009

1 Introduction The DeepSea Obfuscator 2009 User Guide provides an overview of DeepSea Obfuscator 2009 and provides step-by-step instructions for the most commonly used procedures. The following topics are included in this chapter:

Ø About DeepSea Obfuscator 2009 Ø About This Guide

Ø Staying Up To Date Ø Getting More Help 1.1 About DeepSea Obfuscator 2009

DeepSea Obfuscator 2009 protects your your intellectual property by obfuscating your . NET assemblies. Obfuscation makes it (much) harder for unauthorized personnel to obtain your intellectual property. For example compare these before and after views of a simple assembly.

The following is a brief overview of some of DeepSea Obfuscator 2009's features:

Ø Out of the box protection - Just run DeepSea Obfuscator 2009 and your .NET assemblies are protected. Ø Assembly merging – Merge assemblies for easier deployment. Ø Declarative obfuscation - Integrate your obfuscation settings where they are most appropriate: in your source code. Ø Fast - Finally a developer tool that makes optimal use of your multicore CPU for optimal performance. Ø Build tooling friendly - DeepSea Obfuscator 2009 comes with VisualStudio, MSBuild, NAnt and command line integrations. Ø Developer oriented license model - Licensed per user account, install on as many PC's as needed. It is no longer needed to perform obfuscation only on a build server.

© 2009 TallApplications BV

Introduction 7

Read more about the concepts and then quickly move on to your first obfuscation !

1.2 About This Guide

This guide is based on DeepSea Obfuscator 2009 version 2.1.5.119. The latest version of this document is included in the DeepSea Obfuscator 2009

installation and available from: www.deepseaobfuscator.com .

If anything in this document is unclear or if an error is found, please let us know. Send your comments and remarks to support@deepseaobfuscator. com . Please include the document name, version and a page number or text excerpt if applicable.

1.3 Staying Up To Date DeepSea Obfuscator 2009 is equipped with an automatic update feature. This feature requires a direct connection to the Internet. On start-up, DeepSea Obfuscator 2009 will check for available updates. If an update is found you will be asked if you want to install the update. You will need to restart the application after the update has been downloaded.

1.4 Getting More Help

To get more help with DeepSea Obfuscator 2009, try the following sources:

Ø For the latest information, visit www.deepseaobfuscator.com . Ø If you have a specific issue not addressed in this document or on the web site, please contact the DeepSea Obfuscator 2009 support team at support@deepseaobfuscator.com .

We're happy to assist you!

© 2009 TallApplications BV

Part

II

Getting started

Getting started 9

2 Getting started This chapter will help you to get started with DeepSea Obfuscator 2009. The concepts of DeepSea Obfuscator 2009 will be explaned and a walkthrough of DeepSea Obfuscator

2009's of your first obfuscation is presented. The following topics are included in this chapter:

Ø Concepts Ø Your First Obfuscation

Ø Your Second Obfuscation Ø Adding obfuscation features Ø Obfuscation projects Ø Reading obfuscated stack traces Ø Where to go from here

2.1 Concepts DeepSea Obfuscator 2009 is typically invoked during the last stages of your build process. It takes compiled and fully linked assemblies and converts them into obfuscated assemblies.

DeepSea Obfuscator 2009 performs a series of conversions on each assembly. These conversions preserve the function implemented in the assembly, but make it much harder to understand and retrieve the original sources. For example compare these before and after views of a simple assembly.

© 2009 TallApplications BV

10

DeepSea Obfuscator 2009

Which conversions are executed is controlled by so called features. The most common feature is "rename". This feature renames all symbols of internal types and members into something that is hard to understand and has no relation what so ever with the original source code. The features that DeepSea Obfuscator 2009 will perform are found in the assemblies themselves by means of obfuscation attributes or in an external configuration file. The . NET framework has specified two attributes (in the System.Reflection namespace) that are used to specify obfuscation features:

o ObfuscationAttribute o ObfuscateAssemblyAttribute

A full description of these attributes and their semantics is given in Obfuscation Reference .

When DeepSea Obfuscator 2009 does not find any obfuscation attributes it will perform a default feature set. This set is configured such that all internal types and members are renamed and typical obfuscation problems (such as resource files, XML serialization etc.) are avoided using Smart Protection rules. 2.2 Your First Obfuscation Now we'll present a step by step instruction for your first obfuscation. We'll use the HelloWorld sample application that is found in the Samples folder. This application has no obfuscation attributes, so the default feature set will be used.

1. First open Windows Explorer in the HelloWorld\bin sample folder. 2. Right click on HelloWorld.exe

© 2009 TallApplications BV

Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10

Made with FlippingBook flipbook maker