Russian Qt Forum
Ноябрь 24, 2024, 01:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Проверка памяти для приложений Qt  (Прочитано 14595 раз)
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #15 : Июнь 27, 2016, 16:39 »

а подмена либ рушит всю построенную защиту
Коли тебя заботят такие вещи, то подмена либ должна быть исключена на начальном уровне.
Либо подписывай их либо линкуйся статически.
Записан

Qt 5.11/4.8.7 (X11/Win)
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #16 : Июнь 27, 2016, 16:43 »

Либо подписывай их либо линкуйся статически.

а как подписать qt библиотеки ?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #17 : Июнь 27, 2016, 17:02 »

а как подписать qt библиотеки ?
Тут я не большой знаток.
Можешь купить сертификат и им подписывать.
Можешь сам получить md5 таскаемых с пакетом либ, вкомпилить их в еxe-шник и проверять при старте.
Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #18 : Июнь 27, 2016, 17:04 »

Типовой "перекос" в постановке. Зачем какая-то "подмена либ"?  Напр на Вындоуз реально написать хук который будет запоминать нажатия для окна с таким-то именем и/или классом. А то и "найти готовый" Улыбающийся И что, как с этим бороться? Да просто не пускать козлов на машину - лучшего нет. Не отвечает программист за это. "Никогда не храни пароль явно" (хотя бы заXOR'ь) - это уже прозвучало. Остальное - улет хз куда
Записан
Bepec
Гость
« Ответ #19 : Июнь 27, 2016, 18:35 »

Точного описания проверки эталоном не скажу, не занимался.
Но суть в том, что берётся слепок памяти программы при запуске, и потом сверяется по какому-либо событию.
Так же этот метод используется для отслеживания патчей - в программе хранится собственный исполняемый файл, с которым сверяется текущий. При различиях выход.

Защита от dll - выгрузка лишних сразу же, постановка своих хуков на LoadLibrary, внешнее приложение, которое при обнаружении загрузки лишней библиотеки рубит программу Улыбающийся
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #20 : Июнь 27, 2016, 21:05 »

Типовой "перекос" в постановке. Зачем какая-то "подмена либ"?  Напр на Вындоуз реально написать хук который будет запоминать нажатия для окна с таким-то именем и/или классом. А то и "найти готовый" Улыбающийся И что, как с этим бороться? Да просто не пускать козлов на машину - лучшего нет. Не отвечает программист за это. "Никогда не храни пароль явно" (хотя бы заXOR'ь) - это уже прозвучало. Остальное - улет хз куда

Или просто хешировать его и добавить на всякий "соль" Улыбающийся
Записан

Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #21 : Июнь 27, 2016, 21:19 »

Или просто хешировать его и добавить на всякий "соль" Улыбающийся
Что бы что то хешировать нужно иметь эту строку в исходном виде. Вот человек и спрашивает, а сколько копий исходной строки останется в памяти после ввода ее через QLineEdit. И как от них избавится после завершения редактирования.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #22 : Июнь 27, 2016, 23:34 »

Да просто не пускать козлов на машину - лучшего нет. Не отвечает программист за это. "Никогда не храни пароль явно" (хотя бы заXOR'ь) - это уже прозвучало. Остальное - улет хз куда

Но ведь обычно не получается не пускать
Программа отдается пользователю, а значит он может делать с ней что захочет
Остается только написать условия использования - "не ломать, нельзя"
Записан
Bepec
Гость
« Ответ #23 : Июнь 27, 2016, 23:47 »

Нет невзламываемых программ.
Есть программы, которые взламывать экономически нецелесообразно Улыбающийся
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #24 : Июнь 28, 2016, 09:30 »

Нет невзламываемых программ.

Но задача ТС им не решена: обнулять память нет смыла, как и шифровать
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #25 : Июнь 28, 2016, 11:08 »

Но ведь обычно не получается не пускать
Программа отдается пользователю, а значит он может делать с ней что захочет
Остается только написать условия использования - "не ломать, нельзя"
Пользователь и так имеет имеет пароль, что от кого засисяем? Улыбающийся  QLineEdit здесь вообще ни при чем. Если верный пароль введен - найдутся средства узнать что введено. Это все равно как юзер сообщил пароль злоумышленнику - бороться с этим бесполезно. Вероятно имеется ввиду такое
Код
C++ (Qt)
if (edit->text() == "TruePassword")
...
И нужно лишить возможности подсмотреть в отладчике с чем сравнивается введенное, и/или забить это место nop'ами
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #26 : Июнь 28, 2016, 11:36 »

QLineEdit здесь вообще ни при чем.

Есть некое Qt-шное приложение, в котором есть QLineEdt, в который вводится пароль латиницей+цифры (echomode там, например, password). И требуется чтобы этот пароль для злоумышленников было максимально трудно получить. Считается, что после использования пароля внутри программы он надежно затирается своими средствами, и QLineEdit - это единственное уязвимое место.

Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.215 секунд. Запросов: 22.