Softwareschutz im Jahr 2025
Oh! Heute habe ich endlich mein neues Unity Studio bekommen!Mit zitternder Hand packe ich den Inhalt der Verpackung aus. Oh ja! Ein kleiner Kristall, nur halb so groß wie eine Handfläche, und darauf alles: ein Prozessor, ein Speicher (ausreichend für die meisten maximalen Funktionen), ein Videoprozessor, ein Audioprozessor, das Programm selbst.Moores Gesetz ist hart und gnadenlos: Verdoppelung der Anzahl der Transistoren auf der Platte alle zwei Jahre. Dank der kontinuierlichen Entwicklung von Intel-Prozessoren (gefolgt von NVidia, AMD, Samsung und anderen) gelang es ihr, den Inhalt der Systemeinheit in einen Prozessor zu packen. Danach wurde der Prozessor nicht mehr als Prozessor bezeichnet, sondern wurde zu einem Kristall und reduzierte seine Kosten so sehr, dass die Idee selbst möglich wurde Kristallprogramm.Ich stecke es in das Bedienfeld meines Computers: Der Kristall tritt in den Steckplatz ein und rastet ein, und auf dem Desktop wird ein Symbol angezeigt. Das ist alles! Die Installation ist abgeschlossen! Jetzt müssen Sie nicht mehr lange auf etwas warten ... Die Deinstallation ist ebenfalls einfach - ziehen Sie den gewünschten Kristall in einem von 256 Nestern heraus. Dies ist jedoch eine harte Deinstallation, weich - über das entsprechende Menü im Betriebssystem.Dies ist zwar der vierte Kristall davon, die 7. Version des Studios ... Nun, was können Sie tun, Updates verbreiten sich nicht im Internet, sie können es nicht. Nur wegen dieser Situation: Jeder Prozessor hat seine eigene Codebasis. Das heißt, das MOV EAX, EDX-Team hat einen Opcode nicht von 8BC2, aber ... niemand weiß, welcher. Der Satz von Opcodes wird werkseitig zufällig bestimmt, wenn die Platte verbrannt wird. Und dann geht die Zusammenstellung des Programms darunter.Perfekter Schutz! Niemand kann einen Virus schreiben, wenn die Assembler-Befehle unterschiedlich sind! Ich erinnere mich, dass es vor zehn Jahren Sprachen mit einer eigenen virtuellen Maschine gab ... Und jetzt sind c # und Java kompilierte Sprachen.Was ist in der Tat der Unterschied, auf welchem Betriebssystem der Benutzer sitzt, wenn die Umgebung nur Fenstergrößen und Ein- / Ausgabe angeschlossener Geräte an das Programm überträgt und das Programm ein fertiges Bild liefert? Gleichzeitig sind alle Eingabe- / Ausgabe-APIs aller Geräte für jedes Betriebssystem streng standardisiert und ein Schritt nach links, ein Schritt nach rechts - ein Entkommen wird in Betracht gezogen, und ein Sprung an Ort und Stelle ist eine Provokation.Ja, es gibt Nachteile - Sie müssen Programme per Post senden und einen „Prozessor des Entwicklers“ für die Entwicklung bestellen.Es wird separat von jeder Entwicklungsumgebung geliefert. Übrigens fragt die Entwicklungsumgebung selbst nach der Codetabelle der Assembler-Opcodes für einen bestimmten Prozessor des Entwicklers, und es ist nicht möglich, sie für Forschungszwecke abzurufen - Verschlüsselung, Sicherheitsprotokolle, all das ... wenn nachgewiesen wurde, dass die Codetabelle aus dieser Entwicklungsumgebung bezogen werden kann - hohe Bußgelder und Einfrieren von Release-Batches. Aber dann können Sie nicht befürchten, dass der Quellcode „ins Netzwerk gelangt“ - warum ist es notwendig, wenn der Prozessor des Entwicklers wie ein Auto ist?Ich bin einer der wenigen, die sich einen Entwicklerprozessor leisten können ... Und das liegt daran, dass ich den letzten Teil der Programmierer mache - die Webentwicklung.Auch ist übrigens keine leichte Aufgabe. Jede Dynamik - läuft auf der Serverseite und wird kompiliert. Und es kann kein aktiver Code an den Benutzer übertragen werden. Aber der Benutzer kann alle Mausklicks und Tastatureingaben übertragen ... Ja, die Server mussten leistungsfähiger werden ... Das heißt, jetzt ist es einfach unmöglich, eine Site von einem Thin Client zu unterscheiden. Ich erinnere mich, wie hoch die Entwickler waren, als unser Präsident ein solches Dekret erließ!Und wohin? In den Staaten kam ein Jahr zuvor ein ähnliches Dekret heraus ... Aber zumindest haben sie ein Netzwerk und Server, um mit dieser Last fertig zu werden ... und wir haben alles wie immer ...Nun, all dieser Unsinn der Standardisierung hat die Programmiersprachen nicht erreicht! Es gab Versuche, die Sprache als 1C-Staat zu bezeichnen und den Rest zu verbieten ... Gott sei Dank war 1C selbst dagegen - es würde niemals alle bestehenden Rahmenbedingungen aller existierenden Sprachen einholen. Nun, die Gesellschaft hat sich ausgesprochen ...Eine weitere Freude ist die Open Source. Es stimmt, er musste bezahlt werden. Natürlich nicht für einzelne Bibliotheken und Frameworks, sondern für einzelne Programme und Betriebssysteme. Warum musstest du? Da niemand Sortierungen für Ihren Prozessor des Betriebssystems kompilieren kann, gibt es keine Prozessorcodetabelle. Und die Freisetzung des Kristalls ist das Geld wert ... so drehen sie sich. Das gleiche OpenOffice organisiert regelmäßig die Sammlung von Geld für seine Ausgabe.Upd: Es wird davon ausgegangen, dass die Prozessorkapazität zumindest nicht abnimmt, sondern mit zunehmendem Maximum. Das heißt, Die Anzahl der Optionen pro Opcode beträgt 2 ^ 64 oder mehr.Mit zunehmender Anzahl von Transistoren auf einem Chip steigt die Produktivität nicht unbedingt: Beispielsweise "wiegt" die letzte Mafia in einer gepackten Version 42 Gigabyte - und all dies sollte auf dem Chip liegen. Das heißt, eingebautes Minimum 1 TB (wir haben die Zukunft, richtig?) Flash-Laufwerk + xs wie viel RAM.Upd2: Ich habe vergessen zu erwähnen, dass jeder Kristall ein vollständig eigenständiges System ist, das keinen Zugriff auf Dateien auf dem internen Laufwerk hat. Das heißt, Sie können weder einen Taschenrechner, Texturen noch einen in das Betriebssystem eingenähten Desktop-Hintergrund auf ein USB-Flash-Laufwerk kopieren. Sie können Ihr Programm auch nicht auf die Crystal Disk kopieren und von dort aus ausführen. Die einzige Ausnahme ist der Prozessor des Entwicklers - er kann die kompilierten Dateien auf einer externen (relativ zum Chip) Festplatte speichern und von dort aus ausführen.Nach den Ergebnissen der Diskussion stellte sich heraus, dass 64 Bit pro Opcode in einer akzeptablen Zeit geknackt werden. Daher ändere ich nach eigenem Willen des Autors die Bittiefe des Kristalls auf 128 Bit und sage, dass bei Angabe eines inaktiven Opcodes eine Ausnahme für den Kristallprozessor vom Typ "Angriff ist aktiviert" ausgelöst wird. Wie das Programm auf einem Chip reagiert, ist nicht bekannt, aber wir gehen von der schlechtesten Option aus: Im Falle eines Netzwerkangriffs blockieren Sie die IP-Adresse, im Falle eines lokalen Angriffs wird das Programm gestoppt und die Anfrage sollte an den technischen Support gesendet / gesendet werden.Source: https://habr.com/ru/post/de399781/
All Articles