реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Защита ресурсов EXE-файла
toweroff
сообщение Nov 10 2012, 17:24
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день

Возник вот какой вопрос. Есть EXE-файл. Его можно открыть всякими ResHacker, XN Resource Editor и т.д. и подправить капчи, фонты, лейблы и прочую
Что можно предпринять, чтобы это было бы хотя бы ну уж не так прямо "в лоб"?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 10 2012, 18:14
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Раньше был какой-то AsPack. Для совсем простых случаев - упаковать upx-ом.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 10 2012, 18:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



а, допустим, ксорить строковые константы и присваивать значения в процессе создания формы?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 10 2012, 18:33
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(toweroff @ Nov 10 2012, 20:27) *
а, допустим, ксорить строковые константы и присваивать значения в процессе создания формы?

А почему ксорить-то? тогда уж лучше зашифровать.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2012, 18:48
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А зачем ксорить-шифровать, если достаточно проверить целостность? Раз уж задача поставлена "чтобы нельзя было подправить".
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 10 2012, 19:00
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Nov 10 2012, 22:48) *
А зачем ксорить-шифровать, если достаточно проверить целостность? Раз уж задача поставлена "чтобы нельзя было подправить".

а механизм проверки?

допустим, я считаю КС файла, куда я ее дену? если заменю в редакторе определенное место этой суммой, то результирующая ведь тоже поменяется?

или я все не так понимаю?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2012, 19:06
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(toweroff @ Nov 10 2012, 23:00) *
или я все не так понимаю?

Что-то я не понимаю затруднений. Считаете хэш, прикручиваете его к .exe файлу, на старте проверяете. От пионеров хватит.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 10 2012, 19:22
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Nov 10 2012, 23:06) *
Что-то я не понимаю затруднений. Считаете хэш, прикручиваете его к .exe файлу, на старте проверяете. От пионеров хватит.

опять непонятно. Вот я выделил константу, с которой буду сравнивать рассчитанный хэш, знаю расположение в EXE
считаю, допустим, MD5, сохраняю в это место

запускаю EXE, считаю MD5. Но ведь сумма будет уже другой!

Повторяю вопрос - какой вообще механизм проверки целостности?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2012, 19:47
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(toweroff @ Nov 10 2012, 23:22) *
Повторяю вопрос - какой вообще механизм проверки целостности?

Самый простой вариант - записать в конце. Если значение записано где-то в середине, то, разумеется, во время проверки придется его подменить.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 10 2012, 19:53
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(aaarrr @ Nov 10 2012, 23:47) *
Самый простой вариант - записать в конце. Если значение записано где-то в середине, то, разумеется, во время проверки придется его подменить.

ну так что мешает тогда "хакеру" найти сумму в конце, что надо подправить и снова записать сумму в непроверяемую область?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2012, 20:10
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Если это сумма, то ничего не помешает. А вот если это CRC32 с неизвестным полиномом и стартовым значением, то пионера отвадит.
Go to the top of the page
 
+Quote Post
vvs157
сообщение Nov 10 2012, 20:36
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(toweroff @ Nov 10 2012, 23:53) *
ну так что мешает тогда "хакеру" найти сумму в конце, что надо подправить и снова записать сумму в непроверяемую область?
Вы определитесь, какого уровня крякера (от слова crack, а не хакера) Вы хотите остановить. Если минимального - то достаточно упаковать UPX и поискать утиль, который делает его нераспаковываемым самим UPX. С контрольной суммой тоже просто. Отводите для нее статическу переменную, зануляете, считаете внешней прогой КС и добавляете в переменную так, чтоб КС стала равнв нулю. После запуска и распаковки - проверяете КС. Естественно, все это потребует некоего времени и минимальных знаний, как устроен код, сгенеренный вашим компилятором. От человека, который хотя бы минимально знаком с крекингом, Вы за кототкий промежуток времени, без использования специализированных программ, не защититесь.

Цитата(aaarrr @ Nov 11 2012, 00:10) *
Если это сумма, то ничего не помешает. А вот если это CRC32 с неизвестным полиномом и стартовым значением, то пионера отвадит.
"ПионЭр" просто найдет место, где проверяется на сопадение и заменит один байтик условного перехода на код 0хEB - безусловный переход на нужное место.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 10 2012, 20:53
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(vvs157 @ Nov 11 2012, 00:36) *
"ПионЭр" просто найдет место, где проверяется на сопадение и заменит один байтик условного перехода на код 0хEB - безусловный переход на нужное место.

Если не поленится. Проверять можно не только на старте. А вообще, пионеры - они разные бывают. В т.ч. и очень упорные sm.gif
Go to the top of the page
 
+Quote Post
Flood
сообщение Nov 10 2012, 21:04
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 702
Регистрация: 8-06-06
Пользователь №: 17 871



Делать любую защиту "несекретных" EXE при помощи упаковщика не только бесполезно, но и вредно.
Во-первых, любой пионер за 5 минут загуглит программу для снятия упаковщка, что делает его использование бесполезным.
Во-вторых, любая нормальная антивирусная программа при виде такого файла впадет в ступор от 0,1 до нескольких секунд (длительность ступора зависит от сложности упаковщика и размера EXE-файла), что делает использование упаковщика вредным.
В-третьих, любой сервис типа virustotal выдаст несколько ложноположительных детектов только из-за присутствия упаковщика, что также нельзя назвать приятным.

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

Если очень хочется защитить логотип софта от скучающих пионеров - можно хранить его в зашифрованном или нестандартном формате. Но это не остановит даже мало-мальски заинтересованного пионера, так что спорный вопрос, стоит ли тратить на это время разработчика.
Наилучшая защита от внесения изменений - подпись исполняемого файла и распространение информации об обязательности ее наличия. Это не спасает от изменений, но дает надежный инструмент их обнаружения.
Go to the top of the page
 
+Quote Post
V_G
сообщение Nov 10 2012, 23:12
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Вообще-то ресурсы как отдельная и открытая составляющая exe-файла и проектировались специально для удобства локализации, когда, не затрагивая авторских прав на код, можно было бы подправить интерфейс.
Не хотите ресурсов - создавайте кнопки, переключатели, окна диалога и пр. в ходе выполнения программы. Иконки-картинки шифруйте и храните в теле программы.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 13:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01546 секунд с 7
ELECTRONIX ©2004-2016