C# Code schützen. Wie?

  • Hey,


    ich schreibe schon länger in C#, aber nun würde ich gerne wissen, wie ich mein C# am besten
    schützen kann vor decompilern. Ich weiß, dass man nicht direkt was dagegen tun kann, aber ich
    habe etwas von Obfuscation gehört. Ist das auch sicher? o.o


    mfg

  • Obfuscation bedeutet ganz einfach gesagt, den Code nur indirekt zu verändern aber für den Menschen unlesbar zu machen. Selbst wenn dann jemand dein Programm dekompilliert (wovor du dich eigentlich nicht komplett schützen kannst), dann sieht er immernoch nur ein Text-Wirr-Warr, was sehr schwer zu verstehen ist. In sofern ist das schonmal ein erster Schritt in Richtung Sicherheit, aber nicht annähernd komplett.

  • Hmm, Obfuscation sieht schon gut aus, aber das Problem ist, dass wenn sie das Programm decompilen,
    sehen sie trotz Obfuscation meine MySQL Daten und das Serverpasswort :/


    zB:

    C
    public SH_Box(){    this.components = null;    this.Connection_String = "Server=localhost;Port=3306;Database=samp;Uid=root;password=;";    this.server_ip = "HIER_DIE_IP";    this.server_port = "HIER_DER_PORT";    this.server_password = "DAS_IST_DAS_PASSWORT";    this.std_dir = @"C:\";    this.exe_dir = Environment.CurrentDirectory;    this.main_Name = new ArrayList();    this.main_Type = new ArrayList();    this.InitializeComponent();}


    C
    .method public hidebysig specialname rtspecialname instance void .ctor() cil managed{    .maxstack 2    L_0000: ldarg.0     L_0001: ldnull     L_0002: stfld class [System]System.ComponentModel.IContainer samp_launcher.SH_Box::components    L_0007: ldarg.0     L_0008: ldstr "Server=localhost;Port=3306;Database=samp;Uid=root;password=;"    L_000d: stfld string samp_launcher.SH_Box::Connection_String    L_0012: ldarg.0     L_0013: ldstr "HIER_DIE_IP"    L_0018: stfld string samp_launcher.SH_Box::server_ip    L_001d: ldarg.0     L_001e: ldstr "HIER_DER_PORT"    L_0023: stfld string samp_launcher.SH_Box::server_port    L_0028: ldarg.0     L_0029: ldstr "DAS_IST_DAS_PASSWORT"    L_002e: stfld string samp_launcher.SH_Box::server_password    L_0033: ldarg.0     L_0034: ldstr "C:\"    L_0039: stfld string samp_launcher.SH_Box::std_dir    L_003e: ldarg.0     L_003f: call string [mscorlib]System.Environment::get_CurrentDirectory()    L_0044: stfld string samp_launcher.SH_Box::exe_dir    L_0049: ldarg.0     L_004a: newobj instance void [mscorlib]System.Collections.ArrayList::.ctor()    L_004f: stfld class [mscorlib]System.Collections.ArrayList samp_launcher.SH_Box::main_Name    L_0054: ldarg.0     L_0055: newobj instance void [mscorlib]System.Collections.ArrayList::.ctor()    L_005a: stfld class [mscorlib]System.Collections.ArrayList samp_launcher.SH_Box::main_Type    L_005f: ldarg.0     L_0060: call instance void [System.Windows.Forms]System.Windows.Forms.Form::.ctor()    L_0065: nop     L_0066: nop     L_0067: ldarg.0     L_0068: call instance void samp_launcher.SH_Box::InitializeComponent()    L_006d: nop     L_006e: nop     L_006f: ret }


  • Du darfst niemals login daten wie für MySQL in den client schreiben weil sonst wirst du früher gehackt als dir lieb ist. Du musst das mit .php lösen indem du den server abfragst und er dir die Querys ausführt.

  • Aber muss ich mir dann nicht extra ein Webspace anlegen ? ^^
    Weil ich habe nähmlich kein Webspace parat ;x


    Und wo ist dann die MySql Datenbank? Die hast du doch auf einem Server, auf diesem musst du einfach nur das PHP-Script aufrufen und die Werte übergeben.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Naja, "bisher" ist alles über localhost, weil alles in Entwicklung ist.


    Dann packst du halt für die Entwicklung das PHP-Script auch auf den localhost. Später muss die Datenbank ja eh auf einen Server - da muss dann auch die PHP hin.


  • Dann packst du halt für die Entwicklung das PHP-Script auch auf den localhost. Später muss die Datenbank ja eh auf einen Server - da muss dann auch die PHP hin.


    Das Problem ist mein Xampp.. Ich kann darauf keine Sachen installieren, sonder immer nur Starten. Aber der Apache schmiert immer ab, daher kann ich zwar MySQL verwenden, aber nicht das Localhost an sich. Also http://localhost


  • Das Problem ist mein Xampp.. Ich kann darauf keine Sachen installieren, sonder immer nur Starten. Aber der Apache schmiert immer ab, daher kann ich zwar MySQL verwenden, aber nicht das Localhost an sich. Also http://localhost

    Dann blockiert irgendwas den Port 80. Beende mal alle Programme wie Instant Messager(ICQ / Skype). Diese verwenden Port 80 und blockieren diesen somit für Apache.