C# - Klasse automatisch von dem Programm erstellen und kompilieren lassen

Palladin007

assimiliert
nAbend

Ich würde es gerne schaffen, dass mein Programm eine weitere Klasse nach einem vordefinierten Abbild schreibt und anschließend kompiliert.

Ich möchte dann eine exe haben, die genau so arbeitet, wie ich es vorher im Programm, das die exe erstellt hat, vordefiniert ist.


Als Erklärung, was ich vorhabe:
Ich möchte so Informationen in einer Datei sichern lassen.

Eine exe kann man nicht einfach mit dem Editor öffnen.

Und so soll die Klasse aussehen:

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Gesicherte_Daten
    {
        // Das ist die PIN, die hier gespeichert wird, wenn die Klasse erstellt wird.
        private int gespeicherte_PIN = 1234;
        // Das sind die Informationen, die beim erstellen dieser Klasse hier gespeichert werden
        private string gespeicherte_Daten = "Information";

        // Die Klasse wird aufgerufen und eine vorher eingegebene PIN wird übergeben
        public string gesichert(int PIN)
        {
            // Die übergebene PIN wird geprüft
            if (PIN == gespeicherte_PIN)
            {
                // Wenn die PIN stimmt, werden die gespeicherten Informationen ausgegeben
                return gespeicherte_Daten;
            }
            else
            {
                //Wenn die PIN nicht stimmt, wird einfach 0 ausgegeben, was im Programm dann registriert wird.
                return "0";
            }
        }
    }
}



Ist das möglich und wenn ja, wie?
 
Wie? Du willst ein Programm, dass für dich ein Programm schreibt, also programmiert?

Oder willst du einfach nur die Daten speichern und wieder einlesen?

btw: Es ist durchaus möglich, eine EXE mit dem Editor zu öffnen. Und man kann durchaus Informationen daraus wiederherstellen. Eventuell hast du es nicht mitbekommen, aber es gab da in den letzten Wochen ein paar Pressemeldungen bezüglich CCC und Staatstrojana.
 
Zuletzt bearbeitet:
Entweder

Sourchcodedatei automatisch gererieren, diese anschließend compilieren und binden
(wobei ich darauf wette, daß die PIN lesbar bleibt)

oder

Binäre Datei erzeugen und diese ausreichend verschlüsseln
 
Binäre Datei wäre dann wohl die zweite Variante, nur hab ich davon bis jetzt noch null Ahnung^^

Ich fand die Idee mit der exe halt ganz gut, weil man auf diese Weise gleich ein paar Optionen einbauen kann.
Z.B. könnte man sie so erstellen, dass die Datei als kleines Programm agieren kann.
Wenn der Nutzer vorher erlaubt hat, dass sie unabhängig vom Programm Informationen preis geben kann, dann kann man sie mit einer eigenen PIN starten, wenn nicht, dann bleibt die Main-Methode halt einfach weg.
Und außerdem ist es für den "Normal-Nutzer" kaum möglich, diesen Inhalt der exe sichtbar zu machen.


(wobei ich darauf wette, dass die PIN lesbar bleibt)

Das hoffe ich mal nicht, denn sonst würde die ganze Idee den Bach runter gehen.



btw: Es ist durchaus möglich, eine EXE mit dem Editor zu öffnen. Und man kann durchaus Informationen daraus wiederherstellen. Eventuell hast du es nicht mitbekommen, aber es gab da in den letzten Wochen ein paar Pressemeldungen bezüglich CC und Staatstrojana.

Ja, ich habe davon gehört.

Aber was willst du damit sagen?
Hat dieses Programm jede exe durchsuchen können?
Ist das nicht sowieso bei jedem Viren-Scanner Standard-Voraussetzung, weil sonst die Datei nicht mit der Datenbank verglichen werden kann?

Wenn ich ehrlich bin, würde mich das wirklich interessieren, denn auf diese Weise kann ich mir kleine Tools öffnen und als Vorlage für eigene Versuche verwenden.
Oder ich kann den Quell-Text übernehmen und das Programm auf eigene Faust verändern, wie ich es mir wünsche. (Natürlich nur für den Eigen-Gebrauch^^)
 
Reverse Engineering ist nicht so einfach. Es gibt Decompiler, wie beispielsweise ida, mit denen man ausführbare Programme zu einem gewissen Anteil in Quellcode zurückverwandeln kann. Extrem schwer lesbar und wenn du nicht ein paar Jahre Programmiererfahrung auf dem Buckel hast, wirst du nichts damit anfangen können.

Viel mehr kann ich dir auch nicht sagen, da das ein Thema ist, mit dem ich mich bisher nicht beschäftigt habe.
 
Schade, das erklärt, warum ich bis jetzt nichts gefunden habe.


Aber es gibt meiner Idee Sicherheit, solange die gespeicherten Daten nicht so lesbar sind.^^
 
Jain. Einige Zeichenketten findet man in den meisten Fällen relativ problemlos beim öffnen mit einem einfachen Editor. Was kompliziert ist, ist das wiederherstellen des Sourcecodes.
 
Ja, wie man die erstellt, hab ich schon gefunden^^


Nur das entschlüsseln nicht


Hab jetzt so eine Methode gefunden, die ganz simpel verschlüsselt :(
Irgendwie entmutigend, aber meine eigene Art, zu verschlüsseln hat ein paar Vorteile:
1. Praktisch nur Zufall, was das knacken nicht gerade einfach macht^^
2. Die Ausgabe ist viel kleiner

Nachteil ist aber, dass als Ausgabe neben dem Code noch eine Datei ausgegeben wird. Und die wollte ich auf diese Weise schützen.
Selbst, wenn man die lesen kann, bringt das gar nix, aber es ist besser, wenn man da nicht eine eventuelle Lücke lässt^^
 
Oben