Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как загрузить форму из памяти, например, из TStream? 3ащита программы.. 
:(
    Опции темы
Dmitry V.Abramov
Дата 26.10.2003, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Monty А вот это уже из другой оперы - из Runtime Form Designing... Сразбегу не готов ничего путного советовать. Но уверен, что все ответы можно найти в ($DELPHI)\Source\Rtl

По поводу отсутствия форм вообще - это сразу натолкнет на мысль о другом методе хрюка - bpx CreateDialogParam и идти на последний адрес в стеке. Вот когда в .exe наличествует (якобы) интересующая форма и кнопке прописан OnClick event и по этому адресу вычисляется нечто жуткое, то гарантировано энное время на осознание того, что это "фальшивка". И есть шанс, что это осознание так и не придет.
--------------------
/DVA
PM MAIL WWW   Вверх
Monty
Дата 26.10.2003, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Dmitry V.Abramov я придумал, а что если убрать все события присвоенные элементам в "доступной формы" wink.gif ...... тогда мне ненадо прятать формы, а событие буду присваивать сам в коде ..........

Я еще знаю что DeDe умеет находит *.PAS модули и дизассамблировать sad.gif .... это я уже не знаю как решить ...... удаление PACKAGEINFO не очень помогает hmmm.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Monty
Дата 27.10.2003, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Прятанье формы БЕСПОЛЕЗНО!
Еще раз почитаю статью про то как работает DeDE http://xtin.km.ru/view.shtml?id=123 ..... и надо что то придумать .... т.к. он находит имена и адрес всех процедур! sad.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
<Spawn>
Дата 27.10.2003, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Monty Не можешь кинуть пожалста етот DEDE, т.к. в ближайшем будущем я думаю начаьб проект, в котором нужно будет делать какую то защиту. Тож не помешало бы поэксперементировать.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Dmitry V.Abramov
Дата 27.10.2003, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Цитата(Monty @ 27.10.2003, 05:06)
Прятанье формы БЕСПОЛЕЗНО!
Еще раз почитаю статью про то как работает DeDE http://xtin.km.ru/view.shtml?id=123 ..... и надо что то придумать .... т.к. он находит имена и адрес всех процедур! sad.gif

Перестал что-либо понимать... Только что обсуждали, что спрятать форму очень даже полезно...

Все имена и адреса он найти либо не может, либо он стал умнее чем IDA. Второе маловероятно. Принципиально не должны находиться имена процедур (не методов!) в секции implementation (не объявленные в interface). А если немного постараться, то и сам код процедур не найдет.

Где хостится этот DeDE? Уже любопытно стало...
--------------------
/DVA
PM MAIL WWW   Вверх
Dmitry V.Abramov
Дата 27.10.2003, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Интереса ради - проверь, сколько процедур он найдет вот в этом:
Код
{$APPTYPE CONSOLE}
program superbred;

procedure print2; forward;

procedure bred;
begin
 writeln('Bred!');
end;

procedure print;
asm
       db      '34$4556789@',0,0C1h
       lea     eax, [print2+(-00343536h)]
       lea     eax, [eax+00343536h]
@@1:
       mov     [esp], eax
end;

procedure print2;
begin
 writeln('DeDE?');
end;

procedure bred2;
var
 Proc: procedure;
 i: PInteger;
 N: integer;
 P: PChar;
 S: string;

begin
 writeln(PInteger(@bred)^);

 SetString(S, PChar(@print), integer(@print2) - integer(@print));
 P := PChar(S);
 writeln(P);

 S[1] := #255;

 writeln(P+21);

 Proc := pointer(PChar(S));
 P := pointer(@@Proc);
 N := integer(P);
 bred;
 if N = 0 then Halt;
 Proc := PPointer(P)^;
 Proc;
end;

begin
 bred2;

end.

Накорябано наспех и неряшливо. Главное что работает и выдает в конце строчку 'DeDE?'. А вот видит ли ДеДЕ процедуру print2 ?
--------------------
/DVA
PM MAIL WWW   Вверх
Monty
  Дата 27.10.2003, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Этим {$APPTYPE CONSOLE} все сказано только оконные smile.gif ....... может я и сам не совсем разобрался, НО убрав OnClick с формы, НО оставив процедуру в Уните и он всеравно нашел! Он ищет события присвоенные элементам и процедуры и т.д. в унитах .......

Вот сам виновник всего происходящего здесь smile.gif
http://m0nty.nm.ru/soft/DeDe%20v3.5/DeDe.3...25.exe.only.rar ....... разберитесь с ним wink.gif .... руки уже опустились sad.gif

Это сообщение отредактировал(а) Monty - 27.10.2003, 11:59


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Monty
Дата 27.10.2003, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Dmitry V.Abramov вот что он нашел

user posted image

Но я сразу скажу что толком им пользоваться не умею smile.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Dmitry V.Abramov
Дата 28.10.2003, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Цитата(Monty @ 27.10.2003, 11:57)
Этим {$APPTYPE CONSOLE} все сказано только оконные smile.gif .......

Что именно этим сказано? Для доказательства нераспознования обычных процедур этого примера предостаточно. И это все, что он должен был сказать... Нужны окна? Убери {$APPTYPE CONSOLE} и замени writeln() на ShowMessage.

Цитата
НО убрав OnClick с формы, НО оставив процедуру в Уните и он всеравно нашел!


Похоже, что у нас проблемы с терминологией... Ты оставил процедуру или метод ? Оставил в юните или в реализации класса? Я тебе об использовании процедур для "скрытности", ты мне об открытости всех методов формы...

Нашел метод-обработчик, оставленный в published секции и обложенный всей возможной RTTI??? Потрясающая наглость с его стороны... smile.gif

Цитата
Он ищет события присвоенные элементам и процедуры и т.д. в унитах .......

Он читает RTTI и добросовестно пользуется тем, о чем ты сам ему подробно рассказываешь, порождая потомков от TPersistent.

Не хочешь никому ничего рассказывать? Не наследуйся от TPersistent и не используй {$M+}
--------------------
/DVA
PM MAIL WWW   Вверх
Dmitry V.Abramov
Дата 28.10.2003, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Цитата(Monty @ 27.10.2003, 12:04)
Dmitry V.Abramov вот что он нашел

Картинка, увы, говорит лишь, что судя по великоватым адресам, ты пользуешься D7.

Скачал DeDE. Добротное изделие. Далеко ушло от CodeRevenger'a с которого начиналось...

От superbred он грохнулся с окошком "Stream Error". У меня D6.

Если убрать
Код
writeln(PInteger(@bred)^);
то загружает. Рассказывает про используемые юниты. Процедуры print2 он НЕ ВИДИТ. И более того - даже зная где она находится, я не смог на нее выйти в его встроенном дизассемблере - сказывается его повышенная интеллектуальность...

Сдается мне, что именно это и предполагалось, рассказывалось и показывалось примером.
--------------------
/DVA
PM MAIL WWW   Вверх
Monty
Дата 28.10.2003, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Dmitry V.Abramov спасибо smile.gif .... теперь буду знать, ну а метод не скрыть? я пробовал как то затирать это все в откомпилированной программе, но она теряла свою работоспособность smile.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.