Как включить механизм шифрования памяти в jvm? Для предотвращения Dll инъекций и замены переменных используя CheatEngine (как в denuvo)
Насколько я знаю, включить шифрование памяти в jvm нельзя.
Если вы храните данные в String
:
Вы можете использовать GuardedString
для обеспечения безопасности паролей. Это специальный объект String
, созданный для решения вопросов, связанных с хранением паролей в памяти, представленных String
:
Пакет org.identityconnectors.common.security.GuardedString. Документация:
Secure string implementation that solves the problems associated with keeping passwords as java.lang.String. That is, anything represented as a String is kept in memory as a clear text password and stays in memory at least until it is garbage collected. The GuardedString class alleviates this problem by storing the characters in memory in an encrypted form. The encryption key will be a randomly-generated key. In their serialized form, GuardedString will be encrypted using a known default key. This is to provide a minimum level of protection regardless of the transport. For communications with the Remote Connector Framework it is recommended that deployments enable SSL for true encryption. Applications may also wish to persist GuardedStrings. In the case of Identity Manager, it should convert GuardedStrings to EncryptedData so that they can be stored and managed using the Manage Encryption features of Identity Manager. Other applications may wish to serialize APIConfiguration as a whole. These applications are responsible for encrypting the APIConfiguration blob for an additional layer of security (beyond the basic default key encryption provided by GuardedString).
Если у злоумышленника есть root-доступ к компьютеру, он может прочитать всю память, выполнить операции отладки, выполнить обратный инжиниринг вашего байт-кода java и т.д., то есть нет никакого практического способа помешать злоумышленнику получить данные, которые где-то спрятаны в оперативной памяти. Также вы можете зашифровать swap file/partition.
Вы можете шифровать сами данные лежащие в переменных. Также чтобы усложнить предполагаемым взломщикам понимание вашего кода(т.е. что как работает), вы можете обфусцировать код.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
хочу сделать так, чтобы при вызове метода из другого класса можно было менять значение его массива на нужное мне, но никак не выходит это сделать...
Найти сумму арифметической прогрессии f(n, N) = n + 2n + 3n + 4n + 5n +
Подскажите можно ли создать глобальный класс конфигурации для ApplicationContext в Spring вместо того что бы использовать вот такой вот пример: