Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2012, 22:22   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Ресурсы файла Exe

Всем доброго времени суток. Вопрос такой, возможно ли какими либо способами скрыть ресурсы в exe файле, чтобы их не видели такие программы, как Restorator, ReSHack и т.д. ?

Просьба: различные упаковщики не предлагать, так скажем, хотелось бы сделать на уровне делфи...
-Jack- вне форума Ответить с цитированием
Старый 27.10.2012, 22:45   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Первое, что приходит на ум:
1. хранить ресурсы в dll, которая лежит вместе с программой в зашифрованном виде. При запуске приложения расшифровывать эту dll и грузить из нее ресурсы.
2. Взять какую-нибудь маленькую СУБД типа KeyDB, TinyDB и т.п. и хранить ресурсы в blob-поле в зашифрованном виде. Оттуда и грузить их при запуске программы.

ps. А чем упаковщики не устраивают? Можно так их зажать каким-нибудь Armadillo или последними версиями ASProtect, что для распаковки потребуется слишком много сил и энергии, чтобы кто-то стал этим заниматься. Но если кому-то очень понадобится - все равно сломают. Я раньше занимался русификацией программ, вскрывал бинарники для извлечения ресурсов и только 2-3 раза были случаи, когда не смог их выудить.
А какие ресурсы нужно спрятать? Только Картинки и Строки или всю папку RCData?
_SERGEYX_ вне форума Ответить с цитированием
Старый 27.10.2012, 23:00   #3
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Не хочу пользоваться упаковщиками, потому что на них часто антивирусы ругаются ... а мне это не желательно

да желательно вообще все ресурсы спрятать ...

Это понятно, что всё что угодно можно взломать ...
-Jack- вне форума Ответить с цитированием
Старый 27.10.2012, 23:38   #4
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Покопавшись в инете нашел вот такой метод ...

Цитата:
Защита от Restorator, ResHacker: достаточно вставить несколько раз к событиям на нажатие кнопок или на событие формы OnCreate, такой код.

Код:
var str:string;
     i:integer;
 
 str:='њњ|xњxxxaњфxэxкxщгмxфxйxт';
 
 for i:=1 to length(str) do
 str[i]:=Chr(Ord(str[i]) xor $AABDEE66);
 
 form1.memo1.lines.text:=str;
...но как-то больше на бред смахивает ...
-Jack- вне форума Ответить с цитированием
Старый 28.10.2012, 00:13   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не хочу пользоваться упаковщиками
Упаковщики и не нужны. Просто прикрути к программе своей некий алгоритм шифровки и дешифровки. Я бы, дабы проще было, использовал LZW сжатие, если бы хотел как-то криптануть ресурсы. Смысл прост - хакеры раскриптуют все равно если оч. захотят, зато мне как программисту проще описать алгоритм упаковки и распаковки, поскольку уже многие ЯВУ его поддерживают в том или ином виде методов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.10.2012, 01:24   #6
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Упаковщики и не нужны. Просто прикрути к программе своей некий алгоритм шифровки и дешифровки. Я бы, дабы проще было, использовал LZW сжатие, если бы хотел как-то криптануть ресурсы. Смысл прост - хакеры раскриптуют все равно если оч. захотят, зато мне как программисту проще описать алгоритм упаковки и распаковки, поскольку уже многие ЯВУ его поддерживают в том или ином виде методов.
Понятно, что раскриптуют, но хотя б не на виду будет всё лежать ...

Можно по подробней о сжатии ресурсов ? Если сжимать те файлы, которые я помещаю в res файл, то что делать с другими ресурсами ?

курсоры, картинки, формы, фреймы, версия ... нашел какие-то картинки, которые я вообще впервые увидел )))

А если сжимать сами *.res файл, как с ним тогда работать ? Как иконку приложению присвоить ?
-Jack- вне форума Ответить с цитированием
Старый 28.10.2012, 10:21   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если сжимать те файлы, которые я помещаю в res файл, то что делать с другими ресурсами ?
Тоже сжимать
Цитата:
Можно по подробней о сжатии ресурсов ?
Подробнее не скажу, но скажу что я бы изучал модуль ZLib для Делфи. Именно он позволяет сжимать контент.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.10.2012, 14:59   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вариант виртуальной файловой системы?
Если файлы мелкие, то вполне удобно. Автор The Enigma Protector реализовал такую программу, есть на оф. сайте совершенно бесплатно. Пользуйся. Туда же, BoxedApp тоже в теме.


Я ещё как-то делал очень интересный финт:
Собирал библиотеку из ресурсов, потом открывал её WinHEX'ом, копировал код как массив байт для pascal.
Затем этот массив записывал в Stream(Уже в готовой программе в run-time), его никуда не сохраняем. И из этого стрима вынимал ресурсы(читал секцию ресурсов).

Ни DLL, ни ресурсов - просто не существует, они есть только в определенный момент, в определенном месте, и то - не долго.
Можно и без TStream вообще, выделить память, и заблокировать её для других, и работать с ней как со Stream, но тут же будет геморойно.
Или же из той же DLL вырезать только секцию ресурсов и хранить её как массив(не сами ресурсы а секцию с ними).


Без знаний ассемблера и опыта реверса тут не обойтись, чтобы понять, откуда берутся ресурсы(со стороны хацкеров).

Последний раз редактировалось Человек_Борща; 28.10.2012 в 15:54.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cmd.exe и занимает почти все ресурсы процессора Gorychev Windows 11 06.12.2013 07:31
програмно вызвать brcc.exe, то не собирает ресурсы! Человек_Борща Общие вопросы Delphi 9 30.05.2011 02:10
Извлечение всех exe-файла из запороленного exe -файла Memfis1992 Общие вопросы Delphi 1 27.10.2010 03:06
Запись в ресурсы собственного exe? Человек_Борща Общие вопросы Delphi 3 02.08.2010 15:19
Ресурсы. Как запихать .bmp в приложение .exe? КСВ Мультимедиа в Delphi 6 24.10.2009 06:25