![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
На это меня натолкнула одна статья по защите программ http://www.delphikingdom.com/mastering/safe/add.htm
О защите: я пытался затирать адреса из готовой программы .... тем самым программа умирала .... и переименовывать тоже нельзя! .... Единственно что я добился, это то что DeDe (Дельфи Декомпилер), не может "разковырять" программу из памяти -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Monty А если сохранить расшифрованый exe где нить в директории винды и оттуда запустить? Конечно это можно обнаружить, но я думаю вряд ли тебе удасться написать загрузчик для твоей задачи.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Да нет, мне всего лишь надо запустить форму из DFM ...... я знаю что так можно
Шифруются _только_ формы и их надо загружать самому (как-то), но уже расшифрованые! Есть ли в природе функция похожия на CreateFormFromStream ? -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Monty DFM - это результат сохранения TForm. TForm - наследник TComponent. TComponent умел сохраняться и восстанавливаться в поток еще в Delphi1.
Примеры есть в самом TForm.pas или в Classes.pas в классах TWriter/TReader. --------------------
/DVA |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov тогда я могу обойтись этими функциями? т.е. этой ReadComponentRes
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Не выходит ..... можно скромный пример?
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Monty Так ведь привел бы свой "не выходимый"... - стало бы понятно, куда у тебя мысли думают. И писать, опять же, меньше бы пришлось...
--------------------
/DVA |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov
Как то так -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Ааа ...... точно! Не правильно!
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Monty Правильно что неправильно
--------------------
/DVA |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov Проблема была в том что у новых версий дельфей новый формат DFM, а для ReadComponentRes() нужен старый
Это сообщение отредактировал(а) Monty - 26.10.2003, 18:13 -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
А такой вопрос
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
||||||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Я опять ошибся
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
||||||
|
|||||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Monty Да. В CreateForm. Там же видно, что конкретно загрузкой из ресурса заведует InternalReadComponentRes. Зашифрованные dfm'ы он не загрузит. А зачем? Пусть грузит обычные, но НЕ ТЕ, что ты будешь использовать в дальнейшем. Ты же, прежде чем начать работу, прибьешь изначально груженные формы и переоткроешь на их месте свои (зашифрованные). На 80% нынешних мега-кул-ксацкепов этого должно хватить.
--------------------
/DVA |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov понятно
Unit2a.dfm это форма с Edit'om ...... если на Form2 нет этого компонента, то программа ругается что "Class TEdit not found" ....... как это можно решить? Так как я хочу в _пустую_ форму загрузить зашифрованую с кучей компонентов Многие кулхацкеры так и ломают, грузят ДеДе смотрят адрес Кнопки REGISTER и меняют джамп Интересно будет увидеть лицо того кто в ДеДе не увидет ни одной формы -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Monty А вот это уже из другой оперы - из Runtime Form Designing... Сразбегу не готов ничего путного советовать. Но уверен, что все ответы можно найти в ($DELPHI)\Source\Rtl
По поводу отсутствия форм вообще - это сразу натолкнет на мысль о другом методе хрюка - bpx CreateDialogParam и идти на последний адрес в стеке. Вот когда в .exe наличествует (якобы) интересующая форма и кнопке прописан OnClick event и по этому адресу вычисляется нечто жуткое, то гарантировано энное время на осознание того, что это "фальшивка". И есть шанс, что это осознание так и не придет. --------------------
/DVA |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov я придумал, а что если убрать все события присвоенные элементам в "доступной формы"
Я еще знаю что DeDe умеет находит *.PAS модули и дизассамблировать -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Прятанье формы БЕСПОЛЕЗНО!
Еще раз почитаю статью про то как работает DeDE http://xtin.km.ru/view.shtml?id=123 ..... и надо что то придумать .... т.к. он находит имена и адрес всех процедур! -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Monty Не можешь кинуть пожалста етот DEDE, т.к. в ближайшем будущем я думаю начаьб проект, в котором нужно будет делать какую то защиту. Тож не помешало бы поэксперементировать.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Перестал что-либо понимать... Только что обсуждали, что спрятать форму очень даже полезно... Все имена и адреса он найти либо не может, либо он стал умнее чем IDA. Второе маловероятно. Принципиально не должны находиться имена процедур (не методов!) в секции implementation (не объявленные в interface). А если немного постараться, то и сам код процедур не найдет. Где хостится этот DeDE? Уже любопытно стало... --------------------
/DVA |
|||
|
||||
| Dmitry V.Abramov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Интереса ради - проверь, сколько процедур он найдет вот в этом:
Накорябано наспех и неряшливо. Главное что работает и выдает в конце строчку 'DeDE?'. А вот видит ли ДеДЕ процедуру print2 ? --------------------
/DVA |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Этим {$APPTYPE CONSOLE} все сказано только оконные
Вот сам виновник всего происходящего здесь http://m0nty.nm.ru/soft/DeDe%20v3.5/DeDe.3...25.exe.only.rar ....... разберитесь с ним Это сообщение отредактировал(а) Monty - 27.10.2003, 11:59 -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov вот что он нашел
![]() Но я сразу скажу что толком им пользоваться не умею -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Dmitry V.Abramov |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Что именно этим сказано? Для доказательства нераспознования обычных процедур этого примера предостаточно. И это все, что он должен был сказать... Нужны окна? Убери {$APPTYPE CONSOLE} и замени writeln() на ShowMessage.
Похоже, что у нас проблемы с терминологией... Ты оставил процедуру или метод ? Оставил в юните или в реализации класса? Я тебе об использовании процедур для "скрытности", ты мне об открытости всех методов формы... Нашел метод-обработчик, оставленный в published секции и обложенный всей возможной RTTI??? Потрясающая наглость с его стороны...
Он читает RTTI и добросовестно пользуется тем, о чем ты сам ему подробно рассказываешь, порождая потомков от TPersistent. Не хочешь никому ничего рассказывать? Не наследуйся от TPersistent и не используй {$M+} --------------------
/DVA |
||||||
|
|||||||
| Dmitry V.Abramov |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 177 Регистрация: 30.9.2003 Где: Saint-Petersburg Репутация: 5 Всего: 4 |
Картинка, увы, говорит лишь, что судя по великоватым адресам, ты пользуешься D7. Скачал DeDE. Добротное изделие. Далеко ушло от CodeRevenger'a с которого начиналось... От superbred он грохнулся с окошком "Stream Error". У меня D6. Если убрать
Сдается мне, что именно это и предполагалось, рассказывалось и показывалось примером. --------------------
/DVA |
||||
|
|||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Dmitry V.Abramov спасибо
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |