Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

WinRT Codesicherheit: Kann der "Quellcode" wie bei .NET angesehen werden? Welche Obfuscatoren gibts?

Moderationshinweis von herbivore (25.03.2013 - 09:15:31):

Dies ist ein Thread, auf den aus der FAQ verwiesen wird. Bitte keine weitere Diskussion, sondern nur wichtige Ergänzungen und diese bitte knapp und präzise. Vielen Dank!

Neidhard
myCSharp.de - Member



Dabei seit:
Beiträge: 140

Themenstarter:

WinRT Codesicherheit: Kann der "Quellcode" wie bei .NET angesehen werden? Welche Obfuscatoren gibts?

beantworten | zitieren | melden

Hallo,
unter uns sind sicher einige die bereits mit WinRT gearbeitet haben.
Ich möchte demnächst ebenfalls in diese Richtung gehen und frage mich ob es, wie bei dem bisherigen .NET, so einfach ist den Code einzusehen und falls ja welche Möglichkeiten es derzeit gibt um das zu erschweren.
Gehen evtl. die normalen Obfuscatoren, die bereits jetzt für .Net2/4 angeboten werden?

Cu
Neidhard
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1892
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Das Thema ist doch bereits ein klassiker oder?
Da du weißt wie der aktuelle Stand mit einsehen von Code ist, ist das Thema an sich doch beantwortet oder?

Da .Net so oder so auf dem IL Code arbeitet wirst du deinen Code nicht zu 100% unlesbar machen.
Ein Obfuscator erschwert zwar das lesen aber es gibt auch dafür Mittel und Wege um den Code wieder lesbar zu machen.

Wenn du deinen Code unlesbar machen willst entwickle mit nativem Sprachen wie C/C++.
Da ist man besser beraten.

T-virus
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo T-Virus,
Zitat
Das Thema ist doch bereits ein klassiker oder?
das sehe ich nicht so, zumindest nicht in Bezug auf WinRT. Es heißt ja immer, dass WinRT ein natives, COM-basiertes API ist. Das spricht nicht für die Einsehbarkeit des Codes. Und obwohl auch im Zusammenhang mit WinRT von einer Runtime und eine Sandbox gesprochen wird, ist zumindest in dem deutschen und englischen Wikipedia-Artikel zu WinRT nicht die Rede von IL-Code oder ähnlichem. Also ich muss sagen, ich wüsste momentan gar nicht so genau, ob der Code bei WinRT genauso einsehbar ist wie bei .NET einsehbar ist. Wobei wohl auch WinRT eine bestimme Art von Reflection ermöglicht.

Ich würde bezweifeln, dass man .NET-Obfuscatoren auch für WinRT verwenden kann, wenn es da denn überhaupt nötig ist.

herbivore
private Nachricht | Beiträge des Benutzers
Blacal
myCSharp.de - Member



Dabei seit:
Beiträge: 392

beantworten | zitieren | melden

Hi Kollegen,

schelchte Nachricht an euch:
Man kommt relativ Problemlos ran. Jede WinRT App wird in C:\Program Files\WindowsApps installiert. Zwar hat der Ordner standardmäßig einen anderen Besitzer, den kann man aber umstellen, damit man den Ordner anguken kann. Ist man erst drin, kann man von verwalteten Programmen die Assemblies per ILSpy angucken.

EDIT: Hier noch ein Artikel dazu:
Reverse Engineering and Modifying Windows 8 apps

Gruß
Roland
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Blacal am .
Attachments
private Nachricht | Beiträge des Benutzers
Neidhard
myCSharp.de - Member



Dabei seit:
Beiträge: 140

Themenstarter:

beantworten | zitieren | melden

Das ist schlecht. Gibt es denn derzeit Gegenmaßnahmen?
private Nachricht | Beiträge des Benutzers
Blacal
myCSharp.de - Member



Dabei seit:
Beiträge: 392

beantworten | zitieren | melden

Mit Google relativ schnell zu finden:
Babel Obfuscator
EDIT: Soll keine Werbung sein. Kannte den hier bis vor 5 Minuten nicht und es gibt sicherlich auch andere ;)

Wichtig ist auch zu wissen, dass das Gleiche auch für Html/Javascript Apps gilt. Auch hier müsste man den Quellcode obfuscieren.

Gruß
Roland
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Blacal am .
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Blacal,
Zitat von Alberto Ferrazzoli vom 20.8.2012
We are now working on version 6.0.0.0 to support WinRT and we plan to release this new version in September.

Aktuell ist Version 5.6.0.0 vom 04.08.12. Die hat entsprechend wohl noch keine Unterstützung für WinRT. Da wir schon fast Mitte Oktober haben, kann man natürlich darüber spekulieren, ob die Verzögerung daher kommt, dass die WinRT Unterstützung doch nicht so einfach einzubauen ist. Aber das ist wie gesagt nur eine reine Vermutung. Vielleicht weiß jemand anders aus dem Forum mehr.

herbivore
private Nachricht | Beiträge des Benutzers
iSliver
myCSharp.de - Member



Dabei seit:
Beiträge: 59

beantworten | zitieren | melden

de4dot: .NET deobfuscator and unpacker

Die gängigen Obfuscatoren werden damit 1 click reversed , auch das oben genannte Babel.

Momentan bietet confuser die beste Sicherheit, aber es ist auch nur eine Frage der Zeit bis das mit 1 click Tools umgangen wird.

mfg iSliver

edit:/
It currently supports the following .NET obfuscators:

Babel.NET
CliSecure / Agile.NET
CodeFort
CodeVeil
CodeWall
Crypto Obfuscator
DeepSea
Dotfuscator
Eazfuscator.NET
Goliath.NET
ILProtector
MPRESS
.NET Reactor
MaxtoCode
Rummage
Skater.NET
SmartAssembly
Spices.Net
Xenocode
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von iSliver am .
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo iSliver,

Information, die verloren ist, z.B. die originalen Variablennamen oder die Namen von privaten Methoden, können prinzipiell nicht wiederhergestellt werden. Diese Namen können höchstens durch weniger kryptische, aber noch lange nicht sprechende Namen ersetzt werden.

Davon abgesehen vermisse ich bei deinem Beitrag den Bezug zu WinRT.

herbivore
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5985
Herkunft: Leipzig

beantworten | zitieren | melden

Zitat von iSliver
de4dot: .NET deobfuscator and unpacker

WTF?
Zitat von de4dot-Webseite
  • Supports some popular obfuscators
  • Deobfuscates control flow
  • Cross-assembly symbol renaming
  • Decrypts strings
  • Decrypts resources
  • Dumps embedded assemblies
  • Dumps encrypted methods
  • Deobfuscated files are runnable
  • Removes other obfuscator junk
  • Supports pure managed .NET files only
  • Fixes peverify errors created by the obfuscator
  • 100% Open Source

Wenn es solche Tools gibt, kann man sich ja wirklich die Mühe sparen, seine Assemblys zu obfuszieren.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers

Moderationshinweis von herbivore (12.10.2012 - 19:18:52):

Wenn ihr das Thema Deobfuscatoren weiter diskutieren wollt, dann bitte in einem neuen Thread. Hier geht es um Codesicherheit von WinRT. Dafür spielt es natürlich auch eine Rolle, dass es Deobfuscatoren gibt, aber Details würden wie gesagt in einen extra Thread gehören, zumal die genannten (De)Obfuscator sich in er erster Linie auf .NET und (noch) nicht auf WinRT beziehen.

bredator
myCSharp.de - Member



Dabei seit:
Beiträge: 368

beantworten | zitieren | melden

Ich habe heute mein Babel-Lizenzupgrade auf 6.0.0 erhalten, welches Support für WinRT bietet. Fertig war die Version wohl schon seit ein paar Tagen, die Lizenzupgrades wurden aber erst jetzt verteilt. Es gibt damit also schon den ersten (wohl auch ein paar mehr) Obfuscator, der WinRT unterstützt. Ausprobiert habe ich das, mangels Testgerät, allerdings noch nicht.
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Hat schon jemand einen obfuscator erfolgreich bei WinRT Apps benutzt?
Ich möchte eine App einrechen. Aber davor möchte ich es mit einem Obfuscator bearbeiten. Noch gibt es nicht viele Informationen dazu. Weder bei den Entwicklern von den Obfuscators, noch allgemein im Netz.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5985
Herkunft: Leipzig

beantworten | zitieren | melden

Can WinRT application use obfuscation?
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Wie soll mir der Link helfen? Dort wird nicht erwähnt mit welchem Obfuscator es funktioniert.

Bevor ich jetzt 200$ und mehr für einen obfuscator ausgebe, würde ich gerne sicher sein, dass der auch wirklich mit WinRt funktioniert und ob behandelte Apps durch die Kontrolle von Microsoft durchkommen.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5985
Herkunft: Leipzig

beantworten | zitieren | melden

Obfuscatoren haben Demoversionen zum ausprobieren und Webseiten, wo man sich informieren kann.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Mit einer Demo-Version behandelte App reiche ich doch nicht bei MS ein.
Ich würde gerne Erfahrungen von Leuten hören die bereits ein Obfuscator bei einer eingereichten Windows Store App erfolgreich genutzt haben.

Und ich habe bei keinem der Hersteller auf der Webseite genaue Informationen zu deren Programmen im Bezug auf WinRT gefunden. Höhstens Werbetexte, dass es jetzt auch mit WinRT funktioniert. Mehr leider nicht.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo el_vital,

ich will sicher nicht vereiteln, dass noch jemand von seinen Erfahrungen berichtet. Immer her damit!

Auf der anderen Seite vermute ich, dass solche Erfahrungen noch so dünn gesät sind, dass sich vielleicht keiner findet, der davon berichten kann. Deshalb lass mich sagen, dass wenn auf einer Webseite steht, dass der Obfuscator für WinRT geeignet ist, ich dies als Zusicherung dieser Eigenschaft verstehen würde und sich der Händler aus meiner Sicht nicht darauf zurückziehen kann, dass dies nur als unverbindliche Werbeaussage zu verstehen gewesen wäre. Nach deutschem Recht würde dann ein wesentlicher Sachmangel vorliegen, der den Händler aus meiner Sicht auf Wunsch des Kunden zur Rücknahme des Produkts und Erstattung des Kaufpreises verpflichten würde.

Du kannst natürlich versuchen, dir die Eignung des Produkts für die Verwendung im Zusammenhang mit dem Windows App Store vorher vom Händler verbindlich bestätigen zu lassen.

Wichtig: Ich habe extra immer Händler geschrieben, weil der nach deutschem Recht der Vertragspartner und damit in der Pflicht ist. Natürlich kann man auch beim Hersteller nachfragen, nur ist fraglich, in wieweit eine Aussage/Auskunft des Herstellers den Händler verpflichtet. Der ist eigentlich nur für seine eigenen Aussagen und die Aussagen des Herstellers, die er übernimmt oder sich auf andere Weise zu eigen macht, verantwortlich.

herbivore
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Ich werde mir ein Programm kaufen und hier berichten. Ich hätte nach der Beschreibung des Herstellers gerne den ".Net Obfuscation | Dotfuscator" in PRO von preemptive.com, aber dort ist nichteinmal ein Preis angegeben.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16109

beantworten | zitieren | melden

Auf nem Event neulich hat nen MS Guru gesagt, dass es voellig sinnfrei ist irgendwelches Geld oder Aufwaende in ein Obfuscator zu setzen.
Wenn man Business-Logik vor anderen wirklich schuetzen will, ist der einzige Weg, einen WebService zu konsumieren.

Es gibt einfach zuviel gute Tools, die einen verschleierten Code innerhalb weniger Sekunden brauchbar zurueckwandelt.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Es geht mir bei dieser App nicht um Business-Logic oder um Daten.
Es geht um von mir programmierte Benutzersteuerelemente und bestimmte Algorithmen.

Es ist mir klar, dass es wieder in einigermaßen brauchbaren Code wandeln kann, aber ich möchte durch Obfuscator verhindern, dass meine App mit einem etwas anderem Aussehen und einem anderen Namen eine Woche später mehrfach in dem Store landet.

Es ist keine sehr komplexe App, aber etwas Programmieraufwand steckt schon drin.

Den Code in klarer Form zu lassen wäre Wahnsinn.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von el_vital am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16109

beantworten | zitieren | melden

Du verstehst es nicht.
Es spielt keine Rolle ob Benutzer-Steuerelement oder Algorithmen oder Business-Code. Es gibt Tools, die verschleierten Code binnen Sekunden mit einem Tastendruck in lesbaren Code umwandelt.

Wenn jemand Deine Steuerelemente will, dann kriegt er die ohne großen Aufwand - mit ohne oder verschleiern.
Wenn Dir die Tatsache egal ist oder Du sie verdrängst dann gib ruhig ein paar Hundert Euro sinn-frei für so ein Tool aus.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Ich verstehe es schon. Ich möchte nur nicht, dass jeder Hinz und Kunz, der ein Programm zum wandeln in den sichtbaren Code nicht hat oder damit nicht umgehen kann, meine app vollständig oder in Teilen ohne Aufwand kopieren kann.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von el_vital am .
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Ich habe eben gesehen, dass die appx-Datei neben der EXE und den DLL's auch die xaml Dateien im Klartext beinhaltet.

Wenn das alles in dem WindowsApps Ordner landet, ist es auch unschön
private Nachricht | Beiträge des Benutzers
el_vital
myCSharp.de - Member



Dabei seit:
Beiträge: 366

beantworten | zitieren | melden

Ich nutze jetzt den "Crypto Obfuscator For .Net" von LogicNP Software.
Damit funktioniert es gut und meine App wurde erfolgreich zertifiziert und in den Shop gestellt.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von el_vital am .
private Nachricht | Beiträge des Benutzers