Hack mich!

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Hack mich!

Beitrag von Kiffi »

Dadido3 hat geschrieben:Meine Vorgehensweise:
danke! Anhand Deiner Anleitung konnte ich das jetzt auch mit wenigen Klicks nachvollziehen. :allright:

Auf die Idee, den Browser in den Pausenmodus zu setzen, um dann das Button-Click-Event abzufangen, bin ich gar nicht gekommen.

Hintergrund der Aktion: Diese 'Verschlüsselung' ist eine Art Zusatz-Feature eines Transpilers, den ein befreundeter Programmierer geschrieben hat. Er hat mich darum gebeten, eine Einschätzung abzugeben, wie schwierig es ist, an den unverschlüsselten JS-Code zu kommen. Da ich das selber nicht beantworten konnte, habe ich diese simple Seite erstellt.

Mir ist natürlich klar, dass sensible Daten nichts im clientseitigen JavaScript verloren haben. :)

Nochmals Danke an alle Mitwirkenden für den Input & Grüße ... Peter
Hygge
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Hack mich!

Beitrag von TroaX »

So ganz verstehe ich nicht, warum selbst heute noch das unendliche Bedürfnis besteht, Quellcodes von z.B. Javascript oder auch PHP verschlüsseln zu müssen. Das Problem an diesen Sprachen ist, das sie zu den neuesten Generationen gehören und Runtimes sowie Paketmanager einen extrem großen Teil der Funktionalitäten stellen. Dadurch wird der eigentliche Anwendungscode in den Hintergrund rücken. Ich weiß, das man versucht seinen Code zu schützen. Aber wirklich Sinn macht das nur bei kompilierter Software. Bei JS oder auch PHP kann man nahezu jede Funktionalität binnen weniger Minuten nachprogrammieren.

Man liefert den Schlüssel dem Browser zwangsläufig mit aus. Außerdem landet bereits der entschlüsselte Code im RAM und da Browser die Debug-Tools dabei haben, ist das analysieren des Codes keine Herausforderung mehr.

Das beste ist eine Mischung aus Kompression und Obfuscator. Es verschwendet keine Performance und es bedarf schon einiges an Kleinarbeit, um einen nachvollziehbaren Code zu erhalten. Es ist aber dennoch nicht wirklich sicher. Es erhöht nur den Aufwand. Wenn es aber um Strings im Code geht, dann würde ich schauen, auch nur die zu verschlüsseln und anstatt Schlüssel direkt in den Code zu schreiben, den Schlüssel aufwendig errechnen zu lassen. Aber auch hier gilt: Wenn mit den Daten gearbeitet wird, liegen sie irgendwann unverschlüsselt im Speicher!
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Hack mich!

Beitrag von NicTheQuick »

Ich gebe dir Recht, TroaX, aber ich verstehe das Beispiel mit PHP nicht. Das läuft ja nicht clientseitig. Das kann also niemand einfach so auslesen. Höchstens der Betreiber des Servers selbst, aber das wäre dann ja bei allen Skriptsprachen so.
Bild
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Hack mich!

Beitrag von Derren »

NicTheQuick hat geschrieben:Ich gebe dir Recht, TroaX, aber ich verstehe das Beispiel mit PHP nicht. Das läuft ja nicht clientseitig. Das kann also niemand einfach so auslesen. Höchstens der Betreiber des Servers selbst, aber das wäre dann ja bei allen Skriptsprachen so.
Das kommt idR dann zum Tragen, wenn man Software verkauft.

Du hast ein tolles Programm, wie z.B. so ein Forum (gibt ein paar, die was kosten), oder ein Ticketsystem oder,... Du verkaufst die Software und willst natürlich nicht, dass jeder Horst deine Ideen klauen kann.
Ggf. kann man sogar die Lizenzierung darüber ablaufen lassen, wie weiter oben erwähnt: Der gesamte Code ist mit "12345" verschlüsselt, was gleichzeitig auch der Lizenzschlüssel ist. Kunde B bekommt eine Version, die mit "98765" verschlüsselt ist.

Das selbe hast du doch hier auch. Dieser Ruf nach einem "static lib"-compiler, so dass man den Code seiner Includes nicht preisgeben muss, der Endanwender aber trotzdem keine nervige DLL einbinden muss.
Signatur und so
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Hack mich!

Beitrag von TroaX »

Genau darum geht es. Vertrieb der Software. Ohne verschlüsseltem Code gestaltet sich der Vertrieb nur wenig gewinnbringend. Bei PHP wurde lange Zeit der IonCube-Loader verwendet, um die Anwendung zu ver-/entschlüssen. Das Problem dabei ist nur, das man heute für nahezu jeden Einsatzzweck das passende Schwergewicht an Framework zur Verfügung hat und dadurch jede Funktionalität mit wenig Code nachempfinden kann.

Im Grunde schützt man damit nur die Fingerübungen für versierte Programmierer. Und das ist mit Javascript nicht anders.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Antworten