aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/kernel/wincodegenerator_win32.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sword25/kernel/wincodegenerator_win32.cpp')
-rw-r--r--engines/sword25/kernel/wincodegenerator_win32.cpp143
1 files changed, 0 insertions, 143 deletions
diff --git a/engines/sword25/kernel/wincodegenerator_win32.cpp b/engines/sword25/kernel/wincodegenerator_win32.cpp
deleted file mode 100644
index 7897fb4367..0000000000
--- a/engines/sword25/kernel/wincodegenerator_win32.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-/*
- * This code is based on Broken Sword 2.5 engine
- *
- * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
- *
- * Licensed under GNU GPL v2
- *
- */
-
-// -----------------------------------------------------------------------------
-// Includes
-// -----------------------------------------------------------------------------
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <LMCons.h>
-
-#include <vector>
-using namespace std;
-
-#include "sword25/kernel/md5.h"
-#include "sword25/kernel/wincodegenerator.h"
-
-// -----------------------------------------------------------------------------
-// Hilfsfunktionen
-// -----------------------------------------------------------------------------
-
-namespace
-{
- void AddedFixedDrivesEntropy(BS_MD5 & md5)
- {
- if (DWORD LogicalDrivesMask = ::GetLogicalDrives())
- {
- // Über alle Laufwerke iterieren.
- char CurrentDriveLetter[] = "A:\\";
- while (LogicalDrivesMask && CurrentDriveLetter[0] <= 'Z')
- {
- if (LogicalDrivesMask & 1)
- {
- // Nur feste Laufwerke werden betrachtet, ansonsten würde sich die System-ID ändern, wenn jemand einen USB-Stick ansteckt oder
- // eine CD einlegt.
- if (::GetDriveTypeA(CurrentDriveLetter) == DRIVE_FIXED)
- {
- // Laufwerksinformationen auslesen.
- CHAR VolumeNameBuffer[MAX_PATH + 1];
- DWORD SerialNumber;
- DWORD MaximumComponentLength;
- DWORD FileSystemFlags;
- CHAR FileSystemNameBuffer[MAX_PATH + 1];
- if (::GetVolumeInformationA(CurrentDriveLetter,
- VolumeNameBuffer, sizeof(VolumeNameBuffer),
- &SerialNumber,
- &MaximumComponentLength,
- &FileSystemFlags,
- FileSystemNameBuffer, sizeof(FileSystemNameBuffer)))
- {
- // Als Entropie werden genutzt: Laufwerksbuchstabe, Laufwerksbezeichnung, Seriennummer und Dateisystemname.
- md5.Update(reinterpret_cast<const unsigned char *>(CurrentDriveLetter), strlen(CurrentDriveLetter));
- md5.Update(reinterpret_cast<const unsigned char *>(VolumeNameBuffer), strlen(VolumeNameBuffer));
- md5.Update(reinterpret_cast<const unsigned char *>(&SerialNumber), sizeof(SerialNumber));
- md5.Update(reinterpret_cast<const unsigned char *>(FileSystemNameBuffer), strlen(FileSystemNameBuffer));
- }
- }
- }
-
- LogicalDrivesMask >>= 1;
- ++CurrentDriveLetter[0];
- }
- }
- }
-
- // -------------------------------------------------------------------------
-
- void AddUserNameEntropy(BS_MD5 & md5)
- {
- // Benutzernamen auslesen und als Entropie nutzen.
- DWORD UserNameLength = UNLEN + 1;
- CHAR UserName[UNLEN + 1];
- if (::GetUserNameA(UserName, &UserNameLength))
- {
- md5.Update(reinterpret_cast<const unsigned char *>(&UserName[0]), strlen(UserName));
- }
- }
-
- // -------------------------------------------------------------------------
-
- void AddOSVersionEntropy(BS_MD5 & md5)
- {
- // Windows-Version auslesen und in die Einzelkomponenten MajorVersion, MinorVersion und Build aufspalten.
- DWORD VersionInfo = ::GetVersion();
-
- DWORD MajorVersion = (DWORD)(LOBYTE(LOWORD(VersionInfo)));
- DWORD MinorVersion = (DWORD)(HIBYTE(LOWORD(VersionInfo)));
- DWORD Build = 0;
- if (VersionInfo < 0x80000000) Build = (DWORD)(HIWORD(VersionInfo));
-
- // Diese drei Informationen als Entropie nutzen.
- md5.Update(reinterpret_cast<const unsigned char *>(&MajorVersion), sizeof(DWORD));
- md5.Update(reinterpret_cast<const unsigned char *>(&MinorVersion), sizeof(DWORD));
- md5.Update(reinterpret_cast<const unsigned char *>(&Build), sizeof(DWORD));
- }
-}
-
-// -----------------------------------------------------------------------------
-
-unsigned int BS_WinCodeGenerator::GetSystemID()
-{
- BS_MD5 md5;
-
- AddedFixedDrivesEntropy(md5);
- AddUserNameEntropy(md5);
- AddOSVersionEntropy(md5);
-
- unsigned char Digest[16];
- md5.GetDigest(Digest);
-
- return (Digest[3] << 24) + (Digest[2] << 16) + (Digest[1] << 8) + Digest[0];
-}