Bonn-to-code.net Obfuscation mit {smartassembly} 27.01.2009 Jan Welker Website:http://blog.jan-welker.dehttp://blog.jan-welker.de.

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

Seminar „Verteilte Systeme“ Thomas Bischoff
Visual Basic.NET und Visual Basic 6 Ralf Westphal MSDN Regional Director, freier Fachautor & Berater
Deployment und Versioning von .NET Applikationen
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Dipl. Inf. (FH) Paul Mizel Compilerbau.NET Compiler / Codegeneratoren / Skriptsprachen.
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
Objektorientierte Programmierung JDK-Klassenbibliothek
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
WebCast: Managed Smart Tags mit VSTO Jens Häupel.NET Technologieberater Microsoft Deutschland GmbH
Presenter: Daniel Walzenbach Technologieberater
MSDN Webcast: VB. NET für Einsteiger und Umsteiger Einführung in VB
Björn Schmidt, Hoang Truong Nguyen
Zeitplanung. Über uns Jens Schaller Blog: Tool:
Marian Grzesik, Software2Business GmbH. Agenda 1. Bing Maps Accont erstellen 2. Bing Maps SDK downloaden 3. Beispiele a. Basic Applikation b. Navigation.
© by ppedv AG Partner: Silbersponsoren:Veranstalter: Goldsponsor: Automatisierte Generierung von Unit-Tests mit PEX Thomas Schissler
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 3 Folie 2 Layout (1) Zur Anordnung der Steuerelemente.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 6 Folie 2 ASP.NET Einführung (1) Microsoft-Technologien zur Entwicklung.
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Unterprogramme An mehreren Stellen im Programm stehen gleiche Codeabschnitte!! 0000h 0200h Programmspeicher Problem Langes Programm Programm unübersichtlich.
Anwendungen der nächsten Generation
Willkommen in der iBank Ein Schulprojekt von Julian, Dilara, Henriette und Kaya.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
© Roland Angst, 2010Institute of Visual Computing Informatik I for D-MAVT Exercise Session 1.
Test Driven Development - Romano Adler-
Versionsverwaltung für Visual Studio .NET mit Subversion
SQL Server 2005 CLR-Integration
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Developer Day Webseiten auf Windows Azure hosten Britta Labud bbv Software Services AG Roland Krummenacher bbv Software Services AG.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
& Was ist neu im TFS 2013! Referent: Neno Loje
Neno Loje Berater & MVP für Visual Studio ALM und TFS (ehemals VSTS) Hochqualitative Produkte mit Visual Studio & TFS 2010.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Connect Event Vortrag vom bei der FoxPro User Group Schweiz © Marc Voillat, Interbrain AG, 8048 Zürich.
XML IV: Cocoon 2.
Linker & Loader in .NET August Steinbacher.
F-Sharp (F#) Eine multiparadigmatische Sprache. Merkmale von F# Multiparadigmatisch.NET-Sprache Skalierbar und effizient Als Forschungsprojekt von Microsoft.
Virtual Earth Visualisierung von Geodaten Daniel Walzenbach, Microsoft Deutschland GmbH
Windows Azure Training Modul: Windows Azure Media Services (4) Name des Referenten (Berufsbezeichnung)
SharePoint FIS HandsOn – out of the Box.
Uwe Habermann Venelina Jordanova VFX in Cloud.
Bonn-to-code.net Thomas van Veen Website:
Office Business Anwendungen mit SharePoint 2010 Fabian Moritz SharePoint MVP.
Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August Gordon Breuer IT Consultant & Software Engineer Travel & Logistics.
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
© All rights reserved. Zend Technologies, Inc. Jenseits von var_dump(): Debugging in ZF Jan Burkl System Engineer.
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
CIL – Common Intermediate Language All roads lead to Rome (proverb).NET Framework & CLR: All languages lead to Intermediate Language.
Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer
Team-Foundation-Server in der Praxis
Willkommen in der iBank Ein Schulprojekt von Julian, Dilara, Henriette und Kaya.
Titelmasterformat durch Klicken bearbeiten AUTONOME PROVINZ BOZEN - SÜDTIROLPROVINCIA AUTONOMA DI BOLZANO - ALTO ADIGE Stefan Kontschieder, Abt. Deutsche.
D 11 Adress- Dekoder
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
9.5 Microsoft .NET Architektur: objektorientiert/Fernaufrufe (8.1.6 )
 Präsentation transkript:

bonn-to-code.net Obfuscation mit {smartassembly} Jan Welker Website:

bonn-to-code.net Grundlagen C# Quellcode C# Compiler MSIL – managed Code (Microsoft Intermediate Language) Managed Code JIT (Just in Time Compiler) Teil der CLR CPU Maschinencode Unmanaged oder Native Code VB.Net Quellcode VB.Net Compiler Nicht-.NET Sprache Compiler Ngen.exe DateiRAMDatei

bonn-to-code.net DEMO - Erzeugen von IL Code mit ildasm.exe (aus Visual Studio SDK) Aufruf: ildasm.exe ObfuscationDemo.exe /output:ObfuscationDemo.il Die Ausgabe ist eine für den Menschen lesbare ASCII Datei

bonn-to-code.net C# vs. IL private static int CalculateSum(int a, int b) { return a + b + 43; }.method private hidebysig static int32 CalculateSum(int32 a, int32 b) cil managed { // Code size 12 (0xc).maxstack 2.locals init ([0] int32 CS$1$0000) IL_0000: nop // nichts tun IL_0001: ldarg.0 // push arg 0 IL_0002: ldarg.1 // push arg 1 IL_0003: add // addieren IL_0004: ldc.i4.s 43 // push int32 43 IL_0006: add // addieren IL_0007: stloc.0 // pop IL_0008: br.s IL_000a //Sprung IL_000a: ldloc.0 // Index 0 holen IL_000b: ret // Wert zurückgeben } // end of method Program::CalculateSum

bonn-to-code.net IL Code IL ist sehr geschwätzig Metadaten fehlten in dem Beispiel! Metadaten sind z.B. die Beschreibung von Schnittstellen, Klassen und deren Membervariablen Auswertung von Metadaten und IL Code Red Gates Reflector

bonn-to-code.net DEMO 1.Red Gates Reflector 2.{smartassembly} 3.ildasm.exe 4.Red Gates Reflector

bonn-to-code.net Warum Obfuscatoren trotzdem nichts bringen...method private hidebysig static int32 CalculateSum(int32 a, int32 b) cil managed { // Code size 12 (0xc).maxstack 2.locals init ([0] int32 CS$1$0000) IL_0000: nop // nichts tun IL_0001: ldarg.0 // push arg 0 IL_0002: ldarg.1 // push arg 1 IL_0003: add // addieren IL_0004: ldc.i4.s 43 // push int32 43 IL_0006: add // addieren IL_0007: stloc.0 // pop IL_0008: br.s IL_000a //Sprung IL_000a: ldloc.0 // Index 0 holen IL_000b: ret // Wert zurückgeben } // end of method Program::CalculateSum private static int ah (int __0, int __1) /* // Code Size: 36 Bytes.maxstack 2.locals (System.Int32 V_0) L_0000: nop L_0001: br.s L_0010 L_0003: br.s L_0014 L_0005: add L_0006: ldc.i4.s 43 L_0008: add L_0009: br.s L_0018 L_000b: br.s L_000d L_000d: br.s L_001b L_000f: ret L_0010: br.s L_001e L_0012: br.s L_0003 L_0014: br.s L_0021 L_0016: br.s L_0005 L_0018: stloc.0 L_0019: br.s L_000b L_001b: ldloc.0 L_001c: br.s L_000f L_001e: ldarg.0 L_001f: br.s L_0012 L_0021: ldarg.1 L_0022: br.s L_0016 */ Original ILDurch {SA} geschützter IL

bonn-to-code.net Warum Obfuscatoren nichts bringen.. Code wird 3 mal größer in dem unnötige Sprungbefehle eingebaut werden Mit etwas krimineller Energie trotzdem nachzuvollziehen Die Methodensignaturen, die Op-Code Befehle und deren Reihenfolge müssen immer gleich bleiben (JIT) Lediglich sprechende Methodenbezeichner werden umbenannt

bonn-to-code.net Zusammenfassung Es ist kein Schutz des geistigen Eigentums gewährleistet, nur ein Schutz vor dem ersten Blick

bonn-to-code.net Alternativen zu {smartassembly} Dotfuscator Light Version in Visual Studio Installation enthalten Xenocode Postbuild for.NET verfälscht auch die Meta Daten kann nicht mit ildasm.exe oder Reflector geöffnet werden Salamander.NET Protector Erzeugt pseudo-native-Code jeder Decompiler soll chancenlos sein (Herstellerangabe)

bonn-to-code.net Weiterführende Links IL OpCodes: VS 2008 SDK: 04dc45164f5b&displaylang=enhttp:// 04dc45164f5b&displaylang=en Red Gates Reflector: {smartassembly}: Erfahrungsberiche zu {smartassembly}: erfahrungsberichte.aspxhttp://dotnet-forum.de/KnowledgeBase/categories/221- erfahrungsberichte.aspx Dotfuscator: Xenocode Postbuild for.NET: Salamander.net protector: