где хранятся ключи шифрования в реальных проектах?
Вариантов тут не много..
К примеру хранить не пароли в чистом виде, а их хэши не получиться, т.к. возможны коллизии и декрипт накроется медным тазом. Поэтому как вариант можно в качестве ключа для каждого из блоков, использовать контрольную сумму CRC самого блока (вычислять динамически), щедро приправив её мат.вычислениями. Правда и в этом случае можно будет найти ключ в отладчике, но для этого и существует масса приёмов анти-отладки.
Кстати если вскормить этот код аверам, то из 13-ти всего двое посчитали его малварью, хотя на самом деле в нём нет ничего особого, а только крипт. Так-что слепо доверять антивирусам тоже не есть гуд, хотя у каждого своё право.
столько уязвимостей нашло там около 20
Security vendors' analysis
Avert LabsArtemis!3EB3B1A8BB28
Avira (no cloud)TR/Crypt.XPACK.Gen
Bkav ProW32.AIDetectMalware
CrowdStrike FalconWin/malicious_confidence_90% (W)
CybereasonMalicious.063030
CylanceUnsafe
CynetMalicious (score: 99)
DeepInstinctMALICIOUS
ElasticMalicious (high Confidence)
FortinetPossibleThreat.PALLAS.H
GoogleDetected
IkarusTrojan.Crypt
McAfee-GW-EditionBehavesLike.Win32.Generic.xz
RisingTrojan.Generic@AI.90 (RDML:+NocDUsjMT2gvXWzYzzZzA)
SecureAgeMalicious
SentinelOne (Static ML)Static AI - Suspicious PE
SophosGeneric ML PUA (PUA)
TrapmineMalicious.high.ml.score
Trellix (FireEye)Generic.mg.3eb3b1a8bb28e502
WithSecureTrojan.TR/Crypt.XPACK.Gen