почти все вопросы поставлены неправильно, но да ладно, думаю я тебя правильно понял
о, звучит интересно, спасибо) а что вообще влияет на md5 и другие подобные данные файла, как еще влиять на них?
md5 составляет checksum каждого байта твоего файла, пересобери свой проект = получишь новый MD5. при пересборке компилятор в любом случае перезапишет файл, меняя в нём (как минимум) данные этапа компиляции, такие как TIME/TIMESTAMP etc. короче, простыми словами, md5 = хэш, который представляет собой сумму каждого байтика программы. бтв, использование md5 в качестве алгоритма вычисления хэшсуммы не рекомендуется, для md5 достаточно быстро можно создавать два разных файла разной длины, но одинаковых по величине хэшсумм md5
Я хочу, чтобы при компиляции моего файла его сигнатура менялась. Т.е. один и тот же код перекопилировать 10 раз и на выходе 10 файлов с разными сигнатурами.
чистый, только скомпилированный бинарь -> невозможно. что бы ты не делал, как бы ты не запотел, ты не можешь этого сделать ограничиваясь compile-time`ом.
Я знаю что junk_code как бы меняет, но совсем немного.
античиты создавали не дурачки, junk-code (а
особенно этапа компиляции) это максимально устаревшая утилита для противостояния современным античитам)
Какое решение лучше использовать, библиотеку может полноценную типа .lib или просто есть полезный .h инклуд типа json или lazy importer, что вообще в этом бывает и что влияет на изменение сигнатуры?
разберись в стаффе cpp и в вопросе компиляции/компоновки, это самый некорректный вопрос
.lib это один из типов библиотек. статическая библиотека (.lib = .library) просто хранит в себе уже скомпилированный сурс-код определенных БИБЛИОТЕК (извините за тавтологию), и встраивает код прямо в твою программу на этапе компиляции при вызове одной из этих функций. код всего твоего файла он магическим образом изменить не способен. если ты говоришь про возможность существования какой-то подобной библиотеки - нет, такой тоже не существует (вспоминая слова про этап компиляции...)
или просто есть полезный .h инклуд типа json или lazy importer, что вообще в этом бывает и что влияет на изменение сигнатуры?
нет, как бы я не старался, очень сложно донести тебе какую-либо информацию если ты не понимаешь сути подобных вещей
json это тоже просто библиотека (возможно, в твоём проекте она включена как .hpp/.cpp файлы, но сути примера с .lib файлом это никак не меняет), она ДОБАВЛЯЕТ НО НЕ ИЗМЕНЯЕТ код.
lazy import тут тоже ни при чём, логически он работает так же, он добавляет свой код, но не изменяет твой существующий.
на изменение сигнатуры влияют байты твоей программы, другие байты -> другая сигнатура -> другая программа.
Кроме того, я знаю vmprotect тоже влияет, если им 10 раз пересобрать файл, тоже все 10 раз будут разные
да. возьму в пример многим известный вариант с паролем. 8 символов включающие в себя
1. ловеркейс/апперкейс латинницы
2. пунктуация и специальные символы.
3. цифры.
в общем - 94 символа, 8 символов максимум, итого кол-во возможных комбинаций это 94
8,
не считай, это 6,095,689,385,410,816
возможных комбинаций) так и тут в целом та же ситуация с вмп. я не смотрел слива его сурсов, но более чем уверен что там огромнейшее множество рандома, поэтому шанс того что тебе выпадет одинаковый бинарь наверное меньше шанса того что завтра на землю упадёт астероид и взорвёт всю нашу планету
Нужно что-то, что влияет на md5 crc checksum я так понимаю.
md5 это просто не самый лучший из-за его возраста алгоритм вычисления чексуммы, checksum (aka hashsum) это общий термин, он может вычисляться огромным множеством алгоритмов. суть не изменится даже если ты просто создашь uint в который аккумулируешь каждый байт файла, это всё ещё считается checksum, хоть и вычисленной максимально нестабильным "алгоритмом".
В общем и целом это нужно против античитов
подводя итоги - тебе это ОЧЕНЬ маловероятно что поможет)
совет тсу - подтяни 99% твоих вопросов в гугле, обращайся к умным и добрым людям в самой крайности ( я не про себя, я не умный ) и уважай чужое время
всем остальным спокойной ночи