spamsink: (Default)
[personal profile] spamsink
Потребовалось мне по делу написать обфускатор (амплуа такое амплуа), пусть и чисто символический, некоего конкретного кода, который не просто заменяет переменные на vNNN, а сохраняет их длину. Ну, я по-быстрому пишу
std::string obfuscate(const std::string & s) {
    static bool init = false;
    static char shuffle[256];
    if (!init) {
        for (int i = 0; i < 256; i++) shuffle[i] = i;
        std::random_shuffle(shuffle + 'a', shuffle + 'z' + 1);
        std::random_shuffle(shuffle + 'A', shuffle + 'Z' + 1);
        init = true;
    }
    std::string ret;
    for (unsigned i = 0; i < s.size(); i++)
        ret += shuffle[(unsigned char)s[i]];
    return ret;
}
Угадайте, что получилось, с моим-то еврейским счастьем.
Hint: Функцию пришлось переписывать.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting
Page generated Mar. 5th, 2026 09:35 am
Powered by Dreamwidth Studios