Autor |
Beitrag |
WeBsPaCe
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 13.03.07 17:48
Hallöle.
Ich würde gerne ein laufendes Programm " einfrieren".
So wie ich mir das mit meinem beschränkten API- bzw. Windows-Innereien-Wissen vorstelle, sollte es doch möglich sein, ein in dem Arbeitsspeicher geladenes (natürlich relativ kleines) Programm einzufrieren und irgendwie in eine Datei zu speichern und später irgendwie wieder aufzutauen und wieder einzubinden.
Überhaupt möglich? Bitte klärt mich auf.
MfG,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
Maweki
Beiträge: 197
Ubuntu Linux
Lazarus
|
Verfasst: Mi 14.03.07 00:31
Also afaik ist das mit Delphi wohl kaum sinnvoll moeglich. Die Vorteile, die uns der Delphi-Speichermanager und der "Delphi-Way" bieten, verhindern es, effektiv in fremdem Speicher rumzuspielen. In Delphi ist das Arbeiten mit Pointern, explizites, implizites typecasten und was nich alles wichtig ist, bei sowas, nahezu unmoeglich sinnvoll umzusetzen.
Dafuer wuerde ich C empfehlen. Und selbst dann duerfte es schwierig werden, das Programm in seinem Urspruenglichen Stand wieder in den Speicher zu setzen. Du muesstest ein eigenes Programm dafuer erstellen, was so viel Speicher beantragt, sich sekbst einfriert sodass du den Speicher ueberschreiben kannst und dann mit der weiterausfuehrung des neuen Programmcodes vortfaehrt. Ohne naehere Assemblerkenntnisse ist das wiederaufrufen sicherlich kaum moeglich.
Gruesse
Das Maweki
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 14.03.07 00:39
Maweki hat folgendes geschrieben: | Also afaik ist das mit Delphi wohl kaum sinnvoll moeglich. Die Vorteile, die uns der Delphi-Speichermanager und der "Delphi-Way" bieten, verhindern es, effektiv in fremdem Speicher rumzuspielen. |
Das hat nichts mit dem Delphi-Speichermanager zu tun, sondern mit der Windows Speicherverwaltung. Jeder Prozess hat seinen eigenen Adressbereich und in den Adressbereich eines anderen Programmes zu manipulieren ist so nichtohne weiteres möglich, was auch gut so ist.
@WeBsPaCe: Denk mal darüber nach, was es für die Sicherheit bedeuten würde, wenn das möglich wäre. Dann könnte icj a einfach so mal den Firewall, die Antivirensoftware oder sonstige sicherheitrelevante Prozesses einfrieren. Dies wäre eine Sicherheitslücke ohne gleichen.
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 14.03.07 01:25
Du willst also ein bißchen HIBERNATION?
Da bin ich aber auf die Lösung neugierig - falls die jemand heraus findet!
|
|
\\BBG//
Beiträge: 21
Win XP Pro SP2, Win 2000 Pro SP4
Delphi 7 Enterprise
|
Verfasst: Do 15.03.07 16:58
Du könntest es ja wie ein Debugger machen; einen Breakpoint setzten.
_________________ "Irren ist menschlich. Aber wenn man richtig Mist bauen will, braucht man einen Computer."
(Dan Rather, CBS-Fernsehreporter)
|
|
WeBsPaCe
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Fr 16.03.07 17:15
Tach.
Nu ja, vielen Dank für eure Antworten auf jeden Fall mal. Lass ich's halt.
hathor hat folgendes geschrieben: | Du willst also ein bißchen HIBERNATION?
Da bin ich aber auf die Lösung neugierig - falls die jemand heraus findet! |
Was willst du denn damit sagen?!
\\BBG// hat folgendes geschrieben: | Du könntest es ja wie ein Debugger machen; einen Breakpoint setzten. |
Das versteh ich nicht, wie meinst du das?
Also danke nochmal, cu,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
MSC
Beiträge: 63
Win XP Home, Win Vista Buisiness
Delphi 7 Enterprise
|
Verfasst: Fr 16.03.07 18:59
Titel: RE: Programm einfrieren
@Luckie:
Es gibt ein Programm namens "Process Explorer" (so ne Art fortgeschrittener Taskmanager)
das kann u.A. auch Prozesse einfrieren.
Und es ist keine Sicherheitslücke, da sich systemwichtige Prozesse nicht einfrieren lassen!
Der Link:
www.microsoft.com/te...ternals/default.mspx
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 16.03.07 21:08
WeBsPaCe hat folgendes geschrieben: | Tach.
hathor hat folgendes geschrieben: | Du willst also ein bißchen HIBERNATION?
Da bin ich aber auf die Lösung neugierig - falls die jemand heraus findet! |
Was willst du denn damit sagen?!
WeBBy |
WINDOWS macht das, was Du mit EINEM Programm machen willst, mit der ganzen WINDOWS-Session, wenn es HIBERNATION macht - es lagert den ganzen Speicher auf der Festplatte aus und schaltet den PC aus.
Nach dem erneuten Booten ist die ganze WINDOWS-Session wiederhergestellt.
|
|
matze
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Fr 16.03.07 22:31
nee, da hat er schon recht. Da gibts wirklich ein Tool, mit dem man ganze Prozesse einfrieren kann.
Dir bleiben jetzt 2 Möglichkeiten: - Sysinternals war früher eine eigenständige Firma und die hatten, soweit ich weiß, früher auf ihrer Website auch die Quelltexte zum runterladen. Also entweder du findest die Quelltexte noch irgendwo im Internet, oder du
- steuerst einfach aus deinem Delphi-Programm das Tool von Windows an.
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
WeBsPaCe
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: So 18.03.07 17:49
Tach.
hathor hat folgendes geschrieben: | WINDOWS macht das, was Du mit EINEM Programm machen willst, mit der ganzen WINDOWS-Session, wenn es HIBERNATION macht - es lagert den ganzen Speicher auf der Festplatte aus und schaltet den PC aus.
Nach dem erneuten Booten ist die ganze WINDOWS-Session wiederhergestellt. |
Ah. Klang etwas provokativ, konnte damit nichts anfangen.
@ matze und @ MSC:
Komm irgendwie per Google nicht weiter. WIe kann ich denn damit Prozesse einfrieren?!
MfG,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
matze
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: So 18.03.07 18:14
indem du dich mal auf der Sysinternals Seite ein bisschen umschaust:
www.microsoft.com/te...reads/PsSuspend.mspx
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
WeBsPaCe
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: So 18.03.07 18:17
Achso. Mist. Dachte, das Programm, das das kann ist der Process Monitor. Deshalb hab ich dazu nichts gefunden.
Danke. Ich schau's mir an.
MfG,
WeBBy
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
uall@ogc
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: So 18.03.07 18:22
Einfrieren geht ohne Probleme (SuspendThread)
Abspeichern sollte auch nciht das Problem werden.
Das enizge was Probleme macht ist das wiederaufnehmen, denn alle Handles werden (Winn das Programm geschlossen wurde) von Windows freigegeben -> D.h. man müsste diese neu erzeugen (z.b. alle Fenster usw)
Das Problem wäre aber bestimmt (irgendwie) doch lösbar.
PS: natürlich kann man die Prozesse alle einfrieren, warum ist das denn ein Sicherheitsproblem. Das wäre nur eins wenn man es als eingeschränkten Nutzer für Prozesse machen könnte, die nicht demjenigen gehören.
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|