Strings im Programm codieren
-
VirusMaker schrieb:
Kann ich auch das ganze Prog verschlüsseln, also den ganzen compilierten Text?
Du willst dein Programm verschlüsseln, damit man es nicht decompilieren kann?
Oder hab ich da was falsch verstanden?Lg Mentras
-
Ich denke mal er schreibt gerade ein kleines Spiel, bei dem bestimmte Dinge eingegeben werden müssen.Diese sind dann natürlich vorher in ner Variablen abgelegt, in seinem fall ein string!Wie ich es verstehe: Bei seinem Programm kann man mit dem HexEditor einfach die strings, die man eingeben muss, herauslesen und das möchte er verhindern, durch verschlüsselung des Textes

Ich kenn mich da net aus mit Verschlüsselung und ähnlichen, aber mich würde das auch interessieren! Also haut in die Tasten! :p
-
Ja du hast was falsch verstanden. Mit PEIM und den ganzen lustigen Programmen, kann man die .exe reinstellen und man kann dort die strings sich anschauen. Definiere ich also eine Variable in meinem Programm oder benutze ein konstanten String in einer if-Abfrage, kann man diesen String dort an der richtigen Stelle ablesen.
Ich rate dir also die Bitmanipulatoren.
http://www.imb-jena.de/~gmueller/kurse/c_c++/c_operbm.html& bitweises AND
| bitweises OR
^ bitweises XOR (exklusives OR)
<< bitweises Linksschieben (shift left)> bitweises Rechtsschieben (shift right)
~ Einerkomplement (Negation)
-
int main() { char text[6+1] = "geheim"; const char schluessel = 117;//255 Schluessel moeglich for (int i = 0; i < 6; i++) text[i] ^= schluessel; //= xor-Codierung // ...................... toggle for (int i = 0; i < 6; i++) text[i] ^= schluessel; //= xor-Decodierung }
-
Nur werden die Original-Stringliterale so auch weiterhin im Programm gespeichert sein. Man müsste sie schon fast in anderem Format eingeben, z.B. als einzelne Zeichen.
Ob sich das lohnt, ist wieder eine andere Frage...
-
Nexus schrieb:
Nur werden die Original-Stringliterale so auch weiterhin im Programm gespeichert sein. Man müsste sie schon fast in anderem Format eingeben, z.B. als einzelne Zeichen.
Ob sich das lohnt, ist wieder eine andere Frage...
xor-verschlüsselt in die *.exe schreiben geht zB. so:
#include <iostream> int main() { //char text[6+1] = "geheim"; //const char schluessel = 117;//255 Schluessel moeglich const char X = 117; char text[6+1] = {'g'^X,'e'^X,'h'^X,'e'^X,'i'^X,'m'^X,'\0'}; for (int i = 0; i < 6; i++) text[i] ^= X; //= xor-Decodierung std::cout << text << std::endl; }
-
bist ja ein richtiger hacker was egon
-
schlechgelaunt schrieb:
bist ja ein richtiger hacker was egon
Hacken müssen nur die, die etwas nicht selbst prorammieren können - oder?

-
Weil vorallem Bitmanipulation was mit hacken zu tun hat

-
Hey, der Threadersteller heisst VirusMaker, hat Paranoia vor Hex-Editoren und will sein kompiliertes Programm verschlüsseln. Da ist Hacken nicht mal so weit hergeholt...

-
So, danke!
Und nein, ich wollte nicht was hacken, sondern Hangman proggen!
Und da sollten die Wörter nicht ausgelesen werden können!Danke mal für die Antworten, ich werde sie mal ausprobieren!
mfg
-
VirusMaker schrieb:
Und nein, ich wollte nicht was hacken, sondern Hangman proggen!
Und da sollten die Wörter nicht ausgelesen werden können!Wie wäre es, wenn du die Wörter in einer separaten Datei auslieferst, die Datei kannst du ja genau so verschlüsseln. Hat den Vorteil, dass du nicht dein Programm jedesmal neu umschreiben und kompilieren musst, wenn du neue Begriffe hinzufügen willst

-
wuschel123 schrieb:
VirusMaker schrieb:
Und nein, ich wollte nicht was hacken, sondern Hangman proggen!
Und da sollten die Wörter nicht ausgelesen werden können!Wie wäre es, wenn du die Wörter in einer separaten Datei auslieferst, die Datei kannst du ja genau so verschlüsseln. Hat den Vorteil, dass du nicht dein Programm jedesmal neu umschreiben und kompilieren musst, wenn du neue Begriffe hinzufügen willst

auch ne gute idee!
aber wie soll ichs dann verschlüsseln?
das mit XOR eine gute idee, finde ich
-
Ja, XOR ist grundsätzlich nicht schlecht. Nimm einfach einen genügend langen Schlüssel.
Sieh dir vielleicht auch mal den One Time Pad an...
-
Nexus schrieb:
Ja, XOR ist grundsätzlich nicht schlecht. Nimm einfach einen genügend langen Schlüssel.
Sieh dir vielleicht auch mal den One Time Pad an...
naja, da das ja nicht iwas wichtiges ist, nur ein spiel, kann ich ruhig etwas schwaches nehmen...
oder?
-
VirusMaker schrieb:
naja, da das ja nicht iwas wichtiges ist, nur ein spiel, kann ich ruhig etwas schwaches nehmen...
oder?Für deinen Zweck reicht als Schlüssel ein einziges Zeichen. So ist sicher gestellt, dass man die Wörter nicht zufällig liest. Jemand der es wirklich ernst meint wird auch bei einer beliebig schweren Verschlüsselung an die Wörter kommen
-
Für sowas ist es am besten, sich einen möglichst unbekannten Pseudozufallszahlengenerator zu besorgen. Den Algorithmus kannst du leicht verändern. Wahrscheinlich ruinierst du dadurch die Qualität des Algorithmus, ist aber für diesen Fall nicht so dramatisch, solange er dadurch nicht anfängt, reihenweise Nullen zu produzieren.
Dann kannst du deine Wörterdatei verschlüsseln, indem du zu jedem Byte einen Zufallswert zwischen 0 und 255 addierst. Zum Entschlüsseln machst du dasselbe und subtrahierst die Zahlen stattdessen. Den Seed kannst du entweder in die Datei schreiben oder du nimmst einen statischen. Es ist auch ratsam, einen Hashwert in die Datei zu schreiben, sonst kann man die Datei verändern, ohne dass man den Algorithmus kennt.
So verdirbst du mit wenig Aufwand den meisten Leuten gründlich die Lust, deine Wörterdatei lesen zu wollen.Du solltest allerdings bei Programmstart nicht die gesamte Datei in den RAM laden und entschlüsseln, sonst war alles für die Katz.
-
SeppJ schrieb:
VirusMaker schrieb:
naja, da das ja nicht iwas wichtiges ist, nur ein spiel, kann ich ruhig etwas schwaches nehmen...
oder?Für deinen Zweck reicht als Schlüssel ein einziges Zeichen. So ist sicher gestellt, dass man die Wörter nicht zufällig liest. Jemand der es wirklich ernst meint wird auch bei einer beliebig schweren Verschlüsselung an die Wörter kommen
Wirklich ernst nehmen

Der muss schon echt armselig sein, um bei Hangman zu cheaten!
-
VirusMaker schrieb:
Wirklich ernst nehmen

Der muss schon echt armselig sein, um bei Hangman zu cheaten!Aber cheaten, indem man einen Hex-Editor benutzt, ist wohl gerade noch nicht armselig?

-
braucht man ja eh keinen hex-editor!
kann man auch, wenn man mit dem normalen editor aufmacht!
z.b. notepad!