Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.05.2008, 15:26

.exe Datei in einer .zip ausführen

Hi!
Ich möchte ein Programm schreiben (C++), das eine .exe-Datei, die in ein zip-Archiv mit Passwort gezippt wurde, ausführt.
Dabei soll die .zip-Datei nicht als Ordner entpackt werden.
Leider hab ich keine Ahnung, wie ich das anstellen soll.
Gibts dafür bestimmte Befehle?

Wie mach ich das? Geht das überhaupt?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

07.05.2008, 15:42

Wieso sollte man so etwas tun wollen? Wenn es dir nur darum geht nicht alle Resourcen entpacken zu müssen... Dann entpack eben nur das was du brauchst.
@D13_Dreinig

3

07.05.2008, 15:55

Theoretishc geht fast alles. Praktisch gibt es quasi für nix Befehle sondern man zerlegt das Probelm in Teilaufgaben, die man dann irgendwann alleine lösen kann.
Das was du vorhast könnte aber evtl. an die Grenzen von Windows stoßen. Ich meine, wenn man ein Programm startet, wird die exe Datei ja irgendwie in den Ram geladne und dort ausgeführt. Du müsstest also irgendwie die Datei entzippen und irgendwie in den Ram schreiben und Windows irgendwie sagen, es solle die Datei ausführen. Keine Ahnung ob das geht.
Ansonsten kannst du ja einfach nur die exe-Datei entpacken, in irgendeinen Tempordner schreiben und von dort aus ausführen.

Btw.: Sag doch mal genau, was du damit erreiche möchtest.
Lieber dumm fragen, als dumm bleiben!

4

07.05.2008, 16:30

ist es sonst möglich eine ganze .zip-Datei in einen bestimmten ordner zu entpacken, dort dann die .exe ausführen, und dann den ganzen ordner samt inhalt zu löschen?
(.zip-datei ist wie gesagt passwortgeschützt, das pw kenn ich allerdings)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

07.05.2008, 16:38

Du kannst, nachdem der von dir gestartete Prozess beendet wurde, den entpackten Ordner wieder löschen.
@D13_Dreinig

6

07.05.2008, 16:40

ok. leider kenne ich keine befehle für so etwas...
dann geh ich mal auf die suche für entpacken, ausführen und löschen.
falls zufällig einer von euch einen auswendig kennt, kann er ihn gerne posten ;)

danke!

edit: einen befehl um einzelne dateien zu löschen hab ich jetzt

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

7

07.05.2008, 18:00

Öhm sehe ich das richtig, dasss du keinen ton programmieren kannst?

Anyway... ich glaube dein problem ist folgendes:
Du hast eine exe datei in einem archiv und immer wenn du dieses entpackst, wird extra ein neuer ordner erstellt. Problem kann ganz einfach gelöst werden:
Winrar runterladen + Installieren. Dannach die zip Datei doppelt anklicken(sprich öffnen). Ein Fenster öffnet sich. Dort siehst du nun den inhalt des archivs. Suche deine exe datei raus und klicke auch diese doppelt an.

Hintergrundinfos:
Die exe datei wird in einen Tempoären ordner entpackt und ausgeführt. Wenn du winrar wieder schliesst, wird dieser Ordner gelöscht.

Socke

Anonymous

unregistriert

8

07.05.2008, 19:16

Also exe-Dateien mit verpasstworteten zip-Dateien zu sichern ist wie... hmn...

Wie würde Frank Eller das sagen?
"It's like grabbing at your eyes from behind through your ass"

So wird eigentlich fast jede der 4 Sicherheitsrichtlinien der IT effektiv ausgehebelt.

Eine sicherere Methode wäre, wenn es darum geht, die exe-Datei vor fremden zu schützen (Wenn es überhaupt darum geht, was du nicht geklärt hast) folgende:

- Snapshot mit CreateToolhelp32Snapshot vom aktuellen Ausführungsprozess holen
- Richtigen Prozess rausfiltern und mit OpenProcess öffnen.
- Eine verschlüsselte Datei (deine exe-Datei mit DES oder AES verschlüsselt) in Speicher laden
- Subprozess öffnen und mit VirtualAllocEx Speicher allozieren.
- Daten in Speicher verschieben mit WriteProcessMemory
- Prozess mit CreateRemoteThread starten.

So wäre es speichertechnisch und logistisch sicherer. Ein großes Problem ist dann jedoch noch das Passwort, hierfür solltest du Rotationsvektoren für die Generierung eines Schlüssels benutzen, die sich bei jedem Programmstart ändern.

Wenn man etwas möglichst "sicher" haben möchte, muss man sich schon mit Krypto auseinandersetzen und sagen, was man genau haben möchte und wofür. Ohne genauen Hintergrund, können wir dir nur sehr oberflächlich helfen, wodurch nur so politische Standardantworten wie die von Jonathan, oder anderen, kommen können und nicht das eigentliche Problem wirkungsvoll lösen.

Bitte daher erst folgendes für uns genau beantworten, damit wir einen größeren Rahmen des Problems erkennen und dir besser helfen können:
- Was willst du genau haben?
- Wofür willst du es haben und in welchem Zusammenhang?
- Was für Konzepte hast du dir bereits überlegt und welche Alternativen.

Viele Grüße,
Patrick

Jonathan_Klein
In 3D Wald steckt der Trojaner "Trojan.Obfus.2.Gen", BitDefender ist angesprungen.

9

07.05.2008, 19:33

@Faule Socke: ich kann programmieren, nur suche ich ein befehl, der mir das entpackt! mit winrar bekomm ich das natürlich schon hin, da ich es ja auch selbst verzippt hab, aber ich möchte ja, dass das mein programm macht.

@unsigned long: danke, aber das muss nicht so sicher sein :D
ich glaub das bekomm ich noch vollends selbst hin...mal schaun.

Zitat

Also exe-Dateien mit verpasstworteten zip-Dateien zu sichern ist wie... hmn...

Wie würde Frank Eller das sagen?
"It's like grabbing at your eyes from behind through your ass"

wie mans nimmt...


naja, nochmal danke an alle

10

07.05.2008, 19:59

Zitat von »"defaultplayer^^

@Faule Socke: ich kann programmieren, nur suche ich ein befehl, der mir das entpackt! mit winrar bekomm ich das natürlich schon hin, da ich es ja auch selbst verzippt hab, aber ich möchte ja, dass das mein programm macht.


So ganz glaube ich dir nicht, dass du programmieren kannst.
Es gibt nciht den eien Befehl um zips zu entpacken. Es gibt Libs, mit denen man mit zips hantieren kann. Naheliegend wäre wohl http://www.zlib.net/ Natürlich kannst du auch alles selber machen, aber das ist dann nicht 1 Befehl, sondern mehrere hundert Reihen von Befehlen.

@Patrick: Bitte wie? Hm, da es offtopic zu sein scheint, schick mir am besen nochmal ne PM oder so. Dann regeln wir das darüber.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige