поле дата в ключе

Issues related to WebLM
Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

поле дата в ключе

Postby Sergiodb » Mon Mar 26, 2018 8:52 pm

посдкажите
в кодировании есть такая строка при создании ключа

$rest = $p->bits / 8 - $content_size;
if ($rest < 0)
die("Content is too big to fit in key: ".$content_size.", maximal allowed is: ".($p->bits / 8));

в поле userdata записывается последвоательность байт

Code: Select all

Массив ( [0] => 16390 [1] => 32000 [2] => 16394 [3] => 32000 [4] => 16395 [5] => 32000 [6] => 16396 [7] => 32000 [8] => 16397 [9] => 32000 [10] => 16399 [11] => 32000 [12] => 17400 [13] => 32000 [14] => 17401 [15] => 32000 [16] => 17402 [17] => 32000 [18] => 17403 [19] => 32000 [20] => 17405 [21] => 32000 [22] => 17407 [23] => 32000 [24] => 17408 [25] => 32000 [26] => 17409 [27] => 32000 [28] => 17410 [29] => 32000 [30] => 17411 [31] => 32000 [32] => 17412 [33] => 32000 [34] => 17413 [35] => 32000 [36] => 17414 [37] => 32000 [38] => 17415 [39] => 32000 [40] => 17416 [41] => 32000 [42] => 17417 [43] => 32000 [44] => 17418 [45] => 32000 [46] => 17419 [47] => 32000 [48] => 17420 [49] => 32000 [50] => 17421 [51] => 32000 [52] => 17422 [53] => 32000 [54] => 17423 [55] => 32000 [56] => 17424 [57] => 32000 [58] => 17425 [59] => 32000 [60] => 17426 [61] => 32000 [62] => 17428 [63] => 32000 [64] => 17429 [65] => 32000 [66] => 17430 [67] => 32000 [68] => 17431 [69] => 32000 [70] => 17432 [71] => 32000 [72] => 17433 [73] => 32000 [74] => 17434 [75] => 32000 [76] => 17427 [77] => 32000 [78] => 17436 [79] => 32000 [80] => 17438 [81] => 32000 [82] => 17437 [83] => 32000 [84] => 17439 [85] => 32000 [86] => 17442 [87] => 32000 [88] => 17440 [89] => 32000 [90] => 17441 [91] => 32000
 массив byte
06000a000b000c000d000f00f800f900fa00fb00fd00ff0000000100020003000400050006000700080009000a000b000c000d000e000f001000110012001400150016001700180019001a0013001c001e001d001f00220020002100


вот пример преобразования кода (массив word -> массив byte)

Code: Select all

print_r($a);
            echo '<br>';
            $packed =
                  array_reduce($a, function($carry, $item) {
                     return $carry .= pack('C*', $item);
                  });
            echo bin2hex ($packed);


по идее объем не более 46 байт
но выдается сообщение: Content is too big to fit in key: 326, maximal allowed is: 256

при уменьшении размера массива - все работает нормально

в чем я ошибаюсь? уже всю голову сломал

Admin
Site Admin
Posts: 1473
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: поле дата в ключе

Postby Admin » Tue Mar 27, 2018 5:58 am

Вы являетесь зарегистрированным пользователем VMProtect?

Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

Re: поле дата в ключе

Postby Sergiodb » Tue Mar 27, 2018 6:59 am

конечно

в личном сообщении указал данные

Admin
Site Admin
Posts: 1473
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: поле дата в ключе

Postby Admin » Tue Mar 27, 2018 7:41 am

Размер данных внутри лицензии (включая ваш массив) не может быть больше размера RSA ключа.

Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

Re: поле дата в ключе

Postby Sergiodb » Thu Sep 27, 2018 10:12 am

возвращая к вопросу о размере userdata

передается массив 256 байт

но система упорно считает его размером в 768

вот в этой проверке

Code: Select all

$userdata = DecodeChars($data["data"]);
         $len = bin_strlen($userdata);
         if ($len > 255)
            die("User data is too long: ".$len);


подскажите как же мне записать массив в 256 байт в поле если в weblm используется фукнции
function EncodeChars($str)
и
function DecodeChars($str)


передаю массив
02 00 01 00 00 04 7B 00 00 10 02 00 04 00 04 00 00 01 01 00 20 00 05 00 00 02 04 00 00 40 03 00 80 00 05 00 40 00 05 00 01 40 02 00 09 40 57 04 69 42 2B 00 FE 43 DF 00 5C 44 02 00 5D 44 02 00 5E 44 02 00 5F 44 06 00 60 44 05 00 61 44 02 00 63 44 56 01 64 44 02 00 65 44 05 00 66 44 05 00 67 44 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


это 256 байт
но система упорно считает что это 768
почему она считает пробелы и каждое число как отдельный символ? ведь это 256 байт - как и согласно описанию


подскажите как решить данную проблему

Sergiodb
Posts: 17
Joined: Thu Apr 09, 2015 6:13 am

Re: поле дата в ключе

Postby Sergiodb » Thu Sep 27, 2018 11:15 am

я т.е. понимаю вопрос в том что запишется в базу

какая строка примером должна записаться
такая? или как то иначе она должна выглядеть?
{"hardwareid":"fromurl","data":"\x06\x40\x6F\x00\x0A\x40\x6F\x00\x0B\x40\x0B\x00\x0C\x40\x0B\x00\x0D\x40\x01\x00\x0F\x40\xDE\x00\x10\xC0\x40\x3E\x50\xC5\x80\x3E\x90\xF7\x80\x34\x30\x20\x0F\xD4\x30\x20\x0F\xF4\x34\xD0\x10\x04\x44\xD0\x10\x14\x42\x10\x00\x24\x42\x10\x00\x34\x4B\xC0\x10\x44\x40\x30\x00\x54\x40\x30\x00\x64\x4B\xC0\x10\x74\x42\xC0\x00\x84\x41\x60\x00\x94\x42\xB0\x20\xA4\x42\xB0\x20\xB4\x43\x70\x00\xC4\x43\x70\x00\xD4\x40\x50\x00\xE4\x40\x50\x00\xF4\x40\x50\x01\x04\x40\x60\x01\x14\x40\x60\x01\x24\x40\x60\x01\x44\x44\x20\x01\x54\x44\x20\x01\x64\x49\xA0\x21\x74\x49\xA0\x21\x84\x40\x70\x01\x94\x40\x70\x01\xA4\x44\xD0\x01\x34\x44\xD0\x01\xC4\x40\x90\x31\xE4\x40\x90\x31\xD4\x40\x40\x01\xF4\x40\x90\x32\x24\x40\x40\x02\x04\x47\x80\x32\x14\x40\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}

Admin
Site Admin
Posts: 1473
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: поле дата в ключе

Postby Admin » Sat Sep 29, 2018 6:35 am

Если вы хотите передавать строку в HEX, то формат должен быть такой: \xYY, где YY - это код символа, и это все без пробелов.