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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2011, 21:12   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Необходимо зашифровать кусок кода программы в котором создается проверочный ключ, логику создания которого должен знать только клиент и сервер, это необходимо потому что при отправке данных отправляется также и HWID компьютера, на котором установлена клиентская часть, и крайне необходимо чтобы этот HWID нельзя было подменить.
В интернете нашел вот такой пример: http://delphiworld.narod.ru/base/encode_exe_funcs.html
Судя по тому что там написано он должен работать, но при нажатии на кнопку зашифровки вылезает ошибка и программа после этого больше не функционирует(при нажатии на любую кнопку и попытки совершения любого действия вылезает та же ошибка), как я понял в этом примере допущена какая-то ошибка, помогите пожалуйста разобраться где эта ошибка и как ее исправить.
Заранее спасибо.

VirtualProtect(@TForm1.Button1Click , 4096, PAGE_READWRITE, @dwOldProtect)
Эта строчка вызывает ошибку нарушения доступа, что странно т.к. из описания функции VirtualProtect ясно что она какраз и выдает права на чтение/запись если 3ий параметр PAGE_READWRITE...( http://www.podgoretsky.com/ftp/Docs/...alProtect.html )

Последний раз редактировалось Stilet; 06.05.2011 в 07:36.
Crystallon вне форума Ответить с цитированием
Старый 06.05.2011, 00:49   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Неэффективно, отламывается в 2 счёта, достаточно поставить бряк на запись в секцию кода.

Попытка выполнить код, находящийся в странице, помеченной как PAGE_READWRITE вызовет исключение (при активном DEP), должно быть PAGE_EXECUTE_READWRITE. Кроме того, если вышеописанным способом зашифровать участок кода и пересобрать программу, то всё равно могут быть ошибки (оптимизация, искажение адресов...)
пыщь
JTG вне форума Ответить с цитированием
Старый 06.05.2011, 04:36   #3
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Неэффективно, отламывается в 2 счёта, достаточно поставить бряк на запись в секцию кода.

Попытка выполнить код, находящийся в странице, помеченной как PAGE_READWRITE вызовет исключение (при активном DEP), должно быть PAGE_EXECUTE_READWRITE. Кроме того, если вышеописанным способом зашифровать участок кода и пересобрать программу, то всё равно могут быть ошибки (оптимизация, искажение адресов...)
А не могли бы вы подсказать эффективный вариант(если есть желание помочь могу заплатить за работу http://www.programmersforum.ru/showthread.php?t=150228 )? Ну а по поводу пересборки это я в курсе, в конечном варианте я собирался шифроваться код отдельной программой в уже скомпиленном exeшнике.
Crystallon вне форума Ответить с цитированием
Старый 06.05.2011, 07:39   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
шифроваться код отдельной программой в уже скомпиленном exeшнике.
Логично. Купи один из лучших протекторов, и упакуй свою программу им.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2011, 08:51   #5
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Логично. Купи один из лучших протекторов, и упакуй свою программу им.
Еслиб все было так просто =( на вирустотале моя прога имеет 0%, т.е. ни один антивирь к ней не придирается, а после упаковки любым из всемизвестных протекторов "рейтинг" поднимется как минимум до 25%... Например после запаковки темидой при минимальных настройках защиты "рейтинг" как раз 25%(11 антивирей включая такой популярный шлак как нод 32 и панда), а при стандартных настройках защиты и вовсе около 35%(16 антивирей включая касперский, а этот шлак как известно у нас популярен несмотря на то что сам страшнее любого вируса)... И что больше всего паражает - у большинства антивирусников "вид вируса" так и определяется: Themida.Packed...тоесть если человек хочет защитить свой труд от крякеров или хакеров(как в моем случае) это не нормально...
Вывод из всего вышесказанного: мне нужна "невидимая" защита которая будет протектить всеголишь небольшую часть программы(код где на сервер передается HWID), думаю в этом случае уж ни один антивирь даже самый долбанутый не докапается...
Crystallon вне форума Ответить с цитированием
Старый 06.05.2011, 09:47   #6
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Страницы стека уже имеют PAGE_EXECUTE_READWRITE.
Остается в ран-тайм проделать все свои хитромудрые манипуляции прямо в стеке.
От взлома это, конечно, не спасет, но вполне ощутимо уложнит жизнь потенциальному взломщику.
mss вне форума Ответить с цитированием
Старый 06.05.2011, 11:29   #7
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Страницы стека уже имеют PAGE_EXECUTE_READWRITE.
Остается в ран-тайм проделать все свои хитромудрые манипуляции прямо в стеке.
От взлома это, конечно, не спасет, но вполне ощутимо уложнит жизнь потенциальному взломщику.
Если там разрешена запись и выполнение почему тогда при попытке записи шифрованного варианта вылезает ошибка нарушения доступа?
Crystallon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита кода (шифрование) tae1980 Microsoft Office Excel 2 15.04.2011 09:57
Разбор куска кода. Alexcomeback Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 05.04.2011 18:14
Шифрование кода программы Kolik317 Общие вопросы Delphi 11 01.09.2010 09:24
Ввод куска кода с клавиатуры в процессе выполнения программы (язык Си) Florent Помощь студентам 4 05.02.2010 22:34
Прошу помощи в разборе куска кода драйвера RIL под ARM Lebets_VI Win Api 0 14.08.2009 13:58