Registry benutzen [erledigt]
Übersicht

![]() |
hazumu-kunBetreff: Registry benutzen [erledigt] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde gerne für ein Spiel, damit Savegames schwieriger zu hacken sind, die win32 Registry nutzen.
Habe auch schon versucht über API was zu regeln. Dabei ergibt sich aber folgendes Problem: API funktionen aus der advapi32.dll verlangen die variable in der das registry hadnle abgelegt werden soll als PARAMETER. Und da BlitzBasic sowas bei API Funktionen nicht unterstützt funkttioniert das nicht Recht. Habe auch schon versucht durch Angabe eines Bankhandles von einer 8Byte Bank(ist ja streng gesehen der verlangte Byte Pointer auf eine Long variable) das Problem zu lösen, das funktioniert auch nicht recht. Kennt jemand eine Userlib die mir das Benutzten der Registry mit schreib lese und Schlüsselerstell-Rechten ermöglicht und 100% mit BlitzBasic funktioniert? |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
- Zuletzt bearbeitet von hazumu-kun am Fr, Aug 21, 2009 17:24, insgesamt einmal bearbeitet
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit der Bank sollte eigentlich schon funktionieren, allerdings nur, wenn du den Parameter in der DECLS richtig deklariert hast (mit dem * für Banks/Types). Das sähe dann ungefähr so aus: Code: [AUSKLAPPEN] TolleAPIFunktion( BankParameter* )
|
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ja grade das Problem, die Bank wird nicht angerührt. Immernoch NullBytes als Inhalt.
Und wenn ich mit Dieser Bank dann Ein RegQueryValueEx ausführe killt die API den Compiler wegen falscher Parameter. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Habe auch schon versucht durch Angabe eines Bankhandles von einer 8Byte Bank(ist ja streng gesehen der verlangte Byte Pointer auf eine Long variable) das Problem zu lösen, das funktioniert auch nicht recht.
Eine Long-Variable ist 4 Byte groß. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Falsch.
Integer ist 4 Byte(32bit), Long ist 8 Byte(64bit, emuliert). |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Neu (C99-Standard) ist der erweiterte long-Datentyp. long long ist ein 64 Bit (8 Byte) breiter Datentyp, der einen Wertebereich von -9.223.372.036.854.755.807 bis +9.223.372.036.854.755.807 darstellen kann.
Normalerweise ist long aber 4 Bytes groß. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Damit wollte ich sagen, dass eine LONG-Variable, wenn sie so im MSDN angegeben wird, nur eine andere Definition für einen 4-Byte-Int ist. Ob das in deinem Fall auch so ist, lässt sich ohne Code schwer beurteilen. | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
MSDN definiert meines wissen nach INT mit DWORD (Double Word ; Word=2Byte)
@topic: Keiner hier ders mal mit der Registry zutun gehabt hatte? |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
- Zuletzt bearbeitet von hazumu-kun am So, Aug 16, 2009 19:55, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Anderen Leuten in der Registry herum zu fummeln halte ich nicht für besonders gut ![]() Savegames kann man durch simplere Methoden vor ungewollten Veränderungen schützen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Registry ist alles andere als schwierig zu hacken. Einzig eine Alarmmeldung meiner Sicherheitssoftware würde spätestens mein Vetrauen zu deinen Programmen kaputt machen. Wenn du nicht willst das jemand deinen Spielstand oder anderes ändert, dann jage das ganze - zum Beispiel - durch md5 und setz eine Checksumme drauf. Danach werden es Hacker schwer haben und alle sind Glücklich, weil die Daten da hin gespeichert werden wo sie auch hin gehören, nämlich nach GetEnv("APPDATA") | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@viken_emesh, WORD = 2 Byte und DWORD = 4 Byte ![]() http://msdn.microsoft.com/en-u...30318.aspx |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich möchte trotzdem gerne bei der Registry bleiben, auch als übung wenn ich die mal für was sinnvolles(autostart updater) brauchen kann.
Sagt mir nicht wie ich es anders mache sonder WIE mit der Registry, danke. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
womit ich schonmal weiß wessen games ich nicht spiele..
sorry, aber in der registry anderer hat NIEMAND was zu suchen.. |
||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann sag mir mal bitte wieso sämtliche auf CD's ausgelieferte Games regKey's schreiben.
Okay ich gebs zu(man wie peinlich): Mein Info Lehrer, bei dem ich 1er Schüler bin, hatte mich beauftragt einen Netzwerk-Logger zo programmieren. Folgendes Prinzip: Über die Proxy-Config auf dem Server wird localhost als proxy eingestellt, heißt konkret: Der ganze Traffic wird über mein Programm laufen und die Url's loggen. Damit das ganze beim Autostart mitlädt brauch ich entweder Registry oder die Möglichkleit Verknüpfungen im Autostart Ordner anzulegen. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Für solche Dinge (System, Speichern von Einstellungen) ist die Registry ja auch gedacht. Aber nicht zum Speichern von Savegames oder sogar anderen binären Daten.
Und wenn dir jemand helfen soll, wäre es hilfreich, wenn du ein wenig Code mit deinen bisherigen Versuchen hier postest. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
und was is das drama dabei?... warum sagst dus nicht gleich?
bzw, warum machst du nicht einfach einen link in der autostart? ich mein, wenn er dich damit beauftragt hat, dann machst du das ganze legal, hast dafür wohl, so wie das projekt ausschaut, direkten zugriff auf den computer, inklusive den rechten, im autostart was rein zu tun, oder den autostart-key manuell zu setzen. wozu das ganze von einem prog erledigen lassen? desweiteren: schau dir an, was komerzielle games da rein schreiben. da steht in der registry nicht mehr drin als das applikationsverzeichnis (für den updater) und vllt noch graphikoptionen oder kleinigkeiten wie zb mit welchen nicknamen du die letzte online-partie gespielt hast. alles in allem vllt 1-2 kb, maximal. ein savegame in die registry schreiben wäre sehr groß -> würde die registry unnötig zumüllen -> den computer langsamer machen. und ein registry-savegame hacken is auch nciht schwer. und wenn mir mein sicherheitssoftware anzeigt, da will was in meiner registry rum pfuschen, vorallem was von nem unbekannteren hobbyprogrammierer, dann wirds geblockt und gelöscht. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
genau 5 sekunden suchen: https://www.blitzforum.de/foru...hp?t=18055 | ||
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay, ich denke meine vergeblichen Versuche die Registry zu benutzen sollte reichen:
Notiz: Decls sind alle richtig eingestellt. Notiz2: Hab den Code schon gelöscht gehabt, hat ja nicht geklappt. BlitzBasic: [AUSKLAPPEN]
|
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab deinen Code jetzt nicht ausprobiert, aber statt RegOpenKey (aus 16-Bit-Zeiten) benutzt du besser RegOpenKeyEx.
Der letzte Parameter vom Typ PHKEY ist ein Zeiger auf einen Zeiger/Handle, also muss die Bank 4 Byte statt 8 Byte groß sein. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guck dir das an: https://www.blitzforum.de/foru...hp?t=14920
Und auch den Link zur BlitzBasic Seite da... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group