![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.06.2008
Сообщений: 12
|
![]()
Друзья! Всем доброе время суток!
В общем, из названия темы всё понятно. Теперь комментарии. Предположим, что у нас открыта сmd Набираем в сmd имя некоторого созданного нами исполняемого файла и выполняется такая прорамма: 1) Открывается окно некоторой программы <имя_программы> 2) По некоторому событию управление переходит опять на cmd Вот схематично и всё. Что за событие имеется ввиду? Любое. Для простоты возьмём, пусть управление на cmd передастя, если... допустим, если программа <имя_программы> имеется ввиду Olly Debug, то есть открываем программу из cmd с некоторым файлом и начинаем его трассировать. И пусть управление на cmd передастся по нажатию клавиши F8 (то есть событие такое: нажатие клавиши F8, как следствие переход на один шаг. Вот после этого события пусть управление на cmd передастся.) Это, конечно, сложный вопрос, но вот к какому выводу я пришёл и хотел бы, чтобы Вы меня поправили. Вывод прост: описанные действия можно совершить, только (!) если изменить код Olly Debag. То есть, если в коде где-то написано, что по нажатию F8 происходит то-то и то-то, то мы можем сделать одну из двух вещей: 1) Изменить последствия нажатия клавиши F8 на нужные нам 2) Ничего не изменять, а добавить. То есть выбрать какую-нибудь незадействованную клавишу и повесить на неё функцию клавиши F8 (выполнение команды без захода в эту команду) и плюс передача управление на сmd Хотел был привести другой какой-нибудь пример, допустим, не с Olly Debug, а с тем-же калькулятором, но почему-то посчитал, что с Olly Debug будет попонятнее. (То есть вызов каклькулятора из cmd, выполнение некоторого действия (предположим, нажатие на цифру 5) и возврат на cmd. В этом случае итзменять надо было бы уже код программы- калькулятора.) Так или не так? Так или не так? Ответьте, пожалуйста на этот вопрос. Я в правильном напрвлении мыслю? Больше я ничего не прошу (слишком сложно потому что). P. S. А с того всё началось, что я задумал автоматизировать трассировку... P. P. S. Ну и подпните куда нибудь, буду только рад. "Автоматическое переключение между окнами", набранное в google или яndex, ничего не даёт... Последний раз редактировалось barand; 07.07.2008 в 14:01. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Если напустить ещё чуть-чуть туману, вообще никто не поймёт, что Вы хотите сделать. Не нужно изменять ничей код, для всего этого предназначены хуки. Всё это обсуждалось миллион раз, пользуйтесь поиском по форуму по SetWindowsHookEx. В упор не вижу, где в вопросе ассемблер, посему переносится в "Свободное общение"
|
![]() |
![]() |
![]() |
#3 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.06.2008
Сообщений: 12
|
![]()
Как где ассемблер?
Если изменять код программы, так это нужно смотреть её в отладчике. А тот, в свою очередь, преобразует машинный код в ассемблерный. Вот его и меняешь. Вот Вам и ассемблер. Я посто не знал, что код менять не надо и не знал, что существует понятие хук. |
![]() |
![]() |
![]() |
#4 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
![]()
В упор не виу где здесь общение, посему переносится в "Помощь студентам"
|
![]() |
![]() |
![]() |
#5 |
Пользователь Подтвердите свой е-майл
Регистрация: 21.06.2008
Сообщений: 12
|
![]()
Ну, пусть "помощь студентам", мне всё равно, лишь бы помогли. Только надо именно ассемблер по причине, указанной выше.
Впрочем, мне уже сказали, насчёт хука. Наверное, это исчерпывающая помощь. Буду разбираться. А всё-таки, хоть убей, но я не пойму, почему код программы менять не надо. Нет, вот где изъян в рассуждениях: нам надо, чтобы программа повела себя некоторым образом, отличным от заданного (ну, пусть для простоты возьмём, что бы управление не на другое окно переключилось, а чтобы программа закрылась. Ну, например) ...Да в конце концов, любое изменение выполнения предусмотренного программой кода, предполагает изменение этого кода. С помощью нечто, называемого хуком или без него- это уже второй вопрос. Но мне говорят, что код менять не надо. И не объясняют, почему. Ну, не надо, так не надо, что ещё сказать. Буду сам разбираться. |
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ничего конкретного - посему переношу в Общение.
По поводу темы - код то менять надо, но есть несколько уловок: Ловить сообщения и менять их на другие. Например проге (окну ее) идет сообщение WM_ACTIVE перехватчик меняет ее на WM_CLOSE. Второе это DebugAPI, но я не очень пойму смысл задачи? Пропатчить (взломать, реинженирить) программу? Так это с Олли делать легко и удобно, свою прогу писать не обязательно (разве что для саморазвития)
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
BN смотрит куда же послать мяч, длинная продольная передача, мяч перехватывает Viteef, Удар!!! Штанга! Stilet забирает мяч и сильным ударом переправляет его на сторону противника.
Второй тайм смотрите после выпуска новостей.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#9 | |
Пользователь Подтвердите свой е-майл
Регистрация: 21.06.2008
Сообщений: 12
|
![]() Цитата:
Это тяжело? Ну, хорошо, тяжело. Ну, приведите пример полегче. Неохота? Добре. Верю и понимаю. Но зачем говорить, что непонятно? Что непонятного-то? Я имею виду в постановке задачи. Что неконкретно? Куда конкретнее-то? Или у нас разные программы-калькуляторы? Или у меня не Windows? Так я бы оговорил. Скажите, как ещё конретнее можно поставить вопрос и я замолчу. А мне это нужно для того, чтобы увидев замену кода на одном примере, я мог это и на всё остальное распространить. Последний раз редактировалось barand; 07.07.2008 в 23:45. |
|
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
barand, зря обижаетесь - те "слова", что привёл Stilet - это как раз то, что Вы и хотели сделать изначально. И, судя по всему, не хотите Вы воспользоваться советами. Вот здесь, по счастливому совпадению, именно "модификация" калькулятора с помощью хуков. Есть на форуме и масса более простых примеров.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать так, чтобы форму можно было тостать не только за заголовок? | Никки | Общие вопросы Delphi | 1 | 04.09.2008 14:34 |
Как сделать так чтобы окно формы всегда было поверх остальных окон? | HelloZAPOR | Общие вопросы Delphi | 5 | 23.07.2007 08:05 |
Подскажите, как сделать так, чтобы тест можно было повторно пройти не перезагружая пр | Kamikadze_666 | Помощь студентам | 2 | 23.05.2007 02:48 |
сделать так, чтобы CheckBox и CheckListBox нельзя было отмечать вручную | Washington | Компоненты Delphi | 7 | 24.03.2007 16:59 |
Как запретить переход между диалоговыми окнами. | dnkR | Общие вопросы Delphi | 1 | 18.01.2007 06:59 |