Kurze Frage bzgl. Resource-Datei und QProcess

Alles rund um die Programmierung mit Qt
Antworten
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Kurze Frage bzgl. Resource-Datei und QProcess

Beitrag von tribari »

Hallo zusammen,

ist es eigentlich möglich eine Exe und zugehörige DLL´s in eine qrc-Datei zu packen (so dass diese Dateien mit in die Applikation kompiliert werden) - und diese Exe später über einen QProcess zu starten und anzusteuern?

Hatte es zwar grade ausprobiert - mit einem negativem Ergebnis... aber evtl. gibt es ja doch eine Möglichkeit ;-)

Danke im Voraus

mfg

tribari
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

so dass diese Dateien mit in die Applikation kompiliert werden
du meinst eher in die App eingebettet werden.
prinzipiell iss sowas schon möglich (du musst die exe aber "auspacken", dein BS muss die exe "sehen) ... die Frage stellt sich eher nach den Sinn ....
wenn du der urheber der 2. exe auch bist, spricht nix dagegen das ding zu ner dll zu machen, und von der exe aus auszurufen.

wenn du nicht der urheber der 2.ten exe bist ... stellen sich paar andere Fragen ... warum willst du den user das 2.te programm verstecken ???
Hatte es zwar grade ausprobiert - mit einem negativem Ergebnis... aber evtl. gibt es ja doch eine Möglichkeit
DU solltest die Sympthome deines "negativem Ergebnis" schon genauer beschreiben ! Die meisten hier werden sowas noch nicht gemacht haben, eben wegen der Sinnhaftigkeit ....

Ciao ...
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

hallo, danke für die prompte Antwort.

Sinn ist, dass ein Programm für ein Kunden entwickelt werden soll - dieses Programm soll jedoch ein Tool ansteuern (welches auch in unserer Firma entwickelt wurde).
Das Tool müsste derzeit mitgeliefert werden - hier habe ich jedoch die Befürchtung das evtl. der Anwender mit dem Tool "Schabernack" treibt. Daher suche ich nach einer Lösung wie das Programm ausgeliefert werden kann, ohne das der Kunde Zugriff auf das Tool erlangt.
Erste Idee war halt die Resourcen-Datei... aber hier konnte QProcess das Tool nicht anstarten...
Mir fehlen leider weitere Lösungsansätze wie ich das Problem umgehen kann, dass der Kunde Zugriff auf dieses Tool erhält. Eine kompilierung in eine DLL ist leider nicht möglich.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Das zweite Tool so mitliefern, dass es einen hash als erstes Argument erwartet. Irgend einen schönen langen key, den der User garantiert nicht erraten kann. Der Key liegt irgendwie verschlüsselt in der 1. exe. Passt der key nicht, beendet sich die zweite exe gleich wieder. Schabernackpotential <0,001%.

// Mist :D
Programm-Parameter werden z.B. mit "ps aux" auch angezeigt (wirds mit Windows wohl auch geben). Dann muss man sich halt was einfallen lassen, was dynamisch erstellt wird. z.B. die aktuelle Zeit + Username + sonstwas nehmen, hashen, dem Programm als Parameter übergeben, dort werden die selben Daten gehashed. Passen die beiden zusammen, wird prog2.exe gestartet, andernfalls nicht.
tribari
Beiträge: 63
Registriert: 23. Juli 2008 13:31
Wohnort: Braunschweig

Beitrag von tribari »

also soooo sicher muss es dann auch nicht werden ...

problem 1 ist dass die exe-2 nicht angepasst werden soll... und nach möglichkeit soll der kunde diese datei nicht zu gesicht bekommen, so dass er garnicht auf die Idee kommt damit irgendwas anzustellen... evtl. kann man diese ja auch in einer verzeichnisstruktur verstecken.

lg
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

DIe loesung mit dem systemaufruf birgt immer risiken ... ne richtig saubere Lösung bekommnt man so eh ned hin ...

Aber wenn das 2te Tool in eurer Firma auch produziert wird, warum fragst du nicht an ob sie statt der exe das auch in ne bib packen koennen (modulare programmierung). So wuerdest du nen sauberen kooperativen weg hinbekommen.

Erste Idee war halt die Resourcen-Datei... aber hier konnte QProcess das Tool nicht anstarten...
qProcress ruft exec oder sowas auf ... das heisst er schiesst den befehl ans BS durch, das dieses programm fuer dich laedt. das heisst das BS muss die datei auf der platte lesen koennen, mit vollstaendigen execution header, alles an den richtigen stellen.
D.H. bei diesem Ansatz musst du die datei aus den ressourcen irgendwohin auf die platte "entpacken" und kannst dann erst den Process executen (mit QProcess).
Das ist natuerlich ziemlich gut fakebar, mit minimalistischen aufwand ... wenn wer sein handwerk bissi versteht, wird er dir da ne beliebige datei zum starten unterschieben koennen !
(vor system-aufrufen wird ned umsonst gewarnt, von seitens der security ). mit entsprechenden rechten kann man den system-aufruf leaken, d.h. er führt irgendwas dann aus ohne deine datei anfassen zu muessen ... nen check der auszufuehrenden datei bringt dir also gar nix.

Ohne mithilfe der urheber des ersten tools kriegst eh nix wirklich sauberes hin. da kannst auch gleich ne bib draus machen lassen ...

Ciao ...
Antworten