Создание UUID для компьютера из Flash - PullRequest
1 голос
/ 05 августа 2011

Я делаю Flash-программу для загрузки и разблокировки на одном компьютере при получении оплаты.Чтобы сделать это, я искал UUID для компьютера, который можно было бы проверить, чтобы убедиться, что программа не была перемещена на другой компьютер, но я не знаю способа получить достаточно информации о компьютере, чтобы сделать егооднозначно идентифицируемо (или даже близко).

Я также рассмотрел возможность создания отдельной программы на другом языке, которая имела бы доступ к этой информации, но я не знаю, смогу ли я даже запустить ее из Flash.Буду признателен за альтернативные решения исходной проблемы.

1 Ответ

4 голосов
/ 05 августа 2011

Вы можете создать небольшой внешний EXE-файл (в AIR), который будет запускать встроенную команду и получать конкретную информацию о компьютере пользователя.Смотрите мой ответ здесь с исходным кодом:

Как я могу нажать кнопку, выполнить команду в командной строке и получить обратно вывод в ActionScript?

Так, например,В Windows вы можете написать исполняемый файл на C ++ (используйте eclipse и mingw, а не Microsoft C ++, если вы не хотите распространять .net вместе с вашим exe).Просто используйте системную команду:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int main() {
    std::cout << system("wmic csproduct") << std::endl;
    return 0;
}

, которая выводит это:

Caption                  Description              IdentifyingNumber  Name  SKUNumber  UUID                                  Vendor  Version  

Computer System Product  Computer System Product  OEM                OEM              00000000-0000-0000-0807-XXXXXXXXXX(Hidden cause it's mine :D)  OEM     OEM                   0

Согласно Microsoft эта команда возвращает S / N, уникальный для локальной машины.Если это неудовлетворительно, вы всегда можете получить серийный номер одного из разделов компьютера, для этого вам просто нужно поискать в Google.

В любом случае, независимо от того, что вы используете, просто сделайте так, чтобы, когда пользователь впервыерегистрирует, что получает эту информацию, обрабатывает ее в дайджест с использованием криптопакета AS3CoreLib (возможно, использует класс SHA256 для преобразования в хэш) и затем отправляет эти данные на сервер вместе с их регистрационной информацией.Всякий раз, когда они запускают приложение, просто заставьте приложение подключиться к серверу и перезапустите эту команду, сравнивая новый (при запуске) хеш с сохраненным на сервере, и если они не совпадают, вы знаете, что они переместили егона другой компьютер или отдал его для пиратства.

Источники:

http://support.microsoft.com/kb/558124

http://www.cplusplus.com/reference/clibrary/cstdlib/system/

https://github.com/mikechambers/as3corelib/tree/master/src/com/adobe/crypto

...