Сейчас на форуме: Slinger (+6 невидимых)

 eXeL@B —› Основной форум —› Как убить окно?
Посл.ответ Сообщение

Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 февраля 2007 05:05
· Личное сообщение · #1

Собственно есть прога на delphi. Перед запуском появляется окно с кнопкой ОК. Я хочу избавиться от этого окна, чтобы при запуске прога миновало окно и сразу запускалась главная форма. Насколько я правильно понимаю softice работает непосредственно с памятью. Что мне нужно сделать? Найти адрес, по которому выскакивает окно и пропатчить exe-шник по этому адресу? Или что вообще нужно проделать?
P.S. Патч буду писать скорее всего на delphi.




Ранг: 221.8 (наставник)
Активность: 0.150
Статус: Участник

Создано: 03 февраля 2007 05:09
· Личное сообщение · #2

найти адрес с переходом на месаджбокс и занопить (nop - 90h)его... а вообще в новичках такие темы создовайте...



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 февраля 2007 05:10
· Личное сообщение · #3

Osmosis_Johnes
В софт айсе ставиш бряк на MessageBoxA ловиш это окно, затем выписываеш адресс вызова этого окна на бумажечку, в HIEW загружаеш прогу и ищеш вызов этого мессагебокса, затем все зависит от твоей фантазии, можеш занопить этот участок кода, можеш перед ним написать JMP и т.д. и т.п. была бы фантазия.



Ранг: 36.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 03 февраля 2007 05:16
· Личное сообщение · #4

Можно по-другому и проще



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 февраля 2007 05:17
· Личное сообщение · #5

atoll
Например?




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 03 февраля 2007 05:34
· Личное сообщение · #6

Sign of Misery и ничего патчить не нада.. как раз для тебя

-----
Researcher





Ранг: 264.0 (наставник), 5thx
Активность: 0.210
Статус: Участник
Vanilla Sky

Создано: 03 февраля 2007 05:37
· Личное сообщение · #7

Используйте силу - т.е. "Убирает баннер в BuddyPhone 2 by PIRO"



Ранг: 36.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 03 февраля 2007 05:57
· Личное сообщение · #8

Red_bit Например-обработчик сообщений



Ранг: -4.4 (нарушитель)
Активность: 0.020
Статус: Участник

Создано: 03 февраля 2007 06:25
· Личное сообщение · #9

Osmosis_Johnes пишет:
Как убить окно?


Ассоциация ведущих собаководов рекомендует молоток. Любое окно убивается с первой попытки!



Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 03 февраля 2007 10:27
· Личное сообщение · #10

Grim Fandango пишет:
Используйте силу - т.е. "Убирает баннер в BuddyPhone 2 by PIRO"

Ну ты дал же пример как убрать окно в проге =) После этого Osmosis_Johnes поубивает все окна во всех прогах =) и себя за одно =)




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 03 февраля 2007 10:38
· Личное сообщение · #11

Дык че не выложишь прогу.. наг скрин мешает? выложи - посмотрим.. убьем чыво нада

-----
Researcher




Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2007 05:24
· Личное сообщение · #12

overwriter пишет:
Дык че не выложишь прогу.. наг скрин мешает? выложи - посмотрим.. убьем чыво нада


У меня таких программ не мало с одним и тем же окном. Хочу сам написать патч, который во всех этих прогах "убил" бы раз и навсегда заветное окно.
А Red_bit-у спасибо за теорию.




Ранг: 264.0 (наставник), 5thx
Активность: 0.210
Статус: Участник
Vanilla Sky

Создано: 04 февраля 2007 05:28
· Личное сообщение · #13

Ну тогда придётся тебе искать последовательность байт одинаковую.... хотя, может быть окошко во всех прогах по одному и тому же адресу расположено. Ты хоть название скажи продуктов. =)



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2007 15:29
· Личное сообщение · #14

Grim Fandango пишет:
Ну тогда придётся тебе искать последовательность байт одинаковую.... хотя, может быть окошко во всех прогах по одному и тому же адресу расположено.


Вот я тоже надеюсь, что это окно будет по одному и тому же адресу в разных exe-шниках...будем пробовать...



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 февраля 2007 04:58
· Личное сообщение · #15

MessageBoxA - не помогает. У меня не окно типа MessageBox, а небольшая формочка с кнопкой ОК, по нажатию на которую окно исчезает и появляется другое окно. Мне необходимо поставить бряк на первое окно с кнопкой ОК и в последствии избавиться от него. Какое имя брекпоинта на обычное окно-форму (написана на delphi)???



Ранг: 36.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 06 февраля 2007 05:04
· Личное сообщение · #16

Osmosis_Johnes Уже выкладывать нужно что бы посмотреть.



Ранг: 214.1 (наставник)
Активность: 0.130
Статус: Участник

Создано: 06 февраля 2007 05:20
· Личное сообщение · #17

Osmosis_Johnes ShowWindow пробуй or CreateWindow



Ранг: -6.8 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 06 февраля 2007 10:14
· Личное сообщение · #18

Osmosis_Johnes конечно, это не тот способ к которому ты стремился,
Но не придётся даже ничего NOP ить

Не крутой способ, но работает частенько.

Открываешь программу в Resource Hacker'е
Ищешь окошко со своей кнопкой "Ок"
Вот пример:

object btnOK: TBitBtn <-(Наша кнопка)
Left = 13
Top = 244
Width = 98
Height = 24
Caption = 'Ок'
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 5
OnClick = btnOKClick <-(Действие которое происходит по нажатию кнопки "Ок")
Kind = bkOK
end

Подписываешь в конец всего на данной форме вот это таймер

object TmОк: TTimer
Enabled = True
Interval = 1
Left = 10
Top = 10
OnTimer = btnOKClick <-(Действие которое происходит по нажатию кнопки "Ок")
end

И получится что окно открывается и по истечению данного интервала Interval = 1 будет происходить то же самое если бы ты сам нажал кнопку



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 февраля 2007 09:52
· Личное сообщение · #19

Да, это конечно способ хороший, но resource hacker вообще не показал мне свойства именно этого окна.
Softice-ом я поймал на showwindow это окно: 004589DE CALL USER32! ShowWindow
Теперь подскажите пожалуйста что с помощью HIEW прописать в exe-шнике по этому адресу? и в каком лучше виде редактировать (т.е. битовый? word? dword?)




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 10 февраля 2007 01:17 · Поправил: Gambit
· Личное сообщение · #20

Над call есть 4 команды push - занопь их, а потом и сам call занопь.
Osmosis_Johnes пишет:
и в каком лучше виде редактировать

А в каком тебе удобней Практика, практика и еще раз практика (нет... сначала: теория, теория и еще раз теория...)

-----
программистом не рождаются - им умирают




Ранг: -6.8 (нарушитель)
Активность: 0.010
Статус: Участник

Создано: 10 февраля 2007 23:21
· Личное сообщение · #21

Выложи уже... советовать будет прощще



Ранг: 54.0 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 11 февраля 2007 06:40 · Поправил: n1kto
· Личное сообщение · #22

Osmosis_Johnes пишет:
Softice-ом я поймал на showwindow это окно: 004589DE CALL USER32! ShowWindow

если прога на дельфи, это тебе практически ничего не даст. тебе надо отловив showwindow подняться вверх по стеку до кода который обращается к объекту формы (наследнику TForm); получить адрес конкретной формы (где лежит указатель на нее) а затем отловить TForm.create (скорее всего первая запись по этому адресу) и плясать уже отсюда. далее ищутся обращения к этой форме и они уже нопятся. идея, думаю, ясна.


 eXeL@B —› Основной форум —› Как убить окно?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати