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

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

11.01.2017, 14:27. Показов 2033. Ответов 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,154
Записей в блоге: 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,154
Записей в блоге: 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,154
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru