![]() |
"Schutz" vor Resource Hacker(ResHack) ?
hoi
kann ich irgendwie verhindern das man mit dem prog(siehe topic) mein project öffnen kann? ich mein das muss ja nich jeder sehn wie ich mein prog gemacht hab danke ;) gruss silent |
Mit UPX packen sollte schon etwas helfen. Kann man zwar auch umgehen, aber da ist es schon nötig mit dem Hex-Editor deinem Programm zu Leibe zurücken.
Warum willst du die Ressourcen verstecken? Sind deine Bitmaps und Icon so schützens wert? |
nein, aber die strings, und muss ja nicht jeder sehen das ich den client mit der indy irc kompo gemacht hab, reicht wenn ich weiss das ich newb bin :D
danke btw gruss silent |
btw, wie funzt das mit upx?
|
Zitat:
![]() Bei mir bringt das eine grössen reduzierung der EXEs von ca. 60%. |
Zitat:
|
Hm? OK. Gewonnen. :mrgreen:
|
Hallo,
btw, es gibt auch einen interessanten Artikel warum man solche Kompressoren NICHT verwenden sollte... Zitat:
![]() |
Jupp. Es ist bekannt, dass UPX den Windows-Memory-Manager aushebeln.
|
Zitat:
|
Hallo,
ich glaube zwar nicht, daß es den Aufwand lohnt, und daß du vorhandene Funktionalitäten (Indy) nutzt statt diese selber zu amchen, ist eher ein Zeichen von Professionalität als daß es auf einen Anfänger hindeutet, also da würde ichmir keine Sorgen machen, aber nur als Hinweis am Rande: Mit den GEXperts kannst du alle auf der Form vorhandenenen Komponenten in Code konvertieren, dann wird alles programmatische erzeugt und steht nicht merh in den Resourcen, aber für die Programmpflege ist das dann zukünftig doch etwas nervig. Tschüss Wolfgang |
Zitat:
ziehe gerade mal gexperts thx =) |
hm gibts da n tutorial über das prog? *g*
|
Ich würd, wenn du es schützen willst nicht upx verwenden da man es ohne mühe mit upx wieder dekomprimieren kann.
|
Zitat:
Auch wenn die EXE dann 2-3 MB gross sind Lucky als Code otimierer ist da sicher dagegen ... P.S.: warum geht im Forum meine deutesche Tastatur nicht mehr in jedem Programm geht es. Aber hier nicht.... |
Ich würde davon abraten. Such lieber den Grund warum dein Programm so groß ist und arbeite an der Stelle weiter.
|
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. Tschüss Wolfgang |
Zitat:
Und davon sind in einigen auch noch die Reports gespeichert.. |
Zitat:
|
Also, sieht man sich die binäre Form an, erkennt man, daß die wesentlichen Informationen auch hier im Klartext drin liegen, in der Anwendung wird dann wohl in jedem Fall die Binärform abgelegt, aber wie gesagt, die ist durchaus lesbar
Code:
Hier stelle ich jetzt einfach mal die Behauptung in den Raum, ohne wirklich ein Kenner des Resourcenhandlings unter Windows zu sein, Windows muß nur wissen daß dies eine Resource ist, den Inhalt muß nicht Windows, sondern das Streamingsystem von Delphi verstehen.
. Windows muß sie ja lesen können.
Tschüss Wolfgang |
Wer führt denn deien Exe aus? Windows oder Delphi?
Zitat:
|
Zitat:
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. |
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.
|
Zitat:
Zitat:
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. |
Eben und der Kompiler macht dann was für Windows lesbares raus, meine ich.
|
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. |
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.
|
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 :coder: |
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 |
Zitat:
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: ![]() |
Hallo Allerseits,
kurze Frage zum Thema, wie sieht es mit ASPack aus. Hebelt der den Speichermanager auch aus ??? Gruß Neo |
Anzunehmen.
|
Verschlüssel dein Programm einfach und schreib nen loader
|
Schonmal
![]() Wenn du sowas wirklich noch suchst ;) |
Re: "Schutz" vor Resource Hacker(ResHack) ?
Was ist denn eigentlich so schlimm daran, wenn man die Resourcen deines Programmes sieht? Kommen doch sowieso irgendwie an Tageslicht, oder?
Der beste Schutz ist wohl: das Programm niemanden weitergeben und mit 100 Encypter sicher, damit es vor Internet-Spionage sicher ist... :-D |
Re: "Schutz" vor Resource Hacker(ResHack) ?
Klar kann man alles vom Monitor ablesen, oder direkt aus'm RAM des laufenden Programms auslesen, oder sonstwie rankommen...
Man kann es denjenigen, die an die Daten ranwollen, nur schwerer machen. Und "Viele" geben sowieso auf, wenn es zu schwer wird ;) |
Re: "Schutz" vor Resource Hacker(ResHack) ?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab ASPack, geht super.
Problem bei UPX, man kann es wieder dekomprimieren dann kann man die Sachen gleich sehen... Aber per Zufall habe ich ne möglichkeit herausgefunden, Resource Hacker abstürzen zu lassen, sobald man die EXE öffnet. Dazu muss man eine unsichtbare memo auf die form, die als erstes gestartet wird platzieren, und diese mit dem Buchstaben- und Stringzeichensalat füllen, die mein kleines Programm erzeugt. Dieses einfach in das memo schreiben, dann das teil in ruhe lassen. Resultat --> Zu 99% Abstürzender RecoruceHacker. Aber vor ExeScope Schützt das nicht. Aber jedoch ein kleines Stück sicherhheit. mfg, MiniKeks |
Re: "Schutz" vor Resource Hacker(ResHack) ?
Zitat:
Programme die die Resourcen anzeigen, können das nur tun, wenn es auch welche gibt :mrgreen: Es ist relativ leicht möglich die Forms aus den Resourcen Verschwinden zu lassen. Man muss sie nur selbst im Source erzeugen. (oder teilweise erzeugen) Meine Vorgehensweise wäre:
Das "neue" GExperts unterstützt nun auch ganze Formulare Zitat:
Das ist zwar mit etwas Arbeit verbunden, dauert aber pro Form auch nur ein bis zwei Minuten. Ich hoffe das hilft Dir. |
Re: "Schutz" vor Resource Hacker(ResHack) ?
Zitat:
Gruss Thomas |
Re: "Schutz" vor Resource Hacker(ResHack) ?
Zitat:
Sorry, aber deine Frage kann ich menschlich einfach nicht verstehen. Das Auslesen der Resourcen hat damit auch garnichts zu tuen. Auch ein EXE Packer verhindert NICHT das ich deine Software auf zb. meine Freeware Komponenten aus dem DEC oder eben nach Indy untersuchen kann. Möchte ich also wissen was du für Komponenten benutzt so ist dies eigentlich "relativ" einfach möglich. Jedes in Delphi geschriebene Program kann soweit zur Laufzeit, also IM Speicher, analysiert werden das ich dir ganz genau sagen kann welche Klassen, RTTI's, Datentypen usw. dein Program benutzt hat. Selbst Delphi Version usw. können ermittelt werden. Da hilft es nicht die Resourcen zu verschleiern, da hilft kein EXE Packer und auch keine Verschlüsselung, im Speicher muß dein Program auf die VCL und RTL unverschlüsselt zugreifen können, und genau dort kann man den kompletten Klassenbaum + RTTI usw. auslesen. Also, warum ? willst du verheimlichen das du eine supergute und weit anerkannte Blibliothek wie die Indy benutzt hast ? Ich wüsste nur einen einzigsten akzeptablen Grund: dein Program ist von Hause aus ein Program das sich tarnen muß weil es den Benutzer schädigen will, kurz: ein Trojaner oder Virus. Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz