| Autor |
Beitrag |
hansdergott
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 16:10
hallo zusammen
kann mir jemand sagen wie ich verhindern kann das meine anwendung (*.exe) zb mit einem
hex-editor oder andern programmen geöffnet, gelesen und verändert werden kann
ich schreibe grad an einem KI-Programm mit dem ich an einem wettbewerb teilnemen möchte
und will nicht das das programm ohne mein wissen geändert wird
mein erstest ki.programm hatte ich schon mal an ein institut geschickt und hatte zur sicherheit
eine procedur eingebaut was mir die aktuelle dateigröße und dateianzahl der dazugehörigen daten
per email schickt das problem dabei war das der pc 1. ne offene internetleitung haben muss
und 2. das keiner merkt das ich mir selber emails schreibe
--- dies war kein hacker oder spionage angriff sondern nur als absicherung ---
wäre toll wenn mir jemand helfen könnte
mfg
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Sa 03.11.07 16:16
Du könntest beim Abschicken dir die md5 Checksumme aufschreiben und im Ernstfall dir die von der Exe dort berechnen lassen. Wenn die anders ist, wurde die Exe manipuliert.
Gruß
alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
hansdergott 
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 16:19
Titel: re md5 Checksumme
hi
kannst du mir genauer erklären was diese md5 Checksumme ist und wie ich sie rausfinden kann
bzw ohne das diese neuberechnen beim öffnen/veränder der exe datei gelesen/entfernt wird
hans
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Sa 03.11.07 16:29
Eine Beschreibung zu MD5 findest du auf wikipedia: de.wikipedia.org/wiki/Md5
MD5-Hashes sind wie gesagt Hashes, das kommt aus der Kryptographie. Unter Hashes solltest du auch was auf wikipedia finden.
Wenn du mal nach MD hier oder bei Google suchst, solltest du aich an Quellcode kommen, mit dem du diese Hashes berechnen kannst.
Gruß
alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
hansdergott 
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 16:34
Titel: re
hi
besten dank für deine schnelle antwort
ich werds mal ausprobieren
gruß hans
|
|
Bernhard Geyer
      
Beiträge: 721
Erhaltene Danke: 3
|
Verfasst: Sa 03.11.07 17:10
Dann aber noch verhindern das die Überprüfung der MD5-Checksumme zu leicht im Code gefunden wird. Ansonsten würde ich diese Stelle auch noch "patchen" so das nur noch gültige MD5-Checksummen zum Programmabbruch führen.
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Sa 03.11.07 17:24
Man kann doch einfach die Checksummenberechnung extern machen. Es reicht ja, wenn du vorm Abschicken die einmal berechnest und zur Überprüfung einmal berechnen lässt und dann die zwei Werte vergleichst. Voraussetzung ist natürlich, dass das machbar ist. Aber wenn das ein Wettbewerb ist, dann sollte sowas alleine wegen Fair-Ülay (-Regeln?) möglich sein.
Gruß
alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 03.11.07 17:34
Wenn Du es eh mit einer KI arbeitest: Bau doch einfach ein Neuronales Netzwerk ein und integrier die Funktion deiner Anwendung in das neuronale Netz  Damit ist zumindest der Code-Diebstahl schon mal verhindert  Und das im Hex-Editor anzugucken, wird damit auch recht sinnlos
Nachteil: Es gibt leider noch keine Source2NeuroNet-Compiler, die auch für allgemeine Programmier-Probleme funktionieren 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 03.11.07 17:36
Wenn du das ganze unter .NET geschrieben hättest (ich nehme mal an, du hast es unter Win32 geschrieben), dann bräuchtest dein Programm nur mit Strongname zu signieren, und jede Änderung an deiner Datei lässt sie erst gar nicht starten. Allerdings lässt sich die Signierung auch wieder entfernen, aber nur mit speziellen Tools afaik.
|
|
hansdergott 
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 18:13
Titel: re
hallo zusammen
ich glaube ich hab das nicht verstanden mit dem neuralem netzwerk damit der programm-
code vor diebstahl gesichert ist?
die vorschläge sind ja alle schön und gut aber jetzt bräuchte ich noch das programm
mit dem ich testen kann ob der dateizugriff / md5 abfrage auch anschlägt
weiß jemand mit was ich das testen kann?
gruß hans
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 03.11.07 18:50
Nimm halt nen Hexeditor und veränder irgendwas in deinem Programm. HxD kann ich dir z.B. empfehlen.
Was für ein Wettbewerb ist das eigentlich wo du da mitmachst?
|
|
hansdergott 
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 19:17
Titel: re
hi
dies ist ein offizeller weltweiter wettbewerb wo programmierer
ihre programme vorstellen und testen lassen der test nennt sich turing test
es gibt mehrere kategorien wie zb was ich grad schreibe
ein programm so menschlich wie möglich wirken zu lassen
dann gib es aber auch noch die königsklasse aber dies hatt bis dato
noch niemand geschafft egal was du das programm fragst immer eine passene antwort
parat haben zb meine oma helga ist nach england ausgewandert dann sollte irgend wie was kommen
mit warum erzähl mir mehr usw.
die schwierigkeit besteht halt darin das zb wenn mein programm mich fragt wie es mir heute geht
1. den zusammenhang erkennen muss
2. passend darauf zu antworten
3. wenn die gegenfrage von mir kommt auch antworten muss
im moment habe ich es so programmiert das er also (david) so heiß mein programm sich auch nach dem
programmende noch erinnert wie ich heiße, alter, hobbys, frau kinder, ob ich diese woche früh oder spätschicht
habe , ob wochenende ist mich fragt zb wenn ich krank bin ob es mir besser geht
david erkennt auch wenn ich eine frage doppelt stelle und antwortet/reagier dementsprechend auch darauf
und noch vieles mehr . um so mehr ich programmiere un so komplexer wir es
gruß hans
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 03.11.07 20:15
Also sowas hier.
Naja, oben mein Vorschlag war eher als Scherz zu verstehen. Das Problem an Neuronalen Netzen ist ihr Blackbox-Verhalten: Du weißt nur, dass ein Neuronales Netz das Ergebnis liefert, für dass es programmiert wurde, du kannst aber nicht sagen, wie's das macht ... Also im Prinzip der perfekte Kopierschutz *G*
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.11.07 22:37
hansdergott hat folgendes geschrieben: | | will nicht das das programm ohne mein wissen geändert wird |
Das ist unmöglich. Eine ausführbare Datei ist im Dateisystem auch nur eine ganz gewöhnliche Dateie aus Bits und Bytes.
| Zitat: | was mir die aktuelle dateigröße und dateianzahl der dazugehörigen daten
per email schickt das problem dabei war das der pc 1. ne offene internetleitung haben muss
und 2. das keiner merkt das ich mir selber emails schreibe |
Also hast du einen Trojaner programmiert. Ein Programm, welches versucht, hinter meinem Rücken, Daten über das Internet zu verschickt, ist für mich nicht akzeptable, da nicht vertrauenswürdig, der Hersteller natürlich eben so.
Was den MD5-Hash angeht, der kann nur extern erfolgen. Zumindest kann die Prüfsumme nicht in der Anwendung stehen. Denn sobald ich den hash berechne, ihn im Code einfüge und den Hash erneut berechne hat er sich schon geändert, d aj beim zweiten mal der Hash in der Exe berücksichtigt wird. Über diese Problematik habe ich mir auch schon den Kopf zerbrochen und bin zu keiner Lösung gekommen.
|
|
hansdergott 
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 23:27
hallo
dies war nur zur absicherung aber ich hatte nen programmierfehler drin und habe deswegen nie ne mail bekommen
für den fall der fälle hatte ich auch noch eine art selbstzerstörung die über das www auf meiner privaten
homepage nach dem vorhandensein einer datei fragt wenn die nicht da gewesen wäre hätte sich das programm selbst mit
nullen überschrieben und das ausführen des programmes wäre nicht mehr möglich gewesen
aber wie gesagt dies war nur zur sicherheit da ich so ein programm nicht so einfach aus der hand gebe
mfg hans stier
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.11.07 23:31
hansdergott hat folgendes geschrieben: | | dies war nur zur absicherung |
Nichts desto trotz, hätte dein Programm heimlich E-Mails verschicken sollen.
| Zitat: | für den fall der fälle hatte ich auch noch eine art selbstzerstörung die über das www auf meiner privaten
homepage nach dem vorhandensein einer datei fragt wenn die nicht da gewesen wäre hätte sich das programm selbst mit
nullen überschrieben und das ausführen des programmes wäre nicht mehr möglich gewesen |
Das erfüllt wahrscheinlich schon den Straftatbestand der Computersabotage, wenn der Benutzer darüber nicht informiert worden wäre.
|
|
hansdergott 
      
Beiträge: 55
XP Mediacenter Edition; XP Home
Delphi
|
Verfasst: Sa 03.11.07 23:38
hi
was wäre den ein guter kopierschutz um den inhalt zu schützen
ich hatte mal ein programm eingestellt um mir infos einzuholen
und hatte eine veränderte datei wieder zurück bekommen in dem
der passwortschutz umgangen wurde (ohne code)
wie soll ich anstellen?
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: So 04.11.07 10:31
Du kannst auch den eigentlichen Code auf deinen Webserver hochladen, und das Programm holt sich zur Laufzeit den Code selbst und führt ihn aus, dann ist aber eine Internetverbindung notwendig. Dann könnte man aber immernoch mit einem Sniffer die Daten on-the-fly ändern. Deswegen die Daten auf dem Webserver vielleicht signieren, und dann im Programm die Signatur überprüfen. Damit man dein Programm jetzt nicht gecrackt wird, kannst du einen ausgefallenen Laufzeitpacker o.ä. benutzen, für den man nicht so leicht einen Entpacker bekommt. Sicher ist das alles natürlich auch nicht, aber besser als gar nix. Ein Angreifer muss nun deine Anwendung entpacken, die Signaturüberprüfung cracken und den Code auf dem Webserver, während ihn deine Anwendung holt, ändern.
|
|
dummzeuch
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: So 04.11.07 10:39
Luckie hat folgendes geschrieben: | | Was den MD5-Hash angeht, der kann nur extern erfolgen. Zumindest kann die Prüfsumme nicht in der Anwendung stehen. Denn sobald ich den hash berechne, ihn im Code einfüge und den Hash erneut berechne hat er sich schon geändert, d aj beim zweiten mal der Hash in der Exe berücksichtigt wird. Über diese Problematik habe ich mir auch schon den Kopf zerbrochen und bin zu keiner Lösung gekommen. |
Man kann den Hash ja nur ueber einen Teil des Executables berechnen und ihn dann in einem anderen Teil speichern, z.B. an das Executable anhaengen. So funktionierten frueher mal Virenscanner.
D.h. man hat ein externes Programm, welches ueberprueft, ob der Hash schon da ist, z.B. mittels einer Kennung am Ende des Executables. Wenn er da ist, wird er ueberprueft, dabei wird nur die urspruengliche Laenge des Executables beruecksichtigt. Wenn er nicht da ist, wird er berechnet (ueber das ganze Executable) und angehaengt. Die Ueberpruefung wird zusaetzlich auch ins Executable eincompiliert.
twm
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: So 04.11.07 15:40
hansdergott hat folgendes geschrieben: | hi
...
wie soll ich anstellen? |
Hallo,
dein Wunsch, dein geistiges Eigentum zu schützen ist verständlich (Linux und Open Source-Anhänger werden jetzt vor Wut aufheulen), aber du must die Grenzen beachten. Ich habe schon mit Programmierern gesprochen (früher, als die Rechtssprechung noch nicht so gesichert war), die bei Kopierversuchen die Festplatte formatieren wollten - damit landest du im Kittchen oder bist verschuldet bis an dein Lebensende. Eine Firma hat sogar propagiert, sie könnte in solchen Fällen per Software den Bildschirm explodieren lassen. Wenn das nicht Blödsinn wäre, müsste man es als Mordversuch einordnen.
Also Finger weg von ALLEM ausser deinem eigenen Programm, und dort sagst du dem Benutzer VORHER, was er zu erwarten hat, z.B. die Begrenzung zu einem bestimmten Datum - wenn das hinterrücks passiert, könntest du schadensersatzpflichtig sein selbst bei Freeware.
Meines Wissens hat es trotz tausender Versuche bisher kein absolut sicheres Kopierschutzverfahren gegeben. Wer glaubt, er könnte es besser, sollte das Programmieren gleich aufgeben, Grössenwahn ist eine schlechte Voraussetzung.
Gruss Reinhard
|
|