TGViewer
RUH8 RUH8 @ruheight · 21.7K subscribers
Post #1776 21.5K
Вспомнилась идиотская совершенно задача. Чтобы строки не светились в файле их обфусцируют, XOR-ом как правило. Даже ЦРУ таким пользуется, есть у них препроцессор Marble, страшный как никарагуанские контрас. Остальные обычно пользуются шаблонами. А в случае с Си, в котором нулевой байт обозначает конец строки, возникает смешная проблема - если байт ключа совпадает с байтом открытого текста, то зашифрованная строка обрежется. И приходится отказываться от strlen() и где-то хранить длину строки. А можно просто сгенерировать ключ, так чтобы символы не совпадали ни в одной из возможных позиций:
        int n = 8;
char K[n + 1];
unsigned char key[n][256];

for (j = 0; j < n; j++)
for (i = 0; i < 256; i++)
key[j][i] = i;
for (i = 0; i < c; i++)
for (j = 0; j < l[i]; j++)
key[j % n][s[i][j]] = 0;
for (k = 0; k < n; k++) {
for (i = 0, j = 0; i < 256; i++)
if (isprint(key[k][i]))
key[k][j++] = key[k][i];
if (j < 1) {
printf("Failed at %d\n", k);
return 2;
}
K[k] = key[k][random() % j];
}
K[k] = 0;
printf("KEY IS %s\n", K);
  • 🤔 102
  • 👍 55
  • 🤮 12
  • 🥱 8
  • 🔥 5
More from @ruheight
  1. Aug 29, 2026Техническое. Если кому-то не ответил, сразу чего-то не сделал, то я иногда сильно занят в…
  2. Aug 24, 2026Вышел tmp.out #5
  3. Aug 22, 2026На лошадярне нешуточная ажитация. Не понимаю. Я вот целиком и полностью поддерживаю правос…
  4. Aug 18, 2026А не пошел бы ты, Михаил Альбертович, нахуй? А можно и для гендерного равноправия - в пизд…
  5. Jul 18, 2026По-моему, самое время распустить "IT Армию" и "Киберкорпус". Хорошо было бы, если безобраз…
  6. Jul 9, 2026Каждый раз, когда я наблюдаю за идиотами в их естественной среде обитания, у меня возникае…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →