.NET Assemblies und Metadaten

Werbung
.NET Assemblies und
Metadaten
René Löschl
1
Inhalt







Begriffe
Eigenschaften von Metadaten
Vorteile von Metadaten
Typische Metadaten
Zugriff und Verwaltung
Struktur von Assemblies
Eigenschaften von
Assemblies
2
Begriffe







Metadaten
Metadaten-Token
Modul
Manifest
RVA
Assembly
„managed“ Code
3
Eigenschaften von
Metadaten



werden in selber Datei wie
Programm Code gespeichert
werden über Metadaten-Tokens
angesprochen
Metadaten werden in Tabellen
gespeichert
Drei Arten von Tabellen
1.
Definitionstabellen
2.
Referenztabellen
3.
Manifesttabellen
4
Vorteile von
Metadaten






Sprachunabhängigkeit
einfache Versionsverwaltung
einfache Datenübertragung
Einfache Nationalisierung
Sicherheit
Metadaten und „unmanaged“
APIs
5
Komplette Liste der
Metadatentabellen
0x00 Module
0x0B Constant
0x14 Event
0x1D FieldRVA
0x27
Export
ed
Type
0x01 TypeRef
0x0c CustomAttribute
0x15
0x20 Assembly
Property
Map
0x02 TypeDef
0x0D FieldMarshal
0x17 Property
Manif
est
Resou
rce
0x21
AssemplyPr
ocessor
0x04 Field
0x0E DeclSecurity
0x18
MethodS
emantics
0x06 Method
0x0F ClassLayout
0x19
0x10 FieldLayout
0x23
0x1A
AssemblyR
ef
0x24
ModuleR
ef
0x09
0x11 StandAloneSig
InterfaceI
mpl
0x0A
0x1B
AssemblyR
efProcessor
0x25
TypeSpec
0x12 EventMap
0x29 Nested
Class
0x22 Assembly
OS
MethodI
mpl
0x08 Param
0x28
0x1C ImplMap
AssemblyR
ef- OS
0x26 Fie
MemberRe
f
6
Einige
Metadatentabellen
Code
Tabellenname
Spalte
n
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
0x20
Assembly
0x26
File
Hier wird festgehalten, welche Interfaces durch
das Modul beschrieben werden.
6
3
HashAlgId
MajorVersion
Flags
PublicKey
Name
Culture
Assemblies können andere Dateien wie
Dokumentationen oder Konfigurationen mit
.file referenzieren. Diese Tabelle enthält alle
.file Einträge.
7
Prüfung von
Metadaten

1.
2.
3.

1.
2.
3.
Fehlerklassen:
Error
Warning
CLS
Prüfungsregeln:
keine Tabelle zwei gleiche
Zeilen
Prüfen der Bitmasken auf
Richtigkeit
Etc.
8
Zugriff und Verwaltung


Reflection API
COM API
Schwierigkeit besteht darin,
die logische Darstellung von
Metadaten auf ihre
physikalische Repräsentation
abzubilden!
9
Physical Dump „Hello
World“
10
Struktur von
Assemblies
im Windows
kompatiblen
PE-Fileformat

11
Betrachtung von
Assemblies



Dumpbin
PEDump
ildasm
12
Dump eines
Assemblies (1/2)
13
Dump eines
Assemblies (2/2)
14
Physical Dump „Hello
World“
15
Eigenschaften von
Assemblies




einziges Modul darf einen
Eintrag in der AssemblyTabelle
Assembly fasst Module zu
logischer Einheit zusammen
nur wenige Bytes von x86
Code
enthalten Metadaten
16
Fin
Danke für Eure
Aufmerksamkeit…
17
Herunterladen