Сейчас на форуме: _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как можно поменять вывод окон |
Посл.ответ | Сообщение |
|
Создано: 05 ноября 2010 11:09 · Поправил: anvarfromkz · Личное сообщение · #1 Всем привет. Сделал тестовую программу на Delphi 7. Загрузил в Olly Форма состоит из 2-х кнопок. Button1 , Button2. Сделал при кликанье открывает дополнительное окно Form2.show и Form3.show соответсвенно кнопкам. Code:
поменял значение Code:
во второй процедуре Т.е. получается на 2 кнопки навесил показываение одной формы Form2.show Code:
Как узнать значение вот этого параметра 450058 ? например если у меня есть окно-форма About. Можно было бы просто найти строковые Form3 и заменить на Form2 но такого не нашел Dede использоваль такой же код как и в Olly. ![]() |
|
Создано: 05 ноября 2010 11:29 · Личное сообщение · #2 |
|
Создано: 05 ноября 2010 14:07 · Поправил: Guru_eXe · Личное сообщение · #3 Archer пишет: Формы со всеми своими элементами хранятся во внутренних замороченных структурах, смена 1 строки на другую ничего не даст он вроде и не об этом, в любом случае, если имея две кнопки с событиями Form2.show на одной кнопке и Form3.show на другой, а потом поменять аргументы в олли, то всё будет работать, другое дело, что учитывая формат записи: Code:
делаем вывод, что это обычное статическое значение, которое не вычисляется, а хранится в явном виде. Аргумент, в данном случае, 450058, используется в проекте, в данном примере, два раза — непосредственно в событии онклик и криеитформ, при инициализации проекта. Code:
распарсив этот кусок, можно получит и аргументы. Собственно, все это действо начинает работать прямо с ЕП: Code:
На примере: Code:
4500D8 — необходимый аргумент 44FFC4 — не знаю что 44E034 — тут вся информация по форме Лучше, наверное, спросить у GPcH как оно все работает, но, наверное, DeDe начинает копать так, как я описал, то есть смотрит "инициализацию" из которой уже можно получить любую информацию. Найти ОнКлик, с вызовом формы — очень легко, смотрим на CreateForm(TForm1, Form1) в олли и берем последний аргумент — 44E374, Контрл+Г и переходим на адрес 44E374, далее крутим вниз пропуская кучу "конструкций" и видим: Code:
А по адресу 0044E52C, знакомый код: Code:
----- may all your PUSHes be POPed! ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как можно поменять вывод окон |