The Artima Developer Community
Sponsored Link •

.NET Buzz Forum
Ich werde beklaut!

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
-

Posts: 1524
Nickname: nitronic
Registered: Jul, 2006

Norbert Eder works as a software architect.
Ich werde beklaut! Posted: Dec 18, 2008 2:58 PM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by -.
Original Post: Ich werde beklaut!
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Latest .NET Buzz Posts
Latest .NET Buzz Posts by -
Latest Posts From Norbert Eder - Living .NET

Advertisement
Das trifft wohl nicht oft zu. Aber sehr viele Softwareunternehmen haben Angst, beklaut zu werden. Beklaut hinsichtlich Ideen, Sourcecode oder Ähnlichem.

Fast täglich werde ich von unterschiedlichsten Personen darauf angesprochen - meist hinsichtlich WPF - wie man sich effektiv davor schützen kann. Sind erst mal die grundlegenden Informationen bezogen, stellt sich schnell heraus, dass in den meisten Fällen bereits Tools (Obfuscator etc.) eingesetzt werden und das eigentliche Problem ganz wo anders liegt - nämlich in der immerwährenden Angst.

Natürlich, seit es Software gibt, wurde von der Konkurrenz abgekupfert und geklaut. Das wird wohl auch noch so bleiben und kann wohl nie gänzlich ausgeschlossen werden.

Die mir gestellten Fragen bezogen sich meist auf einfache Dinge: Styles, Templates. Und ja, diese Informationen können sehr einfach aus einer Assembly bezogen werden. Alles was man dazu braucht ist der .NET Reflector und das Add-In Baml-Viewer.

Sehen wir uns dies anhand eines Beispiels an. Gegeben sei eine kleine Anwendung, die einen einzigen Button enthält. In der App.xaml wird global für alle Buttons ein Style definiert:
<Style TargetType="Button">
    <Setter Property="FontFamily" Value="Arial"/>
    <Setter Property="FontSize" Value="22"/>
    <Setter Property="BorderThickness" Value="2"/>
    <Setter Property="Background">
        <Setter.Value>
            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                <GradientStop Color="Yellow" Offset="0.0"/>
                <GradientStop Color="Orange" Offset="1.0"/>
            </LinearGradientBrush>
        </Setter.Value>
    </Setter>
</Style>

Nach dem Kompilieren der Anwendung, wird die erstellte Assembly (in diesem Fall die die ausführbare Anwendung) im Reflector geöffnet. Innerhalb der Ressourcen finden sich die generierten Ressourcen für unsere Anwendung. In <i>AssemblyName</i>.g.resources auch die zu BAML kompilierten XAML-Dateien:



Mit installiertem BamlViewer kann nun über das Tools-Menü eben dieser aufgerufen werden. Als Ergebnis werden zwei zusätzliche Bereiche angezeigt. Im ersten werden die enthaltenen Baml-Dateien gezeigt. Bei Klick auf eine dieser Dateien wird das XAML im zweiten Bereich gezeigt:



Damit ist es nun ein Leichtes, um an fremde Styles, Templates und dergleichen heran zu kommen. Dies ändert sich auch nicht, wenn beispielsweise ein Tool á la den Dotfuscator verwendet wird. Das XAML bleibt vor diversen Änderungen unberührt. Zudem sollte mit Obfuscatoren und XAML besonders vorsichtig umgegangen werden. Typen, die von XAML aus benötigt werden, sollten beispielsweise nicht umbenannt werden, da diese anschließend nicht mehr gefunden werden können. Lediglich {smartassembly} bietet kleine Unterstützungen in diese Richtung an.

Generell ist anzumerken, dass es zwar sicherlich einige geben wird, die sich hart erarbeitete Styles von anderen "besorgen" werden. Der Punkt ist aber weiterhin die Businesslogik. Diese entsteht oft in Mannmonaten bzw. -jahren und kann nicht so einfach analysiert werden. Im der dafür notwendigen Zeit ist der Hersteller ein gutes Stück weiter und der Erfolg des Reengineerings hält sich somit in Grenzen.

Es verhält sich also ähnlich zu Websites: Auch hier können Styles und die notwendigen Images sehr schnell bezogen werden - die rechtlichen Konsequenzen inklusive. Das Layout macht aber noch keine Anwendung ...

Read: Ich werde beklaut!

Topic: Best of Blog 2008 Previous Topic   Next Topic Topic: Deutsch im Koffer

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use