Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > сокрытие данных обрабатываемых программой


Автор: shara 15.10.2008, 20:54
собственно вопрос такого плана, если значения переменных выполняемой программы хранятся в памяти, то можно ли зная адрес по которому конкретной переменной(грубо говоря ее указатель *i ) может ли чужая программа получить доступ к данным содержащиеся по этому адресу.   если можно, а я думаю что можно, то что читать по этому поводу.

сей вопрос интересует с целью защиты собственных программ от несанкционированного проникновения из вне

Автор: Maka6er 15.10.2008, 23:06
В современных ОС нельзя.
Почитайте про защищенный режим процессора и способы адресации.

Автор: Alexeis 15.10.2008, 23:17
Цитата(shara @  15.10.2008,  19:54 Найти цитируемый пост)
собственно вопрос такого плана, если значения переменных выполняемой программы хранятся в памяти, то можно ли зная адрес по которому конкретной переменной(грубо говоря ее указатель *i ) может ли чужая программа получить доступ к данным содержащиеся по этому адресу.   если можно, а я думаю что можно, то что читать по этому поводу.

  С правами админа можно, но непросто. Если речь идет о винде то можно при помощи WriteProcessMemory. Можно также через дополнительный драйвер работающий в режиме ядра.

Автор: J0ker 17.10.2008, 19:24
Цитата(shara @  15.10.2008,  20:54 Найти цитируемый пост)
сей вопрос интересует с целью защиты собственных программ от несанкционированного проникновения из вне 

на стандартных платформах это невозможно впринципе. Вы можете осложнить задачу путем шифрования данных в памяти, но т.к. вся программа выполняется на открытой системе, это тоже не гарантирует безопасность. На моем компе я могу выковырять из вашей программы все что мне хочется - вопрос лишь в трудозатратах

Автор: shara 17.10.2008, 20:34
J0ker, 
это с наличием исходников или можно и без них? 
если не затруднит, не могли бы Вы описать сам процесс, хотя бы в общих чертах.

Автор: J0ker 17.10.2008, 22:23
процесс чего? выковыривания? так любой дизассемблер и отладчик (например IDA + SoftIce)

Автор: Lazin 18.10.2008, 07:48
данные программы в памяти будет очень сложно правильно интерпритировать, так-что это лишнее

Автор: shara 19.10.2008, 16:57
а тот-же АртМани, ведь он сканирует память заданного процесса и за два три отсева можно найти интересующую область памяти и например просто перезаписать ее нужным значением... что Вы по этому поводу думаете. 
т.е. я хочу понять насколько возможно имея полный доступ к программе (кроме исходников) научится перехватывать и подменять обрабатываемые ею данные, я так понимаю что в принципе это возможно.   и посему интересен еще один вопрос: можно ли сделать тоже самое, но при помощи программы-вируса, на чужой машине

Автор: J0ker 19.10.2008, 18:59
сделать можно все что угодно
вопрос - сколько это будет стоить

Автор: shara 19.10.2008, 21:28
J0ker, +1
вот и хочу научиться делать так, чтобы было ПОДОРОЖЕ и по напряжней smile комуто хакнуть мою прогу

Автор: J0ker 20.10.2008, 00:26
скажем так
если хакнуть вашу прогу будет стоить 100 баксов а продаете вы ее за 20 - то скорее всего ее у вас купят
вы же не собираетесь ваять что-то грандиозное за 10 косарей?
если собираетесь - есть коммерческие продукты для защиты ПО - вам будет дешевле их купить чем изобретать самому потому как в этом деле много тонкостей

Автор: shara 20.10.2008, 23:11
J0ker, 
Не могли бы Вы что-то посоветовать почитать по сему поводу. или гугль гугль и еще раз гугль 

Автор: J0ker 21.10.2008, 06:01
посоветовать ничего не могу
я никогда таким вопросом не задавался (по той-же причине, по которой не играю в лоттереи)
я немного ломал и из этого опыта могу вам сказать что то, что один написал другой завсегда поломать может
понимаете, даже если вы что-то внутри программы шифруете, то там-же, внутри, вы должны это расшифровать что-бы программа с этим могла работать - и ничто не помешает кракеру этот дешифратор рипнуть даже, в большинстве случаев, не вникая как он работает. Поэтому чаще трудозатраты по изобретению различных защит бывают гораздо выше трудозатрат по взлому.

Автор: shara 21.10.2008, 19:28
то что шифрование данных тут бесполезно это понятно и так, поскольку в зашифрованном виде с ними особо не наработаешь - приходится их расшифровывать. так что проблема это не криптографическая а скорее стенографическая (сокрытия данных) ну или строгое разграничение доступа к памяти 

Автор: J0ker 21.10.2008, 19:40
Цитата(shara @  21.10.2008,  19:28 Найти цитируемый пост)
а скорее стенографическая (сокрытия данных)

стеГАнографическая
это не поможет
данные отслеживают по доступу вашей-же программы, а вовсе не просмотром бинарника (хотя такое очень редко и применяют в тривиальных случаях)

Цитата(shara @  21.10.2008,  19:28 Найти цитируемый пост)
строгое разграничение доступа к памяти

на моем компе вы ничего разграничивать не можете

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)