eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Программирование —› Получить handle контрола в HTML/FLASH.
Посл.ответ Сообщение


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 21 апреля 2015 20:20 New!
Цитата · Личное сообщение · #1

Долго думал, как обозвать эту тему. Вообщем возникла необходимость управления HTML/FLASH common-контролами: edit/buttons, etc (контролы во FLASH имеют особую значимость). Мне представляется это возможным после получения их хендлов и посылки сообщений им напрямую (могу ошибаться). Подскажите, возможно ли получить их handle? Если да, то как? Или хотя бы пните, куда копать ?

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



Ранг: 296.9 (наставник)
Статус: Участник

Создано: 21 апреля 2015 22:19 New!
Цитата · Личное сообщение · #2

Виндовый Хэндл html-элемента не получить... там весь контейнер документа одно окно, и не имеет дочерних... как-то так... Но манипулировать html-элементами через COM-интерфейсы можно, для это лучше посмотреть в --> эту сторону <--

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



Статус: Пришелец

Создано: 21 апреля 2015 22:33 · Поправил: F_a_u_s_t New!
Цитата #3

Смотри в сторону игровых ботов, есть 100500 вариантов управлять флешем, от хаков с инжектами до скриптовых биндов.


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 21 апреля 2015 23:02 · Поправил: Rainbow New!
Цитата · Личное сообщение · #4

F_a_u_s_t пишет:
Смотри в сторону игровых ботов, есть 100500 вариантов управлять флешем, от хаков с инжектами до скриптовых биндов.


Так-то, может оно и так.. Только вот прежде чем докопаться до этих 100500 вариантов надо 100500 малвари безрезультатно отреверсить (ну видимо так уж повелось у ботоводов - малварь вкручивать, а то и вместо демки совать), после чего купить вместо демо-версии непонятно чего с непонятно чем фуловую (триальную, с подвязом к серверу), с навешенным VMProtom (тоже видимо традиция). Этот вариант мне приходил в голову, но если и будет рассмотрен, то в последнюю очередь. Альтернативы ?


Статус: Пришелец

Создано: 21 апреля 2015 23:10 · Поправил: F_a_u_s_t New!
Цитата #5

Rainbow пишет: Так-то, может оно и так.. Только вот прежде чем докопаться до этих 100500 вариантов надо 100500 малвари безрезультатно
habrahabr
stackoverflow
Бинды аналогично на github.com или в качестве альтернативы selenium, для него есть флеш драйвер.
flash-selenium к selenium есть другой драйвер.

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



Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 21 апреля 2015 23:38 · Поправил: Rainbow New!
Цитата · Личное сообщение · #6

F_a_u_s_t пишет:
habrahabr
stackoverflow
Бинды аналогично на github.com или в качестве альтернативы selenium, для него есть флеш драйвер.
flash-selenium к selenium есть другой драйвер.


Ну хорошо, попробую покопать сторону манов по декомпилю флеша. Советы, личный опыт приветствуются, т.к., думаю, что значительно улучшат усваяемость. Вариант с Input'om - api mouse_event + keyboard_event - возможен. Однако, считаю такие подходы достойными ламеров-инвалидов, которые от незнания базовых принципов внутренней работы системы тупо поверхностно стремятся автоматизировать алгоритм юзер-действий.


Статус: Пришелец

Создано: 22 апреля 2015 00:40 · Поправил: F_a_u_s_t New!
Цитата #7

Rainbow пишет:Однако, считаю такие подходы достойными ламеров-инвалидов, которые от незнания базовых принципов внутренней работы системы тупо поверхностно стремятся автоматизировать алгоритм юзер-действий.

О кликерах речи нет, варианты только с легитимным api, например с тем же ExternalInterface
Пример:
Code:
  1. ExternalInterface.addCallback("getColor", getColor);
  2. ...
  3. public function getColor():String 
  4. {
  5.       return COLORS[currentColorIndex % 3];
  6. }


Особо других вариантов нет, в flash engine идет байткод, можно конечно вклинится в работу, только потом придется самому парсить байткод, обрабатывать сообщения... возможно, но оно того не стоит, одно дело ioncube, там иначе никак, а здесь уже готовый интерфейс от разработчиков.
Ну или вариант по проще, sikuli для быстрого написания кликера.
Из всех известных мне вариантов самый удобный это selenium, позволяется обрабатывать сложные события, множество примеров и готовых скриптов, множество роликов, самопал с инжектами годен только для малвари.
Вспомнил, на хабре была статья sikuli


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 26 апреля 2015 11:45 New!
Цитата · Личное сообщение · #8

F_a_u_s_t пишет:
варианты только с легитимным api, например с тем же ExternalInterface


Я так понял ExternalInterface - это единственный тру вариант. Как выяснилось, ExternalInterface запитан во флеше с 9й версии через ActiveX. Кодинг этого ActiveX вроде как ориентирован под ASP/JS/PHP. Однако мну такой расклад не совсем устраивает. ActiveX и на сях и на любом другом языке легко кодится. Собсно порылся исчо. Накопал сишные хидеры (возможно неполные) этих интерфейсов. Но доков по интерфейсам че-то не нашел. Есть у кого маны/доки по ActiveX интерфейсам флешевским ? Хидер с интересующими интерфейсами цепляю в аттач.



{ Атач доступен только для участников форума } - axflash.rar

Ранг: 239.5 (наставник)
Статус: Участник

Создано: 26 апреля 2015 12:31 New!
Цитата · Личное сообщение · #9

Возможно будет полезно
https://metacpan.org/release/Wx-ActiveX

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



Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 26 апреля 2015 12:57 New!
Цитата · Личное сообщение · #10

TryAga1n пишет:
Возможно будет полезно
https://metacpan.org/release/Wx-ActiveX


Опять же, Perl...


Статус: Пришелец

Создано: 26 апреля 2015 19:34 New!
Цитата #11

Rainbow пишет: ActiveX и на сях и на любом другом языке легко кодится

Не легко, слишком много ненужных телодвижений.
Помимо flash'a нужно учитывать подгружаемые js, html, в итоге придется еще биндить браузерный движок или же самому велосипедить.
Для плюсов есть врапперы, в гугле c++ flash player wrapper или c++ flash player binding.


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 26 апреля 2015 19:38 New!
Цитата · Личное сообщение · #12

F_a_u_s_t пишет:
Не легко, слишком много ненужных телодвижений.
Помимо flash'a нужно учитывать подгружаемые js, html, в итоге придется еще биндить браузерный движок или же самому велосипедить.
Для плюсов есть врапперы, в гугле c++ flash player wrapper или c++ flash player binding.


А чего сложного дернуть пару методов ком интерфеса-то ? CoCreateInstance никто не отменял. Просто доки нужны по интерфейсам и все. Не вижу никакой сложности.

Добавлено спустя 9 минут
Речи о плюсах не идет совсем ))) я это легко на асме навострячу.

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 26 апреля 2015 21:08 New!
Цитата · Личное сообщение · #13

Rainbow пишет:
Добавлено спустя 9 минут
Речи о плюсах не идет совсем ))) я это легко на асме навострячу.

я о томже.. както пару лет назад засматривался на эту тему вплане делфи.. бота хотелось.. но забил.. СоИнтерфейс причем к браузеру? то что нет описателей под язык.. да.. это некоторый гимор.. но дальше в чем проблема?


Статус: Пришелец

Создано: 26 апреля 2015 21:31 · Поправил: F_a_u_s_t New!
Цитата #14

Rainbow пишет: А чего сложного дернуть пару методов ком интерфеса-то ?

Запусти на более менее вменяемой игры flash bug, flash это не только flash, еще json, xml, html, в самом flash'e далеко не полтора метода.
Хз, может подойдет под задачу --> Link <--, а так юзают дебаг версию.
Из пушки по воробьям - использовать бинд WebKit'a под любым вменяемым языком, asm к таковым не относится.


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 26 апреля 2015 23:36 · Поправил: Rainbow New!
Цитата · Личное сообщение · #15

F_a_u_s_t пишет:
flash это не только flash, еще json, xml, html

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

F_a_u_s_t пишет:
Хз, может подойдет под задачу --> Link <--, а так юзают дебаг версию.


What is F-IN-BOX?

F-IN-BOX is a window control to enhance Macromedia / Adobe Flash Player ActiveX features. It does not use its own engine to display movies but provide a wrapper around official swflash.ocx/flash.ocx code instead. Thus it is possible to avoid certain Macromedia / Adobe Flash Player ActiveX limitations.

Как я понял:
F-IN-BOX - это оконный контрол, расширяющий возможности Macromedia / Adobe Flash Player ActiveX. Он не использует его движок для воспроизведения роликов. Вместо оффициального кода swflash.ocx/flash.ocx, предоставляет свой оберточный(обработочный, иными словами - парсер swf, /* мои коменты */) код. Таким способом он позволяет обходить ограничения, накладываемые Macromedia / Adobe Flash Player ActiveX.


Ну не знаю... Например, что лучше использовать, для записи в реестр: функции из Advapi32.dll или из коммерческой библиотеки фирмы MYCOMP Corp. ? ))) Ну я бы выбрал первое, т.к. я думаю очевидно, что разработчик стандарта лучше знает свой код и свои косяки, чем MYCOMP Corp.

F_a_u_s_t пишет:
под любым вменяемым языком, asm к таковым не относится


Еще как относится ))) Вот как раз VM-языки(байт-кодовые) - это опухоль на сознании кодера. Особенно, если при этом используется техника run-time compile в нативный код, такая же как в .NET )))


Статус: Пришелец

Создано: 27 апреля 2015 03:45 New!
Цитата #16

Rainbow пишет: Ну я бы выбрал первое, т.к. я думаю очевидно, что разработчик стандарта лучше знает свой код и свои косяки

Что тут сказать - удачи, хотя оптимальней было бы взять webkit, если уж так хочется standalone.


Ранг: 752.8 (! !)
Статус: Участник
Student

Создано: 2 мая 2015 17:51 New!
Цитата · Личное сообщение · #17

Rainbow, ExternalInterface, как я понял, можно использовать только, если flash тоже твой, т.к. в нём его нужно инициализировать? с чужой флешкой не прокатит?


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 3 мая 2015 15:56 · Поправил: Rainbow New!
Цитата · Личное сообщение · #18

Isaev пишет:
Rainbow, ExternalInterface, как я понял, можно использовать только, если flash тоже твой, т.к. в нём его нужно инициализировать? с чужой флешкой не прокатит?


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

P.S. Могу ошибаться канеш, поправляйте.


Статус: Пришелец

Создано: 3 мая 2015 16:15 New!
Цитата #19

Rainbow пишет: аттача к флешке впринципе любого процесса

Все верно, по сути это callback функция которая используется для внутреннего расширения флешки и для обработки событий самого плеера.


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 21 мая 2015 15:16 New!
Цитата · Личное сообщение · #20

Ниукого нету в djvu/pdf книжки -> ATL 8: внутренняя структура и применение, 2-е издание
Авторы: Кристофер Таваре, Кирк Фертитта, Брент Ректор, Крис Селлз ?


Ранг: 1009.4 (!!!!)
Статус: Участник

Создано: 21 мая 2015 15:34 New!
Цитата · Личное сообщение · #21

вбей в гугл скачай
www.cmlab.csie.ntu.edu.tw/~cathyp/eBooks/ATL/ATL.Internals.Working.with.ATL.8.2nd.Edition.Jul.2006.chm
хотя тебе же наверное на русском и с картинками ?

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



Ранг: 307.7 (мудрец)
Статус: Участник

Создано: 21 мая 2015 16:08 New!
Цитата · Личное сообщение · #22

Rainbow
Read Only
Сорцы из книги тоже найти можно. pdf/djvu - видимо в природе не существует - так как всего 2000 экземпляров книги было выпущено (инфа с ютуба).


Ранг: 110.0 (ветеран)
Статус: Участник

Создано: 21 мая 2015 18:19 New!
Цитата · Личное сообщение · #23

reversecode пишет:
хотя тебе же наверное на русском и с картинками ?


Собсно а поч и нет ? ) Спс
 eXeL@B —› Программирование —› Получить handle контрола в HTML/FLASH.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS