|
|
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Компилирую в Visual c++ 2005. Если полученный exe-шник открыть в текстовом редакторе, например Notepad++ то среди прочих каракуль можно найти любые строки котрые использовались и поменять их значения. Каким образом этого избежать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 20:04:08 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Yurman wrote: > Каким образом этого избежать? 1) Никаким - смысла нет шифроваться, если кому-то надо будет, строки все равно найдут и выкусят. 2) Можешь запаковыать файл upx'ом, но его можно распаковать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 20:08:16 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Да понятно что взлом это дело времени, но время это можно и растянуть. Мне можно и односторонне зашифровать, чтобы хотябы между собой сравнить. Может можно какой нибудь макрос в #define сделать чтобы я в него строку вставил а он уже в exe-шник шифрованное вставил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 20:52:49 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
написать утилиту что при билде - бежит по тексту и криптует его перед компиляцей. А в местах использования вместо char *a = "str"; писать char *a = decrypt("str"); что-то типа такого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 21:33:00 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Lepsik wrote: > написать утилиту что при билде - бежит по тексту и криптует его перед > компиляцей. > > А в местах использования вместо char *a = "str"; писать char *a = > decrypt("str"); > > что-то типа такого. > Эта идея уже обсуждалась. Пришли же ведь к решению, что она неработоспособна - искомая строка все равно останется в файле. Это вот тут Обсуждений на 2 страницы, с примерами, дизассемблированными файлами, дампами и т.д. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2007, 23:09:14 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Попробуй писать что-то типа не char mystring[] = "123"; а char mystring[4]; mystring[0] = 49; // шестнацатиричное 31 mystring[1] = 50; mystring[2] = 51; mystring[3] = 0; // последний ноль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 07:30:13 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
VladimirPПопробуй писать что-то типа не char mystring[] = "123"; а char mystring[4]; mystring[0] = 49; // шестнацатиричное 31 mystring[1] = 50; mystring[2] = 51; mystring[3] = 0; // последний нольКулхацкеров такие фокусы не остановят:) По теме: Решений мне видится два штуки 1) Хранить в EXE не сами строки а их хэши. 2) Если п.1 невозможен, то остаётся только шифровать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 08:14:22 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
VladimirPПопробуй писать что-то типа не char mystring[] = "123"; а char mystring[4]; mystring[0] = 49; // шестнацатиричное 31 mystring[1] = 50; mystring[2] = 51; mystring[3] = 0; // последний ноль Дык в компилированном виде это одно и то же! Эдак ты тока исходник запутаешь, а после компиляции одно и то же выйдет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 08:43:51 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 09:09:55 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Yurman пишет: > Компилирую в Visual c++ 2005. Если полученный exe-шник открыть в > текстовом редакторе, например Notepad++ то среди прочих каракуль можно > найти любые строки котрые использовались и поменять их значения. Каким > образом этого избежать? Криптовать текст. Ключи выдавать только авторизованным пользователям. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 10:03:21 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Вечность wrote: > Хранить в EXE не сами строки а их хэши. Как вы из хеша назад строку получите? Это же (если я правильно вас понимаю) контрольная сумма, по сути. XDiaBLo wrote: > Дык в компилированном виде это одно и то же! Не на всех компиляторах и не обязательно. Только это все равно не поможет, так как такую последовательноть кода можно легко обнаружить, и человек, пожелавший изменить строчку, только покрутит у виска и все равно её переправит. Зачем надо делать неизменяемость строк, если не секрет? И вообще, по-моему, лучше не шифровать строки, а проверять целостность программы, с отказом в запуске, если она была изменена. Хотя и это тоже можно обойти. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 13:16:36 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Хеш можно делать только когда строка нужна для сравнения, а если надо получить значение он конечно же не поможет. Просто строки используются например для хранения серийных номеров для проверки можно ли запускать на данном компьютере или нет, тоесть на этом основывается защита. Открыть в текстовом редакторе и поменять значение может любой, а вот если строку явно не видно это уже может >1% (ИМХО). Мож упаковщик какойнидь использовать, правда я пока не знаю какой и как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 20:43:54 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Если есть такая программа (упаковщик) которая сделает так что строк в текстовом редакторе не будет видно в явном виде (пусть это можно обойти), и которая будет иметь защиту от изменений ехешника (пусть тоже можно обойти) то подскажите какая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 21:20:00 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
ErV Lepsik wrote: Эта идея уже обсуждалась. Пришли же ведь к решению, что она неработоспособна - искомая строка все равно останется в файле. неправда есть решение. но пока только для bcb компилятора. строка остается если темплейтами ходить, а макроассемблер работает на ура. http://vx.netlux.org/lib/vzo09.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2007, 23:58:24 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Yurman wrote: > то подскажите какая. UPX. Lepsik wrote: >строка остается если темплейтами ходить, а макроассемблер работает на ура. >http://vx.netlux.org/lib/vzo09.html Вы опять за свое? Я этот пример тестил, он не компилится 6м билдером, msvc и g++. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 05:11:09 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
ErV Yurman wrote: > то подскажите какая. UPX.Витенька, скажи мне дорогой, сколько по-твоему времени потребуется кулхацкеру для того, чтобы воспользоваться ключиком "-d"? 2 Yurman: Гораздо более действенное лекарство можно посмотреть, например тут . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 07:44:37 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Вечность wrote: > Витенька, скажи мне дорогой, сколько по-твоему времени потребуется > кулхацкеру для того, чтобы воспользоваться ключиком "-d"? > Просили *любую" программу. Ещё есть, как я знаю, ASProtect. С лицензией за $100. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 10:34:42 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Выбираю между UPX, AsProject и Yoda's protection UPX распаковать получается проще всего, но можно будет попробовать его с програмками которые вроде как убирают все сведения из exe что он запакован UPX (забыл как называется да и для 3.1 версии пока не нашел) С насчет ASProtect пока не знаю - легче его распаковывать или нет Думаю остановиться на Yoda, она вроде как всякие наворота для защиты имеет, хотя и сжимает хуже. Конечно в инете валяются уже скрипты как эту защиту снять, если бы еще можно было скрыть что файл запакован Yoda-й. Но нет так нет и так сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 20:56:05 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
ErV XDiaBLo wrote: > Дык в компилированном виде это одно и то же! Не на всех компиляторах и не обязательно. Только это все равно не поможет, так как такую последовательноть кода можно легко обнаружить, и человек, пожелавший изменить строчку, только покрутит у виска и все равно её переправит. Ха, это ещё почему это не на всех? Массив символов, это последовательность байтов, которую даже указателем можно пройтись, они по порядку идут, ЭТО ВСЕГДА И ВЕЗДЕ БУДЕТ ОДНО И ТО ЖЕ! Разве что если ты сам напишешь мегакрутой компилятор, который рассуёт это в разные места, и указатель мегакрутой сможет это всё по порядку пройтись... Страшно представить такое... Ассемблер я знаю, так что про то как это выглядит на низком уровне, вполне себе представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 07:14:36 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
хотя я кажися понял что имеется в виду, присваивание в другом виде, хм, я думал про представление строки в памяти... Небось оптимизатор таки уберёт эти присваивания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 07:16:36 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Проверил, и в самом деле, g++ не приводит это к простому присваиванию, я ошибался в достижениях современных оптимизаторов %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 07:23:05 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
по сабжу: ну хорошо, сделал ты так, чтобы не было видно твоего текста в экзе-файле, дальше к тебе приходит чел и говорит у нас добавился новый человек в отделе ему нужен доступ к вашей программе, выдайте ему логин и/или пароль и установите такие-то права! Что ты будешь делать? заново пересобирать этот экзешник? Бред! Как по твоему зачем придумывают всякие хэш-операции и почему пароль делают высчитываемым по различным функциям, ищут простые числа большой длины? Вот по этому никто таким вопрос и не задавался - это, по меньшей мере, не рационально, куда проще сделать менеджер управления правами доступа в твоей программе и хранить пароли в отдельном зашифрованном файле, всякие крипто-api к твоим услугам или, если хочешь попроще, используй для хранения паролей - БД, с возможностью шифрования, например, MS Access. -------------------------------------------------------------- [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 09:58:21 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
XDiaBLo wrote: > ЭТО ВСЕГДА И ВЕЗДЕ БУДЕТ ОДНО И ТО ЖЕ! Нет. Почитайте ссылку, которую я давал ранее. Там страницы через три будет дизассемблированный листинг либо g++, либо msvc. Так вот. Строка выкрутасами с макросами приводится к куче mov'ов - по одному на символ. Только проблема в том, что строка в экзешнике все равно остается, и последовательность mov'ов найти несложно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 11:43:30 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
Cerebrum wrote: > ну хорошо, сделал ты так, чтобы не было видно твоего текста в > экзе-файле Вообще-то, автор вообще так и не сказал, на кой черт ему это надо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 11:44:41 |
|
||
|
В exe файле можно редактировать любые строковые переменные
|
|||
|---|---|---|---|
|
#18+
ErV XDiaBLo wrote: > ЭТО ВСЕГДА И ВЕЗДЕ БУДЕТ ОДНО И ТО ЖЕ! Нет. Почитайте ссылку, которую я давал ранее. Там страницы через три будет дизассемблированный листинг либо g++, либо msvc. Так вот. Строка выкрутасами с макросами приводится к куче mov'ов - по одному на символ. Только проблема в том, что строка в экзешнике все равно остается, и последовательность mov'ов найти несложно. Я уже сам проверил, скомпилировал на g++, строки нет, оптимизации такое не оптимизируют, да и поначалу я просто неправильно понял постановку вопроса. Я почему то подумал о представлении этой строки в памяти, и не подумал что оптимизатор такое не оптимизирует... Но в следующий раз буду сразу проверять свои догадки на практике. А насчёт кода, и всяких там строк, допустим во всяких Java и C# существует такая вещь как обфускаторы кода, интересно, а они скрывают текст? Или только делают код запутанным? Расскажите кто в курсе, а то лень проверять самому... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 12:35:51 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34833222&tid=2028084]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 459ms |

| 0 / 0 |
