GetDC problem

Тема в разделе "WASM.WIN32", создана пользователем Zero Ice, 23 дек 2005.

  1. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    Есть одна веселая игра. И есть к ней боты. :)

    Меня заинтересовала её защита...

    Работа бота: при нажатии PrintScr бот читает картинку, смотрит где противники и рисует траектории на экране. Рисует так: GetDC(0) + TextOut

    Это перестало работать. (Там защит целый таз. Даже дрова сделали и обновляют базу ботов) :)

    Тогда немного подумав я сделал GetDC + GetDesktopWindow.

    но это тоже прикрыли :)

    Прикрывают интересным способом - вся графика выводимая графика смещена вниз. Т.е. при выводе TextOut(0,0,"COOL",4); я получаю надпись где-то внизу экрана. Они как-то уродуют DC.

    Уже попробовал:

    SetViewportExtEx(h,0,0,NULL);

    SetWindowExtEx(h,0,0,NULL);

    SetWorldTransform(h,&x);

    SetBrushOrgEx(h,0,0,NULL);

    SetWindowOrgEx(h,0,0,NULL);

    SetViewportOrgEx(h,0,0,NULL);

    OffsetWindowOrgEx(h,0,0,NULL);

    OffsetViewportOrgEx(h,0,0,NULL);

    всё равно канва смещена :dntknw:

    МОжет кто-нибудь знает как они двигают канву? (Исследовать игру лень - при включении дебагера всё падает, а иногда комп ребутиться. :lol: Привилегии на дебаг проги уже получить не могут + в процессах игру не видно. Я сам в такое не верил, пока не запустил эту корейскую игрушку. 8))
     
  2. Topor

    Topor New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2005
    Сообщения:
    31
    Для TextOut отрицательные координаты тоже робят.

    Сделай типа так:

    invoke TextOut, hdc, 0, -50, offset sText, Sizeof sText1
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Zero Ice

    Не пробовали создать полноэкранное прозрачное (см. ниже) окно и рисовать в нём?
    Код (Text):
    1. if(uMsg == WM_NCHITTEST) return HTTRANSPARENT;
    2. if(uMsg == WM_ERASEBKGND) return 1;
    3. if(uMsg == WM_PAINT){ /* а тут рисуем траектории и т.д. */ }


    В данном случае DC не будет иметь никакого отношения к игровому и приложение никак не сможет помешать его использовать ;)



    ЗЫ: Если это окно создаётся отдельным приложением, то не помешает поставить ему стиль WS_EX_TOPMOST.
     
  4. Zero Ice

    Zero Ice New Member

    Публикаций:
    0
    Регистрация:
    7 дек 2003
    Сообщения:
    61
    2Topor пашет, но текст обрезан (как будто за границу окна вышел)

    2Quantum не вариант. Там DDraw с fullscreen. (никакого топ моста)