Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832

Спрятать строки в памяти

11.01.2017, 14:27. Показов 2001. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Задался таким вопросом - можно ли спрятать строки программы не в hex, а в памяти при отладке (например, отладчиком ollydbg)?
Строки на английском языке, поэтому легко видны, если не совершать каких-либо манипуляций.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.01.2017, 14:27
Ответы с готовыми решениями:

С++ builder -> считывание строки из StringGrid с выделением памяти
Здравствуйте всем... Помогите пожалуйста с StringGrid! мне нужно считать строку name из ячейки предварительно выделив память под строку;...

Избежать утечки памяти при преобразовании строки в массив символов
Всем привет! Как избежать утечки памяти в таком коде: char* ConvertString(String input) { char *output = new char; ...

Чтение строки зная адрес в памяти
Привет всем. Есть адрес в памяти другой программы в котором находится строка. Как её можно считать? Так не получается(. Ничего не...

19
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
14.01.2017, 01:26
Пять раз прочитал.
Ничего не понял.
0
3 / 2 / 2
Регистрация: 22.12.2016
Сообщений: 219
14.01.2017, 09:38
Themida?
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
17.01.2017, 21:02  [ТС]
Темида то да, да и такие как enigma protector, vmprotect тоже хорошо все скрывают. Вот только методы неизвестны.

Добавлено через 2 минуты
Описываю еще раз кому не понятно:
Если сделать программу и, например, запихнуть внутрь пароль, то при отладке в любом отладчике можно будет найти этот самый пароль. Даже если вы его там будете собирать по частям, шифровать, пароль всеравно при сравнении будет расшифрован и кинут в память для сравнения, где его можно будет увидеть. Разные протекторы это скрывают, но как? Как, например, создать виртуалку внутри программы, внутри которой будет исполняться код, плохо обрабатываемый отладчиком?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
17.01.2017, 21:41
Если я правильно понял, Вы переживаете что вскроют exe и с него прочтут данные, то не возможно в таком случае спрятать данные в памяти. Но а что мешает держать md5 пароля?
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
18.01.2017, 00:07  [ТС]
Пароль это только пример.
Я хотел бы именно скрыть все читаемые строки, чтобы невозможно было спокойно ориентироваться в отладчике нубо-хакеру.
Например, label с caption: Login.
Если, например, в label засунуть кракозябру и позже при загрузке формы засунуть нужный caption, то в отладчике всеравно будет видно слово Login после появления формы.
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
18.01.2017, 16:16
Врятли ты сможешь скрыть данные формы от отладчика.
Есть вариант использовать шрифт с измененными символами (код символа A например будет соответствовать глифу X), и соответственно все строки кодировать по этому принципу
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
18.01.2017, 16:18
Цитата Сообщение от Raali Посмотреть сообщение
Врятли ты сможешь скрыть данные формы от отладчика.
Для запущенной программы еще можно пободаться,к примеру сделать двойную, а может даже тройную виртуализацию.
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
18.01.2017, 22:33  [ТС]
Raali, каким образом это сделать?
Dinkin, в том то и смысл, что я не знаю как делать виртуализацию, а гугл не дает правильных результатов
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,145
Записей в блоге: 3
18.01.2017, 22:48
ziqp, Что бы защищаться от
Цитата Сообщение от ziqp Посмотреть сообщение
нубо-хакеру
Вам следует ознакомится с теорией,как это они делают. Вы бы сразу придумали с 10-ок моментов как усложнить этот процесс.

Цитата Сообщение от ziqp Посмотреть сообщение
что я не знаю как делать виртуализацию
Еще перед релизом XE8, писали что данный функционал будет доступен в настройках, не знаю, не искал..может он там и появился. Так же есть ряд стороннего софта для этого.
PS На заметку, виртуализация замедляет выполнения кода, собственно чем больше уровней, тем ниже скорость. Конечно может для большинства случаев это будет в обще не заметно.
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
19.01.2017, 00:12  [ТС]
Я сам нубо-хакер) Думаете почему мне нужно спрятать строки в памяти? По ним проще ориентироваться. Кроме этого, нужно делать много условий, так как с большим количеством jmp команд в отладчике поиск нужного прыжка займет больше времени. Вот и все. Такие ребята зачастую не заходят внутрь операций и не смотрят что они исполняют. Просто делают патч где им нужно и программа уже входит при любом пароле. А если занулить (поставить null) в месте, где исполняются несколько операций, в том числе нужных для работы самой программы, после кряка программа работает неправильно. Вот примерно что мне нужно
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
19.01.2017, 19:42
Делай две ветки.
Одну обычную, другую ложную.
Засекай время обработки куска кода.
Если программа работает в пошаговом отладчике, время на выполнение огромное (по сравнению с обычным проходом) и отправляй на ложную ветку с фейковыми вычислениями.
Опять же, проверку на валидность можно делать в нескольких, непредсказуемых местах.

Добавлено через 11 минут
Цитата Сообщение от Raali Посмотреть сообщение
использовать шрифт с измененными символами
Просто меняешь символы местами и сохраняешь свой шрифт, который потом подсунешь программе.
http://www.high-logic.com/font... eator.html
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.01.2017, 19:44
И хочется с этим заморачиваться ? Может проще USB-ключи использовать, типа лицензирования, если так переживаете за свои программы ?
0
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
19.01.2017, 20:58
Цитата Сообщение от +1 Посмотреть сообщение
Если программа работает в пошаговом отладчике, время на выполнение огромное (по сравнению с обычным проходом) и отправляй на ложную ветку с фейковыми вычислениями.
Вот интересно, как написать программу так, чтобы она определила, что ее засунули в дизассемблер?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
19.01.2017, 21:35
Цитата Сообщение от d7d1cd Посмотреть сообщение
Вот интересно, как написать программу так, чтобы она определила, что ее засунули в дизассемблер?
Анализ запущенных процессов ?
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
19.01.2017, 23:32
вычислять хэш сумму
точки останова её меняют
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
20.01.2017, 07:26  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
И хочется с этим заморачиваться ? Может проще USB-ключи использовать, типа лицензирования, если так переживаете за свои программы ?
Программа распространяется через интернет, поэтому usb ключ здесь не подойдет. Да и защита нормальная стоит, нельзя подделать результат после подключения к серверу
И кстати, можно изменить еще точку входа с 4000... на 8000..., ollydbg отказывается запускать такие программы.
Цитата Сообщение от +1 Посмотреть сообщение
Делай две ветки.
Одну обычную, другую ложную.
Засекай время обработки куска кода.
Если программа работает в пошаговом отладчике, время на выполнение огромное (по сравнению с обычным проходом) и отправляй на ложную ветку с фейковыми вычислениями.
Опять же, проверку на валидность можно делать в нескольких, непредсказуемых местах.
Это понятно, с переходами разобрались) Теперь что делать с текстом... Я так понял, что если шифровать текст таким методом, нужно постоянно при себе иметь дешифратор при работе с проектом, или комментировать каждую строку с символами.. Вроде бы не очень продуктивно
0
859 / 448 / 112
Регистрация: 06.07.2013
Сообщений: 1,491
25.01.2017, 15:33
Цитата Сообщение от ziqp Посмотреть сообщение
нужно постоянно при себе иметь дешифратор при работе с проектом
а зачем дешифратор, он уже не понадобится, так как шрифт у тебя сам как дешифратор работает

Добавлено через 4 минуты
все зависит от того как хранить строки, если это хардкод то не продуктивно, а если это ресурс какой то, и в коде юзаются строки от туда то очень даже удобно, у тебя есть незашифрованный файлик, в который все добавляешь и меняешь, а шифрованный юзает сама программа
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
25.01.2017, 22:37
ерунда все это, кому нужно менять эти строки ?
Если это строка с копирайтом (сделано ziqp) - заменят при желании.
Строку с паролем - тоже. И так любую фигню.
Лучше это время и ресурсы потратить на что-то более полезное.
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
26.01.2017, 02:21  [ТС]
Мне вот просто интересно.. почему в гугле нет хороших примеров виртуализации на c++?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2017, 02:21
Помогаю со студенческими работами здесь

Как изменить длину строки в памяти процесса (менять ник прямо в памяти игры)
Надо написать программку, способную менять ник в игре прямо в памяти этой игры. но возникла проблема с тем, что длина ника динамическая, и...

Чтение строки из памяти
Пытаюсь обратиться к оперативной памяти и прочитать оттуда строку char fullChar = ""; char tempChar...

Строки и выделение памяти
Здравствуйте прогеры. Пишу набор "лёгких" классов дабы использовать их в своём игровом движке и столкнулся с проблемой. Класс String -...

Строки - засорение памяти
1) Допустим у меня встречается текст void Function() { char* str1="abcd"; // или const char*, как все советуют // тело...

Строки и символы, выделение памяти
Здраствуйте уважаемые! Столкнулся с проблемой измерения длины заданой строки . Тоесть в чем задача: с клавиатуры вводится определенная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru