Защита от редактирования ресурсов и форм и вообще EXE

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Защита от редактирования ресурсов и форм и вообще EXE

Сообщение Pantalone » 03.02.2006 (Пт) 0:00

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

Я пока думаю сделать нечто следующее:
Все или наиболее важные функции и процедуры вызывать не обычными способами, а через CallByName. Причем име вызываемой функции зашифровать ключем, который содержит CRC файла. При попытке поменять хоть иконку хоть что угодно, название функции будет расшифровано с неверным ключем и прога просто вылетит. Таким образом никто ничего в проге не поменяет.
Что думаете?

Или может с упаковщиками связаться, с ними действительно совсем все плохо как говорят? Т.е. можно из них достать оригинальный exe?

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 03.02.2006 (Пт) 0:57

const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Alex123
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 16.11.2005 (Ср) 7:14

Сообщение Alex123 » 03.02.2006 (Пт) 4:24

От редактирования exe поможет контрольная сумма. Открой свою программу как базу данных целых чисел, подсчитай сумму и потом сравни с контрольной. Тоже самое с любым другим файлом, который запрещено редактировать.
Можно еще зацепиться за дату последнего изменения файла. Если кто-то будет редактировать то она измениться.

Wild VB Code for Food
Постоялец
Постоялец
 
Сообщения: 387
Зарегистрирован: 16.06.2005 (Чт) 17:34
Откуда: ты, друг? =)) Сообщений: 1234

Сообщение Wild VB Code for Food » 03.02.2006 (Пт) 6:57

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

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 03.02.2006 (Пт) 11:49

Дата последнего изменения берется из системы.
Меняем время, а потом изменяем экзешник.
Это не прокатит.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 17:24

Как проверять CRC есть соображения?
Можно в сам ЕХЕ уже после компиляции зашить первоначальное значение и сверять с ним. Но как сверять, любой IF обходится проще простого.
Далее, если шифровать имены вызываемых функций ключем в виде CRC, то как узнать CRC до компиляции, иначе зашифровать функции не получится.

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 03.02.2006 (Пт) 17:36

>Можно в сам ЕХЕ уже после компиляции зашить первоначальное значение и сверять с ним.

Если зашивается значение после компиляции, то что мешает изменить эзешник и зашить новую сумму CRC.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 17:46

Уже понял, мало того если зашить в EXE что-то, то его CRC поменяется и смысла там же хранить это CRC нету.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 03.02.2006 (Пт) 18:01

Можно хранить crc ресурсов :wink:
Лучший способ понять что-то самому — объяснить это другому.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.02.2006 (Пт) 18:23

Pantalone писал(а):Уже понял, мало того если зашить в EXE что-то, то его CRC поменяется и смысла там же хранить это CRC нету.

Не учитывай байт, который VarPtr(CRC)
Изображение

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 20:03

keks-n писал(а):
Pantalone писал(а):Уже понял, мало того если зашить в EXE что-то, то его CRC поменяется и смысла там же хранить это CRC нету.

Не учитывай байт, который VarPtr(CRC)

Не понял, расшифруй плиз для бестолковых :)

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 03.02.2006 (Пт) 21:23

Понял, тормоз :)

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 03.02.2006 (Пт) 21:27

Pantalone писал(а):Понял, тормоз :)

Наконец то ты это понял!!!
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Alex123
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 16.11.2005 (Ср) 7:14

Сообщение Alex123 » 04.02.2006 (Сб) 7:51

Не надо ничего никуда зашивать. Приделай малюпусинький файл к программе, где на каждый защищенный файл хранится контрольная сумма в виде Long или Double. Сама контрольная сумма может быть результатом любых вычислений y=F(x), x-наш байт, у-число для суммирования. Сделай себе соответствующую Function KSum(FileName) для вычисления контрольной суммы и используй в своих программах. Ну и сам генератор файла контрольных сумм. Ау, отзовитесь, кто сможет взломать эту защиту, зная, где надо ломать, вышлю пробник. А что говорить о тех, кто способа защиты не знает.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.02.2006 (Сб) 9:56

Ты даваай свою защиту, а кому интересно то посмотрит:)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 04.02.2006 (Сб) 17:54

Alex123
Кто мешает проследить твой алгоритм вычислений, отмотать его назад, подставить новую контрольную сумму и положить в файлик новое значение для ее вычисления? А твоя прога будет по прежнему считать этой функцией контрольную сумму (которую подложили уже с учетом новой суммы файла) и сверять ее с измененной суммой файла.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 04.02.2006 (Сб) 23:50

Состряпал защиту файла на основе CRC32, любое изменение в экзешнике будет засечено и программа скажет об этом по нажатию на кнопку. Если все в порядке, то по нажатию на кнопку форма зальется синим градиентом. Попробуйте, кто силен в этом, изменить название кнопки, label или еще чего, в общем обойти проверку. Обычно все это видно в блокноте невооруженным взглядом и меняется любым HEX редактором. Рабочий файл сопровождает контрольный текстовый файл. Может слегка подтормаживать на слабых машинах.
Вложения
CrackMe.rar
(30.63 Кб) Скачиваний: 92

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.02.2006 (Вс) 12:44

Перестарался. Она кричит, что ее кракнули, даже тогда, когда никто ее не трогал...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 05.02.2006 (Вс) 17:12

Не положил CrackMe.txt в папку с программой?
Моду создают модоки, а распространяют модозвоны.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.02.2006 (Вс) 18:11

Распоковал архив в огтдельную папку. Там два файла(exe и txt). Запустил exe, нажал на кнопку. Секунда раздумий... Сообщение "Crack detected".
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 05.02.2006 (Вс) 19:04

ANDLL
Что у тебя за система, если не секрет? Антивирус стоит, а то мож у тебя вирус, "а мужики-то не знают" :) Попробуй еще раз, прога никуда кроме сопровождающего файла и себя не лезет, если они не изменены кем-то или чем-то, то все должно работать. Может с правами у тебя по хитрому настроено?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.02.2006 (Вс) 19:22

Может и вирус. Завтра или послезавтра проверю на другом компе.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 05.02.2006 (Вс) 19:33

ANDLL
Спасибо.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 05.02.2006 (Вс) 23:09

13 человек скачало, неужели сказать нечего? Ну тогда можносделать два вывода, у все остальных запустилась и никто не сломал :)

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 06.02.2006 (Пн) 0:08

А нафиг ты текстовый файл таскаешь с собой?
Без него нельзя сделать прогу?
А алгоритм побайтного сравнения сам придумывал? Почему сравнивал строки? Это ведь так медленно... Ладно, может на днях гляну Блоуфиш твой (я ведь не ошибся?)...

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 06.02.2006 (Пн) 0:53

AjaxVS
Прогу без файла сделать можно, но вот защиту без него я сделать не смог. Да это и не важно.
Не понял про побайтное сравнение. Насчет медленно, согласен, не стал пока оптимизировать, может грош цена этой защите. Пока навешивал весь запарился, очень геморно получилось, хотя алгорим весьма простой. Про блоуфиш, ты прав.
Последний раз редактировалось Pantalone 06.02.2006 (Пн) 1:15, всего редактировалось 1 раз.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 06.02.2006 (Пн) 0:57

AjaxVS писал(а):гляну Блоуфиш твой (я ведь не ошибся?)...

Кстати, знание этого сильно облегчает задачу?

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 06.02.2006 (Пн) 3:10

Лично мне - нет...
Я просто глянул чуть чуть на прогу твою (изнутри, так сказать +_+) - показалось что Блоуфиш...
А еще мне показалось, что твоя супер-секретная функция прорисовки, которую ты кодируешь перед CallByName называется...
wertqwerkut.
Верно? +_+

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 06.02.2006 (Пн) 4:39

Так показалось или это она? :)
Вообще-то она самая wertqwerkut, легко обнаруживается? Стоит ли добавлять тучу других мусорных функций чтоб не сразу находили или ничего не даст? Насколько я понимаю, то что ты ее нашел тебе еще ничего не дает, верно?
Если не будешь дальше файл глядеть и пытаться его покоцать, может советы какие дашь?

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 06.02.2006 (Пн) 4:55

Обнаруживается очень легко.
Повторяю - смотрел совсем чуть-чуть, минуты 2-3...
Защита не самая легкая (заменой 1 байта не ломанешь +_+), но, думаю, если за дело возмется человек, который регулярно что-то ломает (а не так как я - раз в пол-года +_+), то взломает очень быстро... Может быть +_+
Короче, зовите Флекса, я че-то туплю пока =(

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 61

    TopList