AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi "Schutz" vor Resource Hacker(ResHack) ?
Thema durchsuchen
Ansicht
Themen-Optionen

"Schutz" vor Resource Hacker(ResHack) ?

Ein Thema von Pseudemys Nelsoni · begonnen am 19. Apr 2003 · letzter Beitrag vom 1. Jul 2005
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#21
  Alt 22. Apr 2003, 21:06
Wer führt denn deien Exe aus? Windows oder Delphi?
Zitat:
Noch eine andere Idee kommt mir da gerade. Delphi kann die dfm (Form) Dateien als Text oder auch binär abspeichern. Müßte man sich mal anschauen wie die Resourcen dann in der exe aussehen, wenn sie aus der binär-From der dfm Datei erzeugt worden sind.
Das hast du gesagt. Und du meinst wenn man die dfm-Dateien bimnär speichert, wütde man sie als Ressourcen in der Exe nicht erkennen können. Das ist aber falsch und das kann auch nicht sein. ob die dfm-datei binär oder als Text gespeichert ist spielt nur für Delphi eine Rolle. Delphi muß sie lesen. Wenn es dann die Exe erstellt, laden die Ressourcen in einem für Windows lesbaren Format in der Exe. Diese Format wird von Windows vorgegeben und ist logischerweise unabhängig vom Format der zugrundeliegenden dfm-Datei.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#22
  Alt 23. Apr 2003, 10:40
Zitat:
Wer führt denn deien Exe aus? Windows oder Delphi?
Delphi, wenn es um die Resourcen geht, also die Anwendung, die ich mit Delphi erzeugt habe. Resourcen sind kein ausführbarer Code, Windows muß damit gar nichts anfangen können, außer zu wissen, daß es eine Resource ist.

siehe z.B.

RT_RCDATA Application-defined resource (raw data)

womit die von mir postulierte Resource, die Windows nicht kennt identifiziert wäre, hätte mich auch sehr gewundert, wenn ich eine binäre Resource nur dann in die exe packen könnte, wenn Windows wüßte wie man die "Abspielt".

Beispiel ich definiere

resourcestring myResource = 'Abladabladuballa'

Wie sollte Windows denn jetzt 'Abladabladuballa' ausführen?

Aber
if myResource = 'Abladabladuballa' then mylabel:= tlabel.create,
else if myResource = 'humptadumpta' then myEdit :=TEdit.create etcc

Windows weiß weder wie es 'Abladabladuballa' noch wie es 'humptadumpta' ausführen soll, das weiß nur meine Anwendung, also z.B. meine delphiexe. Windows übergibt die dfm Resource an die Delphi exe, und ohne Delphi-Exe könnte Windows mit der dfm Resource gar nichts anfangen, oder?
Packe ich die dfm Resource in eine visual c++ exe, würde wohl auch keine Form erzeugt, Windows könnte damit nichts anfangen,
woher sollte Windows denn wissen, was es mit TWokiEasterInspiration tun soll, und das steht auch nicht in der dfm-resource, sondern im ausführbaren Code meiner Delphi-exe.

Also langer Rede kurzer Sinn, das Aussehen der Resourcen in der exe entspricht der binären Form der DFM-Datei und ist recht einfach lesbar, es ist vielleicht sogar naheliegend, das das so ist, ist aber nicht technisch zwingend, wenn ich das wollte könnte ich sicher eine dfm-datei als resource in eine exe speichern, und als Reaktion auf den Text TForm die Nachrichten der letzten Woche abspielen
statt eine Form zu erzeugen, und stattdessen bei 'x1&%45ajfsdlö' eine Windowsform zum Leben erwecken.

Also nochmal, allgemein gilt, Resourcen sind kein ausführbarer Code, was damit zu welchem Zeitpunkt passiert, entscheidet die Anwendung, auf keinen Fall Windows, es gibt allerdings von Windows vorgefertigte Resourcentypen, die den "Erklärungsaufwand" für die Anwendung minimieren.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#23
  Alt 23. Apr 2003, 10:45
Habe ich ausfüheren gesagt? lesen muß es Windows können, zu mindest die standard ressourcen, wie Fenster, Kontrolls, etc, sonst wird dir Windows auch kein Fenster anzeigen können. Dass es anwendungsspezifische Ressourcen gibt mit denen Windows nichts anfangen kann ist klar.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#24
  Alt 23. Apr 2003, 13:39
Zitat:
Habe ich ausfüheren gesagt?
Nun ja, ich sprach von Resourcen, und du sagtest:
Zitat:
Wer führt denn deien Exe aus? Windows oder Delphi?
Weiterhin:

Man kann Common Controls in Standardresourcen verpacken, aber ich behaupte, ich kann die VCLControls im Code auch erzeugen, ohne daß sie in den Resourcen erwähnt werden, inclusive den Forms, weiterhin gehören die aus den dfm-Dateien erzeugten Resourcen zu denen, mit denen Windows erstmal nichts anfangen kann, denn woher sollte Windows wissen was
"TfrmTestResource" ist, vielmehr werden diese resourcen auf Anfrage der Ese brav an die Delphiexe übergeben, und von dort aus passsiert dann alles weitere inclusive aufrufe der WinApi zur Darstellung von Forms und Controls.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#25
  Alt 23. Apr 2003, 13:41
Eben und der Kompiler macht dann was für Windows lesbares raus, meine ich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Marco Haffner
(Gast)

n/a Beiträge
 
#26
  Alt 23. Apr 2003, 14:29
Um noch mal zum Upx zurückzukommen, ich hatte in einem Programm einen TWebBrowser zum anzeigen von Informationen verwendet, die dazugehörigen html-Dateien als Resource in die Exe-Datei eingebunden, mit Upx komprimiert (warum auch immer) und auf eine CD gebrannt.
Jetzt bekomme ich heut' einen Anruf, das unter Windows 95 und 2000 alles bestens löppt unter Windows 98 aber keine htm-Resourcen gefunden wurden.
Könnte es jetzt sein das der IE 4.0 von 98 nicht mit den komprimierten Resourcen klar kommt, der IE 5.5 der auf dem Win 95-Rechner installiert ist aber sehr wohl?
Ich würde einfach mal JA sagen, die exe auspacken, neu auf CD brennen und die CD wieder abgeben.
  Mit Zitat antworten Zitat
Benutzerbild von BrainCode
BrainCode

Registriert seit: 18. Jan 2003
119 Beiträge
 
#27
  Alt 1. Mai 2003, 01:09
Zurück zum Thema "Schutz vor ResHack": Gibt es denn halbwegs sichere Exe-Schützer? Ich kann es mir ja kaum vorstellen, weil ein solches Programm ja das für die Entschlüsselung benutzte Passwort wieder speichern muss, das wäre ja nicht schwer auszulesen.
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#28
  Alt 10. Mai 2003, 12:19
Ich nutze selbst manchmal den UPX-Packer aus folgenden Günden:

Wenn das Prog im Intenet liegt, um es bei bedarf schnell herunterzuladen, und auf einem Rechner zu verwenden, ist schön klein und ich brauche beim Kunden kein Packer.

Wenn ich mal ein Prog auf Diskette weitergeben muß passt es dann meistens auf eine Disk.

Ich habe viele kleine Tools auf meinem USB-Stick. Mit UPX nehmen die dann so wenig Platz ein, wie möglich, und ein manuelles entpacken ist dann nicht notwendig.

Für die eigenen klienen Tools halte ich das für sehr sinnvoll.

PS: Wieviele Anwender gehen den mit dem Reshack an ein Programm ?? Und die anderen schaffens sowieso
Dieter
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#29
  Alt 10. Mai 2003, 14:08
Ich brauche UPX auch oft weil ich halt Spiele progge, in denen Daten sind, die niemand wissen darf da er sonst die Auszahlung (ist ein "Klamm.de"-Spiel wo man gegen die dort vorhandene Währung spielen kann) selbst vornehmen könnte...
Klappt bisher auch ganz gut, hatte da noch keine Probs
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#30
  Alt 10. Mai 2003, 16:32
Zitat von Florian H:
Ich brauche UPX auch oft weil ich halt Spiele progge, in denen Daten sind, die niemand wissen darf da er sonst die Auszahlung (ist ein "Klamm.de"-Spiel wo man gegen die dort vorhandene Währung spielen kann) selbst vornehmen könnte...
Der ResHacker sagt dir aber, wenn er die Exe nicht öffnen kann und dann entpacke ich es erst mit UPX (geht nämlich auch) und dann geht es weiter im Text.

Das packen mit UPX sollte man aber nicht zur Gewohnheit werden lassen, da man damit das Windows-Speicher-Managment aushebelt. Beim jedem Start des Programms muß Windows das gesamte Image in den Speicher laden. Ist die Exe ungepackt braucht sie von Windows nur einmal in den Speicher geladen zu werdem. Besonders kritisch wird es bei DLL's, die ein paar mal von unterschiedlichen Programmen geladen werden.
Näheres dazu hier: http://www.jrsoftware.org/striprlc.php
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz