powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / В exe файле можно редактировать любые строковые переменные
25 сообщений из 31, страница 1 из 2
В exe файле можно редактировать любые строковые переменные
    #34829453
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компилирую в Visual c++ 2005. Если полученный exe-шник открыть в текстовом редакторе, например Notepad++ то среди прочих каракуль можно найти любые строки котрые использовались и поменять их значения. Каким образом этого избежать?
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829461
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurman wrote:

> Каким образом этого избежать?
1) Никаким - смысла нет шифроваться, если кому-то надо будет, строки все
равно найдут и выкусят.
2) Можешь запаковыать файл upx'ом, но его можно распаковать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829534
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да понятно что взлом это дело времени, но время это можно и растянуть.
Мне можно и односторонне зашифровать, чтобы хотябы между собой сравнить. Может можно какой нибудь макрос в #define сделать чтобы я в него строку вставил а он уже в exe-шник шифрованное вставил?
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829586
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написать утилиту что при билде - бежит по тексту и криптует его перед компиляцей.

А в местах использования вместо char *a = "str"; писать char *a = decrypt("str");

что-то типа такого.
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829701
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik wrote:

> написать утилиту что при билде - бежит по тексту и криптует его перед
> компиляцей.
>
> А в местах использования вместо char *a = "str"; писать char *a =
> decrypt("str");
>
> что-то типа такого.
>
Эта идея уже обсуждалась. Пришли же ведь к решению, что она
неработоспособна - искомая строка все равно останется в файле.
Это
вот
тут Обсуждений на 2 страницы, с примерами, дизассемблированными
файлами, дампами и т.д.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829857
VladimirP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй писать что-то типа
не
char mystring[] = "123";
а
char mystring[4];
mystring[0] = 49; // шестнацатиричное 31
mystring[1] = 50;
mystring[2] = 51;
mystring[3] = 0; // последний ноль
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829893
Фотография Вечность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirPПопробуй писать что-то типа
не
char mystring[] = "123";
а
char mystring[4];
mystring[0] = 49; // шестнацатиричное 31
mystring[1] = 50;
mystring[2] = 51;
mystring[3] = 0; // последний нольКулхацкеров такие фокусы не остановят:)

По теме:
Решений мне видится два штуки
1) Хранить в EXE не сами строки а их хэши.
2) Если п.1 невозможен, то остаётся только шифровать...
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829923
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirPПопробуй писать что-то типа
не
char mystring[] = "123";
а
char mystring[4];
mystring[0] = 49; // шестнацатиричное 31
mystring[1] = 50;
mystring[2] = 51;
mystring[3] = 0; // последний ноль
Дык в компилированном виде это одно и то же! Эдак ты тока исходник запутаешь, а после компиляции одно и то же выйдет...
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34829980
Фотография Вечность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo VladimirPПопробуй писать что-то типа
не
char mystring[] = "123";
а
char mystring[4];
mystring[0] = 49; // шестнацатиричное 31
mystring[1] = 50;
mystring[2] = 51;
mystring[3] = 0; // последний ноль
Дык в компилированном виде это одно и то же! Эдак ты тока исходник запутаешь, а после компиляции одно и то же выйдет...Правдо??? Даже если отключить оптимизатор... или немного усложнить ему жись, типа так:
Код: plaintext
1.
2.
3.
4.
char mystring[ 4 ];
mystring[ 0 ] = atoi("49");
mystring[ 1 ] = mystring[ 0 ]+ 1 ;
mystring[ 2 ] = mystring[ 1 ]+ 1 ;
mystring[ 3 ] =  0 ; 
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34830118
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurman пишет:

> Компилирую в Visual c++ 2005. Если полученный exe-шник открыть в
> текстовом редакторе, например Notepad++ то среди прочих каракуль можно
> найти любые строки котрые использовались и поменять их значения. Каким
> образом этого избежать?

Криптовать текст. Ключи выдавать только авторизованным пользователям.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34830976
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вечность wrote:

> Хранить в EXE не сами строки а их хэши.
Как вы из хеша назад строку получите? Это же (если я правильно вас
понимаю) контрольная сумма, по сути.

XDiaBLo wrote:
> Дык в компилированном виде это одно и то же!
Не на всех компиляторах и не обязательно. Только это все равно не
поможет, так как такую последовательноть кода можно легко обнаружить, и
человек, пожелавший изменить строчку, только покрутит у виска и все
равно её переправит.

Зачем надо делать неизменяемость строк, если не секрет?

И вообще, по-моему, лучше не шифровать строки, а проверять целостность
программы, с отказом в запуске, если она была изменена. Хотя и это тоже
можно обойти.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34832831
yuraiu02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хеш можно делать только когда строка нужна для сравнения, а если надо получить значение он конечно же не поможет.
Просто строки используются например для хранения серийных номеров для проверки можно ли запускать на данном компьютере или нет, тоесть на этом основывается защита. Открыть в текстовом редакторе и поменять значение может любой, а вот если строку явно не видно это уже может >1% (ИМХО).
Мож упаковщик какойнидь использовать, правда я пока не знаю какой и как.
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34832904
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть такая программа (упаковщик) которая сделает так что строк в текстовом редакторе не будет видно в явном виде (пусть это можно обойти), и которая будет иметь защиту от изменений ехешника (пусть тоже можно обойти) то подскажите какая.
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34833098
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
Lepsik wrote:


Эта идея уже обсуждалась. Пришли же ведь к решению, что она
неработоспособна - искомая строка все равно останется в файле.


неправда есть решение. но пока только для bcb компилятора.

строка остается если темплейтами ходить, а макроассемблер работает на ура.

http://vx.netlux.org/lib/vzo09.html
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34833222
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yurman wrote:

> то подскажите какая.
UPX.

Lepsik wrote:
>строка остается если темплейтами ходить, а макроассемблер работает на
ура.
>http://vx.netlux.org/lib/vzo09.html
Вы опять за свое? Я этот пример тестил, он не компилится 6м билдером,
msvc и g++.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34833272
Фотография Вечность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
Yurman wrote:

> то подскажите какая.
UPX.Витенька, скажи мне дорогой, сколько по-твоему времени потребуется кулхацкеру для того, чтобы воспользоваться ключиком "-d"?

2 Yurman:
Гораздо более действенное лекарство можно посмотреть, например тут .
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34833627
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вечность wrote:

> Витенька, скажи мне дорогой, сколько по-твоему времени потребуется
> кулхацкеру для того, чтобы воспользоваться ключиком "-d"?
>
Просили *любую" программу.
Ещё есть, как я знаю, ASProtect. С лицензией за $100.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34835975
Yurman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбираю между UPX, AsProject и Yoda's protection
UPX распаковать получается проще всего, но можно будет попробовать его с програмками которые вроде как убирают все сведения из exe что он запакован UPX (забыл как называется да и для 3.1 версии пока не нашел)
С насчет ASProtect пока не знаю - легче его распаковывать или нет
Думаю остановиться на Yoda, она вроде как всякие наворота для защиты имеет, хотя и сжимает хуже. Конечно в инете валяются уже скрипты как эту защиту снять, если бы еще можно было скрыть что файл запакован Yoda-й. Но нет так нет и так сойдет.
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34837410
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
XDiaBLo wrote:
> Дык в компилированном виде это одно и то же!
Не на всех компиляторах и не обязательно. Только это все равно не
поможет, так как такую последовательноть кода можно легко обнаружить, и
человек, пожелавший изменить строчку, только покрутит у виска и все
равно её переправит.

Ха, это ещё почему это не на всех? Массив символов, это последовательность байтов, которую даже указателем можно пройтись, они по порядку идут, ЭТО ВСЕГДА И ВЕЗДЕ БУДЕТ ОДНО И ТО ЖЕ! Разве что если ты сам напишешь мегакрутой компилятор, который рассуёт это в разные места, и указатель мегакрутой сможет это всё по порядку пройтись... Страшно представить такое... Ассемблер я знаю, так что про то как это выглядит на низком уровне, вполне себе представляю.
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34837411
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя я кажися понял что имеется в виду, присваивание в другом виде, хм, я думал про представление строки в памяти... Небось оптимизатор таки уберёт эти присваивания
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34837412
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил, и в самом деле, g++ не приводит это к простому присваиванию, я ошибался в достижениях современных оптимизаторов %)
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34837555
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по сабжу:

ну хорошо, сделал ты так, чтобы не было видно твоего текста в экзе-файле, дальше к тебе приходит чел и говорит у нас добавился новый человек в отделе ему нужен доступ к вашей программе, выдайте ему логин и/или пароль и установите такие-то права! Что ты будешь делать? заново пересобирать этот экзешник? Бред! Как по твоему зачем придумывают всякие хэш-операции и почему пароль делают высчитываемым по различным функциям, ищут простые числа большой длины?
Вот по этому никто таким вопрос и не задавался - это, по меньшей мере, не рационально, куда проще сделать менеджер управления правами доступа в твоей программе и хранить пароли в отдельном зашифрованном файле, всякие крипто-api к твоим услугам или, если хочешь попроще, используй для хранения паролей - БД, с возможностью шифрования, например, MS Access.
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34837893
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLo wrote:

> ЭТО ВСЕГДА И ВЕЗДЕ БУДЕТ ОДНО И ТО ЖЕ!
Нет. Почитайте ссылку, которую я давал ранее. Там страницы через три
будет дизассемблированный листинг либо g++, либо msvc. Так вот. Строка
выкрутасами с макросами приводится к куче mov'ов - по одному на символ.
Только проблема в том, что строка в экзешнике все равно остается, и
последовательность mov'ов найти несложно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34837899
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum wrote:

> ну хорошо, сделал ты так, чтобы не было видно твоего текста в
> экзе-файле
Вообще-то, автор вообще так и не сказал, на кой черт ему это надо.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
В exe файле можно редактировать любые строковые переменные
    #34838057
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV
XDiaBLo wrote:

> ЭТО ВСЕГДА И ВЕЗДЕ БУДЕТ ОДНО И ТО ЖЕ!
Нет. Почитайте ссылку, которую я давал ранее. Там страницы через три
будет дизассемблированный листинг либо g++, либо msvc. Так вот. Строка
выкрутасами с макросами приводится к куче mov'ов - по одному на символ.
Только проблема в том, что строка в экзешнике все равно остается, и
последовательность mov'ов найти несложно.
Я уже сам проверил, скомпилировал на g++, строки нет, оптимизации такое не оптимизируют, да и поначалу я просто неправильно понял постановку вопроса. Я почему то подумал о представлении этой строки в памяти, и не подумал что оптимизатор такое не оптимизирует... Но в следующий раз буду сразу проверять свои догадки на практике.

А насчёт кода, и всяких там строк, допустим во всяких Java и C# существует такая вещь как обфускаторы кода, интересно, а они скрывают текст? Или только делают код запутанным? Расскажите кто в курсе, а то лень проверять самому...
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / В exe файле можно редактировать любые строковые переменные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]