17
1 .NET Assemblies und Metadaten René Löschl

1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

Embed Size (px)

Citation preview

Page 1: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

1

.NET Assemblies und Metadaten

René Löschl

Page 2: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

2

Inhalt

Begriffe Eigenschaften von

Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung Struktur von Assemblies Eigenschaften von

Assemblies

Page 3: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

3

Begriffe

Metadaten Metadaten-Token Modul Manifest RVA Assembly „managed“ Code

Page 4: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

4

Eigenschaften von Metadaten

werden in selber Datei wie Programm Code gespeichert

werden über Metadaten-Tokens angesprochen

Metadaten werden in Tabellen gespeichert

Drei Arten von Tabellen1. Definitionstabellen2. Referenztabellen 3. Manifesttabellen

Page 5: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

5

Vorteile von Metadaten

Sprachunabhängigkeit einfache

Versionsverwaltung einfache

Datenübertragung Einfache Nationalisierung Sicherheit Metadaten und

„unmanaged“ APIs

Page 6: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

6

0x00 Module 0x0B Constant 0x14 Event 0x1D FieldRVA 0x27 Exported Type

0x01 TypeRef 0x0c CustomAttribute 0x15 PropertyMap

0x20 Assembly 0x28 Manifest Resource

0x02 TypeDef 0x0D FieldMarshal 0x17 Property 0x21 AssemplyProcessor

0x29 Nested Class

0x04 Field 0x0E DeclSecurity 0x18 MethodSemantics

0x22 Assembly OS

0x06 Method 0x0F ClassLayout 0x19 MethodImpl

0x23 AssemblyRef

0x08 Param 0x10 FieldLayout 0x1A ModuleRef

0x24 AssemblyRef-Processor

0x09 InterfaceImpl

0x11 StandAloneSig 0x1B TypeSpec

0x25 AssemblyRef- OS

0x0A MemberRef

0x12 EventMap 0x1C ImplMap 0x26 Fie

Komplette Liste der Metadatentabellen

Page 7: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

7

Einige Metadatentabellen

Code Tabellenname Spalten

Beschreibung

0x00 Module 5 Diese Tabelle enthält nur eine Zeile, die den Namen, die Beschreibung und das GUID speichert, das mit dem Modul verbunden wird.

0x04 Field 3 Diese Tabelle definiert die Attribute für ein Feld, seinen Namen und seine Signatur.

0x06 Method 6 Diese Tabelle enthält für jede im Modul definierte Methode einen Eintrag. In den Spalten werden Informationen und der Startpunkt des Codes gespeichert.

0x09 InterfaceImpl Hier wird festgehalten, welche Interfaces durch das Modul beschrieben werden.

0x20 Assembly 6

0x26 File 3 Assemblies können andere Dateien wie Dokumentationen oder Konfigurationen mit .file referenzieren. Diese Tabelle enthält alle .file Einträge.

HashAlgId MajorVersion Flags

PublicKey Name Culture

Page 8: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

8

Prüfung von Metadaten

Fehlerklassen:1. Error2. Warning3. CLS

Prüfungsregeln:1. keine Tabelle zwei gleiche

Zeilen2. Prüfen der Bitmasken auf

Richtigkeit3. Etc.

Page 9: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

9

Zugriff und Verwaltung

Reflection API COM API

Schwierigkeit besteht darin, die logische Darstellung vonMetadaten auf ihrephysikalische Repräsentationabzubilden!

Page 10: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

10

Physical Dump „Hello World“

Page 11: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

11

Struktur von Assemblies

im Windows kompatiblen

PE-Fileformat

Page 12: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

12

Betrachtung von Assemblies

Dumpbin PEDump ildasm

Page 13: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

13

Dump eines Assemblies (1/2)

Page 14: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

14

Dump eines Assemblies (2/2)

Page 15: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

15

Physical Dump „Hello World“

Page 16: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

16

Eigenschaften von Assemblies

einziges Modul darf einen Eintrag in der Assembly-Tabelle

Assembly fasst Module zu logischer Einheit zusammen

nur wenige Bytes von x86 Code

enthalten Metadaten

Page 17: 1.NET Assemblies und Metadaten René Löschl. 2 Inhalt Begriffe Eigenschaften von Metadaten Vorteile von Metadaten Typische Metadaten Zugriff und Verwaltung

17

Fin

Danke für Eure Aufmerksamkeit…