|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Назначение прав для функций
Думаю, краткого описания будет достаточно.
Итак, есть готовое (рабочее) приложение с исходниками. Все основные задачи описаны в методах одного класса. Вопрос, как мне можно не переделывая каждый метод назначить права? Например есть методы: Код:
procedure method1 begin код end; procedure method2 begin код end; procedure method3 begin код end; А мне надо, не внося изменения в тело каждого метода перехватывать их вызов. То есть в идеале описать класс вида Код:
TMyClass = class private ......... public Property BeforeMethod1_Execute.... Property BeforeMethod2_Execute..... Property BeforeMethod3_Execute.... end; procedure BeforeMethod1_ex begin if condition then перейти к выполнению метода1 основного класса; end; procedure BeforeMethod2_ex begin if condition then перейти к выполнению метода2 основного класса; end; procedure BeforeMethod3_ex begin if condition then перейти к выполнению метода3 основного класса; end; |
#2
|
||||
|
||||
Создать наследник и переопределить все нужные методы, в каждом вызывать соответственно оригинальный метод?
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Цитата:
|
#4
|
||||
|
||||
Код написан и скомпилирован тобой?
Если нет, то в общем случае - нельзя. Код:
; FASM-syntax ; Пример чуток обфусцированного кода: mov eax, 10000h add eax, 23456h call eax org 0x33456 proc1: ... Если такая ситуация - могу дать несколько частных случаев, покрывающих 98% вызовов, но это будет долго и муторно. Если же код написан тобой или просто имеются исходники - не вижу проблемы в том, чтобы сделать Ctrl+H всех вызовов, предварительно сняв бекапы. Короче - опиши более детально, что и зачем надо перехватить. jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
Какая разница кем написан код? У меня есть исходник...
Надо каким то образом перехватывать выполнение функций с возможностью его (выполнение) отменить или продолжить при необходимости. Не обязательно методы класса. Могут быть обычные функции и процедуры описанные в юните. |
#6
|
||||
|
||||
Тогда Ctrl+H, как я сказал.
jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
Цитата:
|
#8
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
||||
|
||||
Цитата:
|
#10
|
||||
|
||||
Цитата:
Да, это та самая замена. Можно использовать регулярки, если без них никак. jmp $ ; Happy End! The Cake Is A Lie. |