AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VM erkennen

Ein Thema von macadamia · begonnen am 9. Mai 2009 · letzter Beitrag vom 12. Mai 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
macadamia

Registriert seit: 17. Apr 2008
12 Beiträge
 
Delphi 2007 Professional
 
#1

VM erkennen

  Alt 9. Mai 2009, 22:13
Ich möchte gerne in meiner Delphi-Anwendung (Win32) mit hoher Treffsicherheit herausfinden, ob das Programm in einer VM läuft. Hat da schon jemand Erfahrungen damit? Gibts dazu vielleicht schon Code? Das wäre mir eine große Hilfe!
Grüße
Andreas
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: VM erkennen

  Alt 9. Mai 2009, 22:15
Willkommen in der DP

Es gibt schon zu sehr vielen Fragen Lösungen hier im Forum, also benutze bitte zuerst die Suche, bevor du eine Frage stellst. Mit 5 Sekunden googlen, habe ich z.B. diese Unit gefunden.
  Mit Zitat antworten Zitat
macadamia

Registriert seit: 17. Apr 2008
12 Beiträge
 
Delphi 2007 Professional
 
#3

Re: VM erkennen

  Alt 9. Mai 2009, 22:33
Entschuldigung! Ich HABE ein paar Suchabfragen hier angestellt, habe aber nichts gefunden. "VM" gibt keine Treffer und "virtuell" gibt 320 Treffen, bei den ersten 100 ist nichts passendes dabei oder ich hab's übersehen. Naja, war vielleiche eine ungeschickte Suche von mir. Ist normal nicht meine Art, gleich mal loszuposten. Sorry... und Danke!
Gruß
Andreas
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: VM erkennen

  Alt 9. Mai 2009, 22:36
Die Suchfunktion hier im Forum hat ein paar Macken. Ich suche meistens über Google mit site:delphipraxis.net <Suchbegriff>
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#5

Re: VM erkennen

  Alt 10. Mai 2009, 00:01
Das funtkioniert für VMWare:

Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
//
// Simple VMware check on i386
//
// Note: There are plenty ways to detect VMware. This short version bases
// on the fact that VMware intercepts IN instructions to port 0x5658 with
// an magic value of 0x564D5868 in EAX. However, this is *NOT* officially
// documented (used by VMware tools to communicate with the host via VM).
//
// Because this might change in future versions - you should look out for
// additional checks (e.g. hardware device IDs, BIOS informations, etc.).
// Newer VMware BIOS has valid SMBIOS informations (you might use my BIOS
// Helper unit to dump the ROM-BIOS ([url]http://www.bendlins.de/nico/delphi[/url]).
//

function IsVMwarePresent(): LongBool; stdcall; // platform;
begin
  Result := False;
 {$IFDEF CPU386}
  try
    asm
            mov eax, 564D5868h
            mov ebx, 00000000h
            mov ecx, 0000000Ah
            mov edx, 00005658h
            in eax, dx
            cmp ebx, 564D5868h
            jne @@exit
            mov Result, True
    @@exit:
    end;
  except
    Result := False;
  end;
{$ENDIF}
end;
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
10. Mai 2009, 01:19
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Es geht um eine Delphi-Anwendung.
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: VM erkennen

  Alt 10. Mai 2009, 09:46
Ich frag mich immer wieder wozu sowas gut sein soll. Man benutzt eine VMWare meist zum testen von Programmen in einer sicheren Umgebung und da finde ich es kontraproduktiv wenn sich ein Programm dort anders verhält auf einem "richtigen" Rechner.
Zudem macht es auch Sinn VMs zu nutzen um auf einer Hardware mehrere Programme laufen lassen zu können die, auf dem gleichen BS installiert, in Konflikt kommen.
Ich finde es etwas daneben leute mit VM anders zu behandeln als Leute die sich 5 Rechner hinstellen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
macadamia

Registriert seit: 17. Apr 2008
12 Beiträge
 
Delphi 2007 Professional
 
#8

Re: VM erkennen

  Alt 10. Mai 2009, 11:17
Ich brauche das für folgendes: Ein Programm läuft als 30-Tage-Testversion ohne funktionale Einschränkung. Danach muss das Programm auf dem Rechner freigeschaltet werden. Das kann man mit einer VM leicht umgehen (immer nach 30 Tagen zum letzten Snapshot zurück und Testversion neu installieren). Daher würde ich die VM gerne erkennen und hier die Testversion einschränken...
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#9

Re: VM erkennen

  Alt 10. Mai 2009, 12:13
Zitat von macadamia:
Ich brauche das für folgendes: Ein Programm läuft als 30-Tage-Testversion ohne funktionale Einschränkung. Danach muss das Programm auf dem Rechner freigeschaltet werden. Das kann man mit einer VM leicht umgehen (immer nach 30 Tagen zum letzten Snapshot zurück und Testversion neu installieren). Daher würde ich die VM gerne erkennen und hier die Testversion einschränken...
Das gleiche kann ich ebenfalls machen, wenn ich meinen Rechner nach 30 Tage mit einem Images neu bespiele, wo Dein Programm noch nicht drauf ist.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: VM erkennen

  Alt 10. Mai 2009, 12:26
Zitat von RWarnecke:
Zitat von macadamia:
Ich brauche das für folgendes: Ein Programm läuft als 30-Tage-Testversion ohne funktionale Einschränkung. Danach muss das Programm auf dem Rechner freigeschaltet werden. Das kann man mit einer VM leicht umgehen (immer nach 30 Tagen zum letzten Snapshot zurück und Testversion neu installieren). Daher würde ich die VM gerne erkennen und hier die Testversion einschränken...
Das gleiche kann ich ebenfalls machen, wenn ich meinen Rechner nach 30 Tage mit einem Images neu bespiele, wo Dein Programm noch nicht drauf ist.
Aber vergiss nicht alle Dateistempel und Registry-Einträge zurück zu setzen. FlexLM als fertige Lizenzprüf-SW reagiert z.B. allergisch falls es Dateien mit Dateistempeln in der Zukunft findet. Und sowas lässt sich auch einfach selbst implementieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     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 08:49 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