• XSS.stack #1 – первый литературный журнал от юзеров форума

АВ редфлажат сложение строк

bantik

HDD-drive
Пользователь
Регистрация
30.01.2025
Сообщения
21
Реакции
5
Встретился с проблемой, что с точки зрения энтропии (как я понимаю) АВ не нравятся сложения строчек, и у меня появилась идея каким образом этого можно избежать. Саму идею приведу в виде пруф-оф-концепта: (вопрос закинул сюда а не в мыло так как думаю это больше по местной теме)
C++:
#include <cstdio>

int main() {

    char lower[] = "abcde";
    char s2[] = "|secondString|";
    char s3[] = "|thirdString|";

    int lowerSize = sizeof(lower) / sizeof(char);
    int s2_size = sizeof(s2) / sizeof(char);
    int s3_size = sizeof(s3) / sizeof(char);

    lower[lowerSize - 1] = ' ';  // Это очень плохо. Никогда так не делайте.
    s2[s2_size - 1] = ' ';

    printf("lower: %s\n", lower);
    return 0;
}
Вывод:
Код:
lower: abcde ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠|secondString| ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠|thirdString|
При модернизации кода забираем в поток всю "новую" недобитую си-строку и по первым "известным" буквам достаем из потока строку (или обрезаем поток). Прибег идейно к поиску по "известным" буквам так как не хватило понимания о том, что за байтики между этими переменными при инициализации последовательно (предполагаю кодировка типа массива). И я думаю (если это работает), что с помощью Volatile переменных можно наводить суеты..

Напишите, что знаете по поводу этих байтиков; может я переоткрыл велосипед и АВ спецы уже подобное отслеживают.

(При изменении добавил вывод файла)
 
In release mode you’ll usually get a run of \0, so you’d print only abcde, the trick stops working. Nothing “mystical” is hiding between the arrays: it’s just whatever bytes were already there.
Напишите, что знаете по поводу этих байтиков; может я переоткрыл велосипед и АВ спецы уже подобное отслеживают.
Study how wildcard searches work.)
 
:oops:
А чем тогда палевно сложение строк если не повышением энтропии?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх