Page 1 of 1

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

Posted: Mon Mar 26, 2018 8:52 pm
by Sergiodb
посдкажите
в кодировании есть такая строка при создании ключа

$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

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

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

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

Posted: Tue Mar 27, 2018 5:58 am
by Admin
Вы являетесь зарегистрированным пользователем VMProtect?

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

Posted: Tue Mar 27, 2018 6:59 am
by Sergiodb
конечно

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

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

Posted: Tue Mar 27, 2018 7:41 am
by Admin
Размер данных внутри лицензии (включая ваш массив) не может быть больше размера RSA ключа.

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

Posted: Thu Sep 27, 2018 10:12 am
by Sergiodb
возвращая к вопросу о размере 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 байт - как и согласно описанию


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

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

Posted: Thu Sep 27, 2018 11:15 am
by Sergiodb
я т.е. понимаю вопрос в том что запишется в базу

какая строка примером должна записаться
такая? или как то иначе она должна выглядеть?
{"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"}

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

Posted: Sat Sep 29, 2018 6:35 am
by Admin
Если вы хотите передавать строку в HEX, то формат должен быть такой: \xYY, где YY - это код символа, и это все без пробелов.