• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Как загрузить капчу из чужого приложения в своё

  • Автор темы SaNn
  • Дата начала
S

SaNn

Ну что форумчане, у меня к вам три очень интересных вопроса:

1. Как найти окно в котором МОЖЕТ распологаться картинка (приложение написано фиг знает на чём, там даже у чекбоксов тип баттон!!!)?
2. Как получить адрес (возможно URL, а возможно и нет) этой картинки?
3. Как загрузить эту картинку в своё приложение?

Зарание всем спасибо...
 
G

grigsoft

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

Yason

SaNn
Так картинка грузится с сервера или генерится локально? Показывается всегда в одном и том же контроле/месте окна, или где попало?
Решение для картинки, загружаемой извне, написал grigsoft.
Для генерируемой локально самим приложением - по заголовку получаем хендл окна, потом - GetWindowDC, потом BitBlt себе в битмап.
 
S

SaNn

В общем объясню что я хочу:
Мне захотелось написать свой spy для покера(Техас холдем), но как получить свои карты и карты флопа, тёрна и ривера я не знаю(((...
 
S

SaNn

Нет это не развод и не браузерный веб клиент...
В общем картинки лежат в папке с игрой...
 
E

European

Посмотри Spy-ем есть ли окна для отображения карт. Если нет, то узнать какая карта была отрисована, ИМХО, нельзя. Аспекты сравнения картинок я не рассматриваю.
 
G

grigsoft

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

Или речь здесь идет просто об автоматизации легальной игры, а не о взломе? Тогда да, окна могут помочь, но и без них - покер вроде игра с несложной логикой вполне можно выделять фрагменты окна с картами для стандартных ситуаций
 
E

European

А хоть бы и были?
Без окон будет еще хуже ;)
не представляю разумную внутреннюю логику, по которой карты можно было бы прочитать из окна до того как будет необходимость отрисовать их лицом вверх.
Так ведь никто не говорит о получении карты до ее отрисовки. По крайней мере я так понял. В обратном случае без дизассемблирования ничего точно не выйдет.
покер вроде игра с несложной логикой вполне можно выделять фрагменты окна с картами для стандартных ситуаций
Если клиент позволяет играть переменному количеству человек (если в покере можно ;) ), позволяет настраивать скины карт, стола и т.д., то обрабатывать "стандартные ситуации" будет сложно


и карты флопа, тёрна и ривера я не знаю(((...
Не разбираюсь в покере... Поясните что это за карты. Вы их явно не видите, так?
но как получить свои карты
Ну с этим более-менее понятно, так как эти карты Вы видите
 
S

SaNn

Или речь здесь идет просто об автоматизации легальной игры, а не о взломе? Тогда да, окна могут помочь, но и без них - покер вроде игра с несложной логикой вполне можно выделять фрагменты окна с картами для стандартных ситуаций
Именно!!!

Проверил, вроде какието окна есть, но их имени не могу получить, что сужественно уменьшило бы объём работы...
 
Y

Yason

Имя наверняка есть у родительского (ну или главного) окна, а у искомых дочерних есть фиксированные координаты. Существенно уменьшит объём работы функция EnumChildWindows.
Upd: для изучения структуры чужих окон удобно использовать Spy++ из комплекта Visual Studio.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!