
复制*(int*)mask_in = offset;              for (int i = 0; i <0x800; ++i) {                  SHA1(mask_in,看何
 0x84, mask_out);                  *(int*)mask_in = i + 1 + offset;                  *(mask_in + 3 + (i & 0x7F) + 1) ^= mask_out[0];                  mask[i] = mask_out[1];              }              offset += 0x800;              aes_key = generate_key(mask, mzrkey_private.c_str(), 0x800, mzrkey_private.size());              for (int i = 0; i <0x200; ++i) {              SHA1(mask_in, 0x84, mask_out);                  *(int*)mask_in = i + 1 + offset;                  *(mask_in + 3 + (i & 0x7F) + 1) ^= mask_out[0];                  mask[i] = mask_out[1];              }              offset += 0x200;              twofish_key = generate_key(mask, mzrkey_public.c_str(), 0x200, mzrkey_public.size());             generate_key:              int mzrkey_size_bswap = _byteswap_ulong(mzrkey_len);              int mask_size_bswap = _byteswap_ulong(mask_len);              for (int i = 0; i <key_SIZE; ++i) {                ((int*)in)[0] = _byteswap_ulong(i);                for (int j = 0; j <i; ++j)                   in[j + 4] = key[j];                *((int*)(in + 4 + i)) = _byteswap_ulong(1);                *((int*)(in + 8 + i)) = mask_size_bswap;                memcpy(in + 3 * sizeof(int) + i, mask, mask_len);                memcpy(in + 3 * sizeof(int) + mask_len + i, &mzrkey_size_bswap, 4);                memcpy(in + 3 * sizeof(int) + mask_len + 4 + i, mzrkey, mzrkey_len);                SHA512(in, mask_len + mzrkey_len + 4 * sizeof(int) + i, out);                for (int j = 0; j <SHA512_DIGEST_LENGTH; ++j)                    key[i] ^= out[j];              }             1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.            
(责任编辑:人工智能)