Laden...

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

Erstellt von Neidhard vor 11 Jahren Letzter Beitrag vor 11 Jahren 12.394 Views
Information von herbivore vor 11 Jahren

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!

N
Neidhard Themenstarter:in
135 Beiträge seit 2006
vor 11 Jahren
WinRT Codesicherheit: Kann der "Quellcode" wie bei .NET angesehen werden? Welche Obfuscatoren gibts?

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

T
2.219 Beiträge seit 2008
vor 11 Jahren

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.

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo T-Virus,

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

B
387 Beiträge seit 2005
vor 11 Jahren

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

N
Neidhard Themenstarter:in
135 Beiträge seit 2006
vor 11 Jahren

Das ist schlecht. Gibt es denn derzeit Gegenmaßnahmen?

B
387 Beiträge seit 2005
vor 11 Jahren

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

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Blacal,

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

I
57 Beiträge seit 2011
vor 11 Jahren

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
49.485 Beiträge seit 2005
vor 11 Jahren

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

5.657 Beiträge seit 2006
vor 11 Jahren


>

WTF?

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

Hinweis von herbivore vor 11 Jahren

Wenn ihr das Thema _De_obfuscatoren 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.

B
357 Beiträge seit 2010
vor 11 Jahren

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.

E
346 Beiträge seit 2007
vor 11 Jahren

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.

5.657 Beiträge seit 2006
vor 11 Jahren

Weeks of programming can save you hours of planning

E
346 Beiträge seit 2007
vor 11 Jahren

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.

5.657 Beiträge seit 2006
vor 11 Jahren

Obfuscatoren haben Demoversionen zum ausprobieren und Webseiten, wo man sich informieren kann.

Weeks of programming can save you hours of planning

E
346 Beiträge seit 2007
vor 11 Jahren

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.

49.485 Beiträge seit 2005
vor 11 Jahren

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

E
346 Beiträge seit 2007
vor 11 Jahren

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.

16.806 Beiträge seit 2008
vor 11 Jahren

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.

E
346 Beiträge seit 2007
vor 11 Jahren

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.

16.806 Beiträge seit 2008
vor 11 Jahren

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.

E
346 Beiträge seit 2007
vor 11 Jahren

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.

E
346 Beiträge seit 2007
vor 11 Jahren

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

E
346 Beiträge seit 2007
vor 11 Jahren

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.