Ошибка bad serial number given in setup operation flashpoint

С основами по использованию Wine можно ознакомиться здесь: https://noostyche.ru/blog/2020/04/30/ispolzovanie-wine-dlya-zapuska-windows-programm-v-linux/

На Wine и Proton проблема характерна для Arma: Cold War Assault (Operation Flashpoint), Arma 1 и 2, кроме Arma 2: Operation Arrowhead (с ней всё в порядке). Она заключается в том, что установочный скрипт (xxxxx_install.vdf) не может сгенерировать специальный код в шестнадцатеричной системе счисления из ключа (серийного номера) игры и подставить его в реестр Windows, то есть в файл реестра в префиксе. Решение заключается в генерации кода из лицензионного ключа и добавлении его в реестр вручную.

Генератор кода из ключа можно подсмотреть здесь: https://github.com/ValveSoftware/Proton/issues/767#issuecomment-508957522

Альтернативный вариант решения проблемы: https://github.com/ValveSoftware/Proton/issues/1308

Генератор кода представлен скриптом на языке perl:

echo 1234-56789-ABCDE-FGHIJ-KLMNO | perl -ne 's/-//g; tr/IO/10/; for $i (0..2) { $res = 0; for $j (0..7) { $res += index("0123456789ABCDEFGHJKLMNPRSTVWXYZ", substr($_, $i * 8 + $j, 1)) << (5 * $j); }; printf("%010x", $res); }; print("n");'

Примечание: Интерпретатор perl всё ещё присутствует во многих дистрибутивах Linux, поэтому команду можно выполнить в терминале и сразу получить результат. Альтернативным вариантом является возможность воспользоваться онлайн-сервисом.

В первом фрагменте команды можно увидеть буквенно-цифровую строку из 24 символов — здесь должен быть ваш лицензионный ключ игры, который можно посмотреть в Steam: ПКМ на игре в «Библиотеке» / Управление / Цифровые ключи.

После выполнения команды в выводе терминала окажется код подобный этому: 41cc520c4183dcd62d4905ab49c831

Это 15 пар символов в шестнадцатеричной системе счисления. Именно этот код необходимо добавить в реестр префикса игры.

Чтобы префикс был создан, нужно запустить игру один раз, полюбоваться на ошибку и закрыть её.

Для Arma: Cold War Assault префикс и файл реестра по умолчанию располагаются здесь:

/home/$USER/.local/share/Steam/steamapps/compatdata/65790/pfx/system.reg

Для обычной Arma 2:

/home/$USER/.local/share/Steam/steamapps/compatdata/33910/pfx/system.reg

Примечание: Номером префикса является ID игры в Steam.

Отредактировать файл реестра можно двумя способами: через графическую Wine-программу regedit и через редактирование обычным текстовым редактором (nano, gedit, kate и подобными).

Примечание по Arma 2.

С этой игрой есть довольно неприятная особенность. Установочно-конфигурационный скрипт 33910_install.vdf, который находится в корневом каталоге игры, при запуске игры каждый раз стирает(!) запись ключа (шестнадцатеричное значение) из реестра, что приводит к той самой «Bad serial given in setup». Чтобы он не осуществлял эту диверсию, необходимо лишить пользователя прав его выполнять и читать. Пример:

sudo chmod 000 "/home/$USER/.local/share/Steam/steamapps/common/Arma 2/33910_install.vdf"

Или через графический интерфейс:

Всё, диверсионная деятельность скрипта пресечена. Теперь можно приступить к редактированию реестра.

Wine. Редактирование файла реестра с помощью regedit.

Начнём с Arma 2.

WINEPREFIX="/home/$USER/.local/share/Steam/steamapps/compatdata/33910/pfx" wine regedit

Примечание: Если будет предложено установить в префикс Mono и Gecko — отказываемся, для префикса игры это ни к чему.

  1. Перейти в HKEY_LOCAL_MACHINESoftwareWow6432Nodebohemia interactive studioarma 2
  2. Выбрать строку key.
  3. ПКМ / Изменить…
  4. В появившемся окне в текстовое поле переписать сгенерированный код. В данном примере это 41cc520c4183dcd62d4905ab49c831.
  5. Подтвердить изменения.
  6. Закрыть окно «Редактора реестра».

Теперь можно запустить игру и ошибки «Bad serial given in setup» более не будет.

Для Arma: Cold War Assault алгоритм действий тот же. Разница только в пути до префикса и до записи в реестре.

WINEPREFIX="/home/$USER/.local/share/Steam/steamapps/compatdata/65790/pfx" wine regedit

Путь до записи в реестре: HKEY_LOCAL_MACHINESoftwareWow6432Nodebohemia interactive studiocoldwarassault

Редактирование реестра текстовым редактором.

Для Arma 2.

Открываем файл реестра, как текстовый документ:

/home/$USER/.local/share/Steam/steamapps/compatdata/33910/pfx/system.reg

Необходимо найти строку:

[SoftwareWow6432Nodebohemia interactive studioarma 2]

Ниже будет строка:

«key»=hex:

Это то самое место, куда нужно скопировать сгенерированный код. Пример записи:

«key»=hex:41,cc,52,0c,41,83,dc,d6,2d,49,05,ab,49,c8,31

Важно обратить внимание, что код разбит на пары символов, которые отделены запятой без пробела.

Сохранить изменения в файле.

Теперь проблема с «Bad serial given in setup» решена.

Для Arma: Cold War Assault.

/home/$USER/.local/share/Steam/steamapps/compatdata/65790/pfx/system.reg

Искомый блок в реестре:

[SoftwareWow6432Nodebohemia interactive studiocoldwarassault]

В строку «KEY»=hex: прописать сгенерированный код:

«KEY»=hex:41,cc,52,0c,41,83,dc,d6,2d,49,05,ab,49,c8,31

Сохранить изменения в файле.

Готово.

Теперь можно без проблем наслаждаться играми серии Arma на Linux.

Hello all.

I read a post about this in the forums just now, but it didn’t really solve my specific problem.

Basically, I’m at university, and the other side of the country from my old OFP CD — thats if its still even in existence at my parents place, they’ve probably thrown it out). I’ve just found all my old OFP files on an old HDD plugged into my system, and decided to transfer the files over onto my current HDD and give the old and priceless Resistance campaign a roll.

However, I receive the message ‘Bad serial key given in setup’. Now, as I understand thsi is because the exe file is looking into the registry to try to find the serial key, and obviously, unable to find anything as I’ve not been able to transfer the registry keys.

Now, as installing is not an option, as the original cd is miles away (Ironically I’ve got the resistance CD here just not the ofp one lol)

Does anyone know;

A — How to find the registry keys from the windows folder on my old HDD?

b — Where I can get legal copies of the registry keys?

Thanks!

using System;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;

public class KeyConverter {
    private static readonly String szTemplate = "0123456789ABCDEFGHJKLMNPRSTVWXYZ";

    public String getHexKey(String arma2key) {
        var upperkey = arma2key.Trim().ToUpper().Replace('O', '0').Replace('I', '1').Replace("-", "");
        var bResult = new Byte[15];
        if (upperkey.Length != 24)
            throw new Exception("Invalid key length");

        for (var i = 0; i < 3; ++i) {
            UInt64 qwResult = 0;
            for (var j = 0; j < 8; ++j) {
                var cChar = upperkey[i * 8 + j];
                var szPos = szTemplate.IndexOf(cChar);
                qwResult |= (UInt64)szPos << (j * 5);
            }
            for (var j = 0; j < 5; ++j) {
                bResult[i * 5 + 5 - 1 - j] = (Byte)(qwResult & 0xFF);
                qwResult >>= 8;
            }
        }

        return BitConverter.ToString(bResult); ;
    }

Hello all.

I read a post about this in the forums just now, but it didn’t really solve my specific problem.

Basically, I’m at university, and the other side of the country from my old OFP CD — thats if its still even in existence at my parents place, they’ve probably thrown it out). I’ve just found all my old OFP files on an old HDD plugged into my system, and decided to transfer the files over onto my current HDD and give the old and priceless Resistance campaign a roll.

However, I receive the message ‘Bad serial key given in setup’. Now, as I understand thsi is because the exe file is looking into the registry to try to find the serial key, and obviously, unable to find anything as I’ve not been able to transfer the registry keys.

Now, as installing is not an option, as the original cd is miles away (Ironically I’ve got the resistance CD here just not the ofp one lol)

Does anyone know;

A — How to find the registry keys from the windows folder on my old HDD?

b — Where I can get legal copies of the registry keys?

Thanks!

У меня проблема с игрой!Я скачал образ, установил ее, а при запуске игры она пишет Bad serial number given in Setup.. Ключ у меня есть, указал при установке.Читал что его надо ввести в регистр файла/игры т.е это как? :confused::confused::confused: Тыкну, если поможете :)

76561198146381656.png


    • -2
  • Наверх


26 декабря 2010 — 05:15






    Skiff

  • Пользователь

    С нами с 25 апреля 10

  • 693


    0


    0

ключик паленый значит

Опубликованное фото
[SIGPIC][/SIGPIC]

Будь мужиком, тыкни Опубликованное фото

Хочу много денег R200650104934
Хочу 5к репы
Хочу BMW


    • 1
  • Наверх


26 декабря 2010 — 05:29






    Айген

  • Пользователь

    С нами с 3 ноября 09

  • 1673


    0


    1

нет, при установке ключ подошел
Подскажите вы как вписать что-либо и куда, чтобы работала игра :)

76561198146381656.png


    • 0
  • Наверх


26 декабря 2010 — 05:50







    1hp

  • Заблокированные

    С нами с 1 апреля 10

  • 770


    0


    0

Айген, Вась, он через стим, не?

Что за массовая погоня за репой на форуме? Бред же.


    • 1
  • Наверх


26 декабря 2010 — 05:53






    Айген

  • Пользователь

    С нами с 3 ноября 09

  • 1673


    0


    1

[quote name=’1hp’]Айген, Вась, он через стим, не?[/quote]

Ну какбэ не вася я, не в стиме она (читай раздел где тема)

76561198146381656.png


    • 0
  • Наверх


26 декабря 2010 — 05:57







    1hp

  • Заблокированные

    С нами с 1 апреля 10

  • 770


    0


    0

Что за массовая погоня за репой на форуме? Бред же.


    • 1
  • Наверх


26 декабря 2010 — 07:25






    Skiff

  • Пользователь

    С нами с 25 апреля 10

  • 693


    0


    0

в реестре вбивай ключик значит свой

Опубликованное фото
[SIGPIC][/SIGPIC]

Будь мужиком, тыкни Опубликованное фото

Хочу много денег R200650104934
Хочу 5к репы
Хочу BMW


    • 0
  • Наверх


26 декабря 2010 — 10:44







    1hp

  • Заблокированные

    С нами с 1 апреля 10

  • 770


    0


    0

Skiff, он просит дать путь к игре!

Что за массовая погоня за репой на форуме? Бред же.


    • 1
  • Наверх


27 декабря 2010 — 05:06


using System;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;

public class KeyConverter {
    private static readonly String szTemplate = "0123456789ABCDEFGHJKLMNPRSTVWXYZ";

    public String getHexKey(String arma2key) {
        var upperkey = arma2key.Trim().ToUpper().Replace('O', '0').Replace('I', '1').Replace("-", "");
        var bResult = new Byte[15];
        if (upperkey.Length != 24)
            throw new Exception("Invalid key length");

        for (var i = 0; i < 3; ++i) {
            UInt64 qwResult = 0;
            for (var j = 0; j < 8; ++j) {
                var cChar = upperkey[i * 8 + j];
                var szPos = szTemplate.IndexOf(cChar);
                qwResult |= (UInt64)szPos << (j * 5);
            }
            for (var j = 0; j < 5; ++j) {
                bResult[i * 5 + 5 - 1 - j] = (Byte)(qwResult & 0xFF);
                qwResult >>= 8;
            }
        }

        return BitConverter.ToString(bResult); ;
    }

  • Ошибка bad request код ошибки 400 amocrm
  • Ошибка bad request госуслуги
  • Ошибка bad pool caller что это
  • Ошибка bad pool caller windows 10 как исправить
  • Ошибка bad module info dayz