Перехват данных в java приложениях

Тема в разделе "WASM.RESEARCH", создана пользователем Selah, 13 июл 2011.

  1. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Задача такая: есть прога , клиент покера на яве, нужно каким-то образом менять текст на контролах окна.
    Как это делают в ява приложениях? Я так понял есть какие-то либы в папке bin которые имеют функции переходники?
     
  2. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Selah
    Либо java , либо GDI(GDI+) с мониторингом изменений для DIB,BBP памяти ...
     
  3. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    уточни пожалуйста
     
  4. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    JBossAOP - это для перехвата Java кода
    Ну либо перехватывать нативные функции ... но это сложней , и думай в гугле можно найти ...
     
  5. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Насчет native api. Вопрос к тем кто занимался этим. Какие функции отвечают за работу с окном?
     
  6. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    т.е. что-то вроде createwindow на уровне этом есть?
     
  7. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Selah
    Полюбому есть ...
    Что конктерно нужно менять? просто окно это одно дело и вот когда выливатся дип секция или битмап .... то тут обычным перехватом нативного апи не обойтись.

    П.С.
    Под отладчиком можно посмотреть, а реалиазация это в комерс, так как там много кодеса для перехватов ...
     
  8. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    Selah
    Все сервисы, чей идентификатор больше 0x1000. Какой бы не вызывался сервис с этим номером, шадов получит управление.
     
  9. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    shchetinin
    Не следует людей отсылать в комерс для решения примитивных задач. Рано или поздно вас туда также отправят. Ваша тема http://wasm.ru/forum/viewtopic.php?id=41656 - в комерс!!
     
  10. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    klzlk
    Моя тема была с вопросом технического характера ...
    В прочем лады ... поехали...

    Selah
    Если реализовывать это на нативном уровне, то сдезь проблема в отслеживании DIB,DBB памяти.
    Пример
    //////////////////////////////
    LPVOID lpBits;
    CreateDIBSection(
    CreateCompatibleDC(),
    &lpBits
    ,
    ,
    ,
    );

    ////////////////////////////////////////
    /// Вот может быть манипуляция с lpBits, без уведомления что на нем потом влить BitBlt или AlphaBlend
    /////и ну все такого
    //////////////////////////////

    Основные функции для вывода текста
    GDI ExtTextOutEx
    GDIPlus GdipDrawString

    Вообще это не простой перехват нативного апи, требуется восстонавливать и вести контекст рисования ...


    Selah
    Что конктрено не понятно? что вы уже написали? в чем загвоздка?
    Вы можете посмотреть какой апи реально используется ? (http://www.apimonitor.com/, WinDbg).

    На много будет проще если перехват будет на уровне Java.
     
  11. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Да я написал то что уже нашел на этом форуме, вот здесь http://wasm.ru/forum/viewtopic.php?id=36613 Меня интересуют детали и перехват вывода текста в контролы явы.
    Каким образом посмотреть мне апи которые используются? если тут вирт машина явы пашет, код выполняется внутри. Где искать либы переходники?
     
  12. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    пытаюсь отследить вызовы апи с net.dll к примеру, c помощью kerberos пишет - net.dll load error
     
  13. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Так, апи монитор справляется , либа C:\Program Files\Java\jre6\bin\awt.dll отвечает за отрисовку контролов. За какой апи теперь следить? DrawText ?
     
  14. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    А, значит, это AWT -- библиотека для создания пользовательского интерфейса. Исходники открыты, это может помочь в разборе логики контрола. Там же можно посмотреть, какие ф-ии вызываются из .dll (в Java такие ф-ии идут с квалификатором "native").
     
  15. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Хорошо буду разбираться.

    а сплайсинг тут покатит?
     
  16. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Делаю перехват TextOut, ExtTextOut, DrawText в javaw.exe Но нужного текста не вижу в параметрах..

    Вот к примеру есть такая прога на яве:
    Код (Text):
    1. import java.applet.Applet
    2.  import java.awt.Graphics;
    3.  
    4.  
    5.  public class Where extends Applet{
    6.  
    7.  public void paint(Graphics g) {
    8.  g.drawString("Who am i?",100,100);
    9.  }
    10.  
    11.  }
    Какой апи рисуется эта строка??
     
  17. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Selah
    Запусти apimonitor.
    Строка в ероглифах ? если да , это просто отрисовка происходит в глифах

    BOOL ExtTextOut(
    __in HDC hdc,
    __in int X,
    __in int Y,
    __in UINT fuOptions,
    __in const RECT *lprc,
    __in LPCTSTR lpString,
    __in UINT cbCount,
    __in const INT *lpDx
    );

    fuOptions [in]
    ETO_GLYPH_INDEX.
    API Декодирование глифов GetFontUnicodeRanges, GetGlyphIndices
     
  18. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    У меня все вызовы ExtTextOut -fuOptions с ETO_OPAQUE
    строка __in LPCTSTR lpString пустая
     
  19. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    Selah
    А ну это он делает практически фил ...
    Больше не каких нет вызовов(ExtTextOutW только с пустой строкой)? например GdipDrawString?
     
  20. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    неа, битмапы только создаются