Сейчас на форуме: tyns777, bezumchik, Lohmaty (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Найти обработчик события click для кнопки
. 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 16.6 (новичок), 1thx
Активность: 0.030.16
Статус: Участник

Создано: 15 февраля 2019 10:59
· Личное сообщение · #1

Здравствуйте, ув. Профессионалы!

Описание задачи:
- есть программа, написанная на S#. При запуске программы появляется форма для ввода логина и пароля, и соответственно с кнопками Войти и Отмена. Требуется найти обработчик события click для кнопки Войти (чтобы поставить туда бряк и дальше заниматься исследованием защиты программы)

Что уже было сделано:
1. простой поиск в dnSpy по событию click для всех файлов в том же каталоге ничего не дал

2. пробовал еще сделать так. Запустить программу, после запуска подцепиться к процессу с помощью трейсера dotTrace Performans, чтобы увидеть этот самый обработчик. Но тест результата не дал - dotTrace не умеет подцепляться и к процессу и к связанным с этим процессом библиотекам. Трассировку по связям можно отследить только если трейсер и будет запускать эту программу

Возможно для языка программирования S# нужно искать какие-то др. параметры обработчика события нажатой кнопки. С S# не знаком, программировал только на Visual Basic 6

!!!Прежде всего интересует техника, алгоритм или последовательность действий в нахождении решения по данному вопросу (обработчика события для кнопки)

Файлы с программой:
--> Link <--




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 15 февраля 2019 18:07
· Личное сообщение · #2

rukop84

Я попробовал запустить под варей на xp и 7-ке, что бы посмотреть лог событий. Выдаётся сообщение:

Code:
  1. System.TypeInitializationException: The type initializer for 'Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory' threw an exception.
  2. ...


Почему эта ошибка возникает можно посмотреть, но не нужно, так как в таком скриптовом говне они есть всегда.

Поэтому бери апи монитор и посмотри события вызова апи.

-----
vx




Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 15 февраля 2019 18:15
· Личное сообщение · #3

Последовательность действий
Трудный путь
- создаешь простейшее wpf приложение с одной кнопкой. Вешаешь на кнопку событие click.Компилируешь, открываешь получившееся в dnSpy, находишь в нем свое событие (пусть будет Button_Click) на нем жамкаешь правую кнопку мыши, затем в контескт меню ищешь Analize а в нем Used by и вот там ты увидишь вызов своего button_click. Название метода на событии нажатии кнопки может быть любым, содержимое любым, а вот метод где происходит подписка он всегда один и у него название всегда одно и тоже, и его наличие в классе всегда указывает на то что это форма. Если бы ты проводил исследование winform проекта это был бы метод Initialize, как он называется в wpf - это тебе и предстоит узнать.
Легкий путь
- в запросы на взлом(и ценник установи от 2к$)

| Сообщение посчитали полезным: rukop84

Ранг: 16.6 (новичок), 1thx
Активность: 0.030.16
Статус: Участник

Создано: 15 февраля 2019 19:39
· Личное сообщение · #4

Medsft, спасибо, что направили. Приятно получить совет от Мастера

Добавлено спустя 4 минуты
difexacaw пишет:
бери апи монитор и посмотри события вызова апи

API Monitor - а это идея!!!




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 15 февраля 2019 19:47 · Поправил: difexacaw
· Личное сообщение · #5

Medsft

А клик когда, нажимаешь или отпускаешь кнопку ?

Из огромного множества реализаций, почему такая же кнопка должна использовать тот же наугад выбранный механизм. Это вероятность астрономически мала".

ТС

> Приятно получить совет от Мастера

Тоесть вам приятно что вас послали в комерц за 2k.. это будет наверно не только вам приятно. Когда вы сюда очень быстро вернётесь, не решив задачу.

-----
vx




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 15 февраля 2019 20:27
· Личное сообщение · #6

difexacaw пишет:
А клик когда, нажимаешь или отпускаешь кнопку ?

"Клик" - это когда нажимаешь и отпускаешь кнопку. А "нажатие" и "отпускание" по отдельности - это другие события. В ядре своем ты такого не найдешь...




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 15 февраля 2019 20:58
· Личное сообщение · #7

rmn

Потому что это всегда разные события.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 06:31
· Личное сообщение · #8

О божечки. Правка - искать в сборках - 'OnClick' - 'System.Windows.Controls.Button'. Брякнувшись туда находишь this.name="ButtonLogin", Правка - искать в сборках - 'ButtonLogin' попадаешь в класс Jnr с методом Login(). Ну и по стеку вызовов можешь посмотреть что туда привело, если хочешь. Апимонитор на дотнет это просто конский профессионализм, ага.

-----
2 оттенка серого


| Сообщение посчитали полезным: hlmadip, rukop84

Ранг: 88.2 (постоянный), 58thx
Активность: 0.110.04
Статус: Участник

Создано: 16 февраля 2019 08:33
· Личное сообщение · #9

Все на много проще чем вы думайте
Запускаем под отладной нажимаем на кнопку и сразу жмем паузу входим с тек вызовов и находим нужную фукцию
--> Link <--

| Сообщение посчитали полезным: rukop84


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 13:08
· Личное сообщение · #10

f13nd

> Апимонитор на дотнет это просто конский профессионализм

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

1. Доставка событий из км происходит через один шлюз, туда входит любой тред при любом гуй событии. Далее в работу втягивается весь нэйтив-гуй, происходит многократная индексация из массивов с соотвествующими событию обработчиками. Когда поток покинет слой нэйтива он пойдёт обрабатывать гуй апп, соотвествующие оконные сообщения, те тред покинет общую среду для каждого гуй события/обьекта и пойдёт на обработку в само апп.
На этом этапе можно получить все нужные события. Например поставить останов на событие клика мышем. Но для этого нужно эти механизмы знать.

2. Так как стек вызовов по сути связывает события через процедурные ветвления, то получив какое то событие, которое относится к целевому, можно найти источник вызова. Таким событием может быть некоторая активность апп, те вызов апи. Это самый простой вариант, так как для этого есть множество простых инструментов. Даже не зная нужных событий можно по общему логу апи определить целевое событие и дальше уже с ним поработать.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 13:42 · Поправил: f13nd
· Личное сообщение · #11

difexacaw пишет:
В общем случае само апп не важно, его не нужно разбирать, а поэтому это быстро.

Перечитай еще раз что надо было сделать и для чего. ЧТО даст тебе перехват события клика мыши из нейтива? Там нет прямой связи между обработчиком и событием, где-то в самых ебенях огромной кучи объектов зарегистрирован нужный обработчик, ничего тебе перехват с нейтива не даст.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 13:53
· Личное сообщение · #12

f13nd

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

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 14:00
· Личное сообщение · #13

difexacaw пишет:
Тебе есчо нужно несколько лет ковыряться в отладчике с каждым семплом

Можешь не прикидываться, всем давно понятно, что ты только на ядро нт шкурить можешь.

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

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

f13nd

Я мог найти нужные тс процедуры за минуту, но оно не запустилось.

Перечитай задание:

> Прежде всего интересует техника, алгоритм или последовательность действий в нахождении решения по данному вопросу

Ковырять руками это не техника и не алгоритм, это изврат.

-----
vx




Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 16 февраля 2019 14:08 · Поправил: DrVB_5_6
· Личное сообщение · #15

f13nd мэтр сказал:

difexacaw пишет:
Ты есчо слишком юн, что бы понять общие способы.


Он, правда, слабо представляет, что такое языки высокого уровня и тем более системы программирования и тем более вряд ли когда дойдёт до framework-ов.

difexacaw пишет:
Тебе есчо нужно несколько лет ковыряться в отладчике с каждым семплом, только потом ты поймёшь.


Вряд ли ему будут доступны в ближайшем будущем вещи похожие хотя бы на простейшие вещи типа VB, а уж NET - это вообще круче китайского...

Блин, с отладчиком в NET-e (или типа того) ловить "мышиную" возню...
Комментарии излишни...
Аминь...




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

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

difexacaw пишет:
Я мог найти нужные тс процедуры за минуту, но оно не запустилось.

Мог бы залезть на Эверест на ходулях, но боюсь насморк подцепить.

-----
2 оттенка серого


| Сообщение посчитали полезным: DrVB_5_6


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 14:22 · Поправил: difexacaw
· Личное сообщение · #17

DrVB_5_6

Такие как ты пишут вредоносный софт, вы открываете визуальный яп и кидаете туда контрол, при этом обычная кнопка добавляет +100кб мусора в апп, в котором автор формошлёпства в выхлопе разобраться не способен. Вот и получается что такое дерьмо не может стабильно работать, портит всё, глючит и валится с ошибками. Это ваша парадигма фрейморков. Оно по цепочке накапливается, один нашлёпал, собрал билд, другой это подхватил и заюзал. И так по цепочке. На выходе апп построенное из говна и палок, полный анстаб.

Понятия безопасности на таком уровне пр-я не существует.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 14:36
· Личное сообщение · #18

DrVB_5_6 пишет:
Блин, с отладчиком в NET-e (или типа того) ловить "мышиную" возню...

Там дальше по сценарию была реклама визора, но что-то пошло не так

-----
2 оттенка серого




Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 16 февраля 2019 14:38
· Личное сообщение · #19

difexacaw пишет:
Такие как ты пишут вредоносный софт


Ну и дурак, ты Федя!...

Я вообще только реверсом занимаюсь.
Если и пишу, то на различных скриптах.
Вообще-то интеловские маны достаточно хорошо знаю,
даже тебе, как-то раз нос утирал...
В отличие от тебя, знаю, как устроены фреймворки снаружи и изнутри.
difexacaw пишет:
На выходе апп построенное из говна и палок, полный анстаб.

Ну, конечно, лучше сидеть, как ты, играть в "китайский" биллиард да "умные" советы не в тему давать!...




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 14:46
· Личное сообщение · #20

DrVB_5_6

Это всё мало интересно для меня. Ты не решил задачу тс, решить это не можешь, даже если и захочешь. Получается это обман всё что ты сказал. Ничего нового в этом нет.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 14:52
· Личное сообщение · #21

difexacaw пишет:
Ты не решил задачу тс, решить это не можешь, даже если и захочешь.

А если он скажет, что решил бы за 40 секунд, если бы захотел? Шах и мат!

-----
2 оттенка серого





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 14:55
· Личное сообщение · #22

f13nd

Если бы мог, давно бы сделал. А он как и ты - только говном кидать можете, а по делу ничего.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 14:59
· Личное сообщение · #23

difexacaw пишет:
А он как и ты - только говном кидать можете, а по делу ничего.

Любое "по делу" заканчивается твоим "вам до меня еще лет 10 на ядро нт дрочить", любой в определенный момент поймет, что никакого "по делу" быть не может.

-----
2 оттенка серого




Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 16 февраля 2019 15:00
· Личное сообщение · #24

difexacaw пишет:
А он как и ты - только говном кидать можете, а по делу ничего.

Да вроде в этом топике никто не кидал в тебя. Гальюники лечить надо...
Ты сам перечитай свои советы в этом топике с самого начала...
Люди-то реальные советы дают, не поливают никого, сам же начал-то на f13nd выступать и поливать его.
Так что смотрись в зеркало...




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 15:08 · Поправил: difexacaw
· Личное сообщение · #25

f13nd
DrVB_5_6

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

А для этого варианты решения я описал в #10, просто и понятно, без всяких сложностей, типо визоров, ему это пока знать не нужно.

А вы в двоём лучше изучите интерфейс нэйтив гуя, тогда вы сможете с ним работать и в отладчике, соотвественно дать конкретный совет по проблеме, это штатные вопросы - найти какое то гуй события.

Опишите как это просто сделать в олли например. Это покроет множество тем тут подобных.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 15:15
· Личное сообщение · #26

difexacaw пишет:
Опишите как это просто сделать в олли например. Это покроет множество тем тут подобных.

Опиши как в олли например выйти на обработчик клика в дотнете, возьми что-нибудь, что у тебя запускается. Ты же это фуфло предложил.

-----
2 оттенка серого




Ранг: 58.3 (постоянный), 50thx
Активность: 0.040.08
Статус: Участник

Создано: 16 февраля 2019 15:15 · Поправил: DrVB_5_6
· Личное сообщение · #27

difexacaw пишет:
А вы в двоём лучше изучите интерфейс нэйтив гуя, тогда вы сможете с ним работать и в отладчике,


Ну до тебя, как до жирафа слабо доходит, что умные люди гланды через жопу не рассматривают.
Есть способы попроще.

И вот что удивляет: почему обычно горло лечат терапевты, а не проктологи - только ведь дырки разные



Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 16 февраля 2019 15:19
· Личное сообщение · #28

difexacaw пишет:
те тред покинет общую среду для каждого гуй события/обьекта и пойдёт на обработку...

... в виртуальную машину дотнета. Ее тоже апимониторами трейсить, чтобы найти, куда WM_LBUTTONDOWN доставляется?




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 16 февраля 2019 15:25
· Личное сообщение · #29

f13nd

> Опиши как в олли например выйти на обработчик клика в дотнете

Тебе всю нэйтив цепочку описать от входа потока в юзер шлюз и до прыжка в гуй апп ?

Я могу это сделать, но ты забыл главное - своя работа, те отсутствие инфы даст мотивацию тс. Всё можно узнать даже не открывая отладчик - есть сурки нт, смотри pfndword". Для этого нужно использовать лишь многократный поиск по суркам. Это даст понимание как это всё устроено. А что ты глянул в отладчике строки - никак не поможет ни тебе и не тс.

-----
vx





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 16 февраля 2019 15:27
· Личное сообщение · #30

difexacaw пишет:
Это даст понимание как это всё устроено.

Это пока дает только понимание, что ты дешевое трепло.

-----
2 оттенка серого



. 1 . 2 . 3 . >>
 eXeL@B —› Вопросы новичков —› Найти обработчик события click для кнопки
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати