Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 16:27   #1
vasilijorlov
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 6
По умолчанию Определиться с необходимым языком для написания программы

Здравствуйте. Сразу скажу, что я практически полный 0 в программировании (не считая азов паскаля). Мне необходим совет по выбору языка для написания простенькой программы. В зависимости от сложности отсоветованного языка, планирую либо собственное освоение (математика, софт, железо - все дается очень легко) либо уж заказ у фрилансеров.


Введение:
1) Существует клиентская программа для игры в покер (название скрыто с целью соблюдения правил форума):


2) В программе существует список доступных столов для игры. По двойному клику по любому - открывается собственно стол:


3) В правой части стола есть окно "Game Play Info". В нём сохраняется текстовая запись каждой сыгранной раздачи:



Задача:
Создание программы, которая в автоматическом режиме (без оператора) будет:

1) Регулярно сканировать главное окно программы со списком столов и открывать все столы с заранее прописанными критериями (например условие для колонки "Stakes" - содержит "$0.02", условие для колонки "Player" - содержит 2/6 или 3/6 или 4/6 или 5/6 или 6/6).

2) Закрывать ранее открытые столы, если за ними не осталось игроков (например триггер - в течении 1мин нет обновления в окне "Game Play Info").

3) С открытых столов забирать информацию из окна "Game Play Info".

4) Перегонять эту информацию в другой формат (разумеется образцы формата имеются так же, но не суть, т.к. это уже выходит за рамки данной темы).

Вопросы:

1) Какой язык программирования выбрать? Главные критерии: полная автоматизация, надежность, экономия ресурсов ПК (т.к. планируется запуск очень большого количества копий созданной программы).

2) В какой срок реально овладеть этим языком в достаточной степени для того, чтобы написать выше обозначенную программу?

3) Если заказывать, то в какую сумму примерно выйдет?


Дополнительно:
Могу скинуть ссылку на похожую программу (триал 5 дней), в которой нет реализации автоматического открытия столов, т.е. нет п.1 и п.2 из списка обозначенных выше задач.
Изображения
Тип файла: jpg 1.jpg (56.2 Кб, 189 просмотров)
Тип файла: jpg 2.jpg (34.6 Кб, 198 просмотров)
Тип файла: png 3.PNG (15.1 Кб, 150 просмотров)
vasilijorlov вне форума Ответить с цитированием
Старый 28.11.2012, 16:58   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Вопрос не языка, вопрос способа. То есть, нужно анализировать адресное пространство программы, вылавливать, где она хранит требуемые данные и так далее. Это не написание своей программы, это анализ чужой (см. Касперски-Рокко, "Искусство дизассемблирования", например). После этого свою программу написать не так сложно - главное залезть в чужой процесс, это делается с помощью системных вызовов, которые позволяют практически любые языки. C/C++ идеологически для этого приспособлен чуть лучше, но если Pascal уже знаете, то, ИМХО, разница невелика. Но "надёжность", в определённом смысле - больное место C++, в нём относительно легко делать тонкие ошибки.

Время... понятия не имею, если честно.
Abstraction вне форума Ответить с цитированием
Старый 28.11.2012, 18:36   #3
vasilijorlov
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Вопрос не языка, вопрос способа. То есть, нужно анализировать адресное пространство программы, вылавливать, где она хранит требуемые данные и так далее. Это не написание своей программы, это анализ чужой (см. Касперски-Рокко, "Искусство дизассемблирования", например). После этого свою программу написать не так сложно - главное залезть в чужой процесс, это делается с помощью системных вызовов, которые позволяют практически любые языки. C/C++ идеологически для этого приспособлен чуть лучше, но если Pascal уже знаете, то, ИМХО, разница невелика. Но "надёжность", в определённом смысле - больное место C++, в нём относительно легко делать тонкие ошибки.
Спасибо, листаю сейчас "Искусство дизассемблирования". Конечно весьма огорчает объём данной книги (почти 900 стр). Содержание так же не располагает к быстрому освоению Похоже придётся заказывать.

Кстати, если я добавлю (вспомнил), что софт клиентской программы для игры в покер сделан на Java, то это как-нибудь уменьшит количество необходимой к усвоению информации? Может хотя бы с чего начать?
vasilijorlov вне форума Ответить с цитированием
Старый 28.11.2012, 18:45   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Может помочь. В том смысле, что дизассемблер для байт-кода Java-машины имеет шансы произвести более читаемую кашу, нежели дизассемблер бинарного кода. Вместе с тем, перемещающий сборщик мусора - не сахар, может оказаться, что проще модифицировать клиент, чтобы он писал что надо.
Abstraction вне форума Ответить с цитированием
Старый 28.11.2012, 19:11   #5
vasilijorlov
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Может помочь. В том смысле, что дизассемблер для байт-кода Java-машины имеет шансы произвести более читаемую кашу, нежели дизассемблер бинарного кода. Вместе с тем, перемещающий сборщик мусора - не сахар, может оказаться, что проще модифицировать клиент, чтобы он писал что надо.
Главный файл клиента я так понимаю такой: jpc5_obfuscated_3543.jar (помню распаковывал его, правил некоторые конфигурационные файлы - типа замена шрифта, менял графику и обратно запаковывал - все работало с внесенными мною изменениями). Судя по тому, что я прочитал, наличие слова obfuscated в названии файла говорит о том, что после декомпиляции будет сильно затруднен анализ исходного текста...

У меня появился еще один вопрос, который вполне может оказаться жутко нубским, но все же риску его задать:
нельзя ли подойти к процедуре открытия/закрытия столов через графический интерфейс? Какое-нибудь ПО захватывает заданную область и распознает на ней текст; далее информация о тексте передается в написанную прогу, которая прогоняет его через вышеизложенные мною условия (типа условие для колонки "Stakes" - содержит "$0.02") и отправляет двойной клик в район распознанного текста?
vasilijorlov вне форума Ответить с цитированием
Старый 28.11.2012, 21:39   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Можно-то можно, но распознавание текста - тоже не то чтобы элементарная задачка. Кроме того, при этом, без специальных ухищрений, единовременно осмысленно запускать только один экземпляр программы.
Abstraction вне форума Ответить с цитированием
Старый 29.11.2012, 11:48   #7
vasilijorlov
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Можно-то можно, но распознавание текста - тоже не то чтобы элементарная задачка. Кроме того, при этом, без специальных ухищрений, единовременно осмысленно запускать только один экземпляр программы.
Фишка в том, что существует множество покерных клиентов, работающих на разных движках. Метод с распознаванием текста и двойным щелчком будет универсальным.

А запуск нескольких копий на виртуалках.

Никто не подскажет где начать поиск инфы или что-нибудь конкретное, типа какой модуль распознавания использовать + на каком языке писать прогу, которая будет работать с текстовыми данными из этого модуля?
vasilijorlov вне форума Ответить с цитированием
Старый 29.11.2012, 12:26   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
но распознавание текста - тоже не то чтобы элементарная задачка
имхо для начала Лучше(проще) попробовать приконектиться к серверу игры (авторизоваться в нем ) и тащить с него необходимую инфу(предварительно проснифав чего ж там передается/получается в офф клиенте)
А уж если этого не получится то и распознаванием текста заняться
Цитата:
А запуск нескольких копий на виртуалках.
Зачем? есть же прокси
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 29.11.2012, 13:19   #9
vasilijorlov
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
имхо для начала Лучше(проще) попробовать приконектиться к серверу игры (авторизоваться в нем ) и тащить с него необходимую инфу(предварительно проснифав чего ж там передается/получается в офф клиенте)
А уж если этого не получится то и распознаванием текста заняться
Извиняюсь, но я вообще не представляю себе как это вообще происходит и с помощью каких средств. Единственное что я могу - залогиниться в клиенте

Так же, программы предназначены для игры на реальные деньги (порою сотни тысяч долларов) и любой взлом (не знаю относиться ли это к авторизации на сервере с предварительной просниффовкой[не знаю что это значит вообще]) например чисто физически должен быть невозможен.

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Зачем? есть же прокси
Если это стабильно, полностью возможно на своем оборудовании при наличии одного интернет канала, то, пожалуйста, объясните. Просто один из обязательных пунктов такого предприятия - максимальная независимость от сторонних программ/серверов.
vasilijorlov вне форума Ответить с цитированием
Старый 29.11.2012, 13:29   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
программы предназначены для игры на реальные деньги
Все реальные деньги храняться на сервере и своим сторонним клиентом вы вряд ли до них доберетесь
В клиент же приходит только текущая инфа (как в любом чате)
Цитата:
чисто физически должен быть невозможен
Пентагоны ломают - а вы про онлайн-игру тут)
Цитата:
я вообще не представляю себе как это вообще происходит и с помощью каких средств
искать по словам - "сниффер, сокеты, пакеты, авторизация"
Цитата:
Если это стабильно, полностью возможно на своем оборудовании при наличии одного интернет канала
Все зависит от протокола общения между клиентским приложением и сервером (если оно не сильно шифровано - то 100% возможно, иначе - уже идут варианты) так что не увидев вживую чего там и как сложно сказать
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дайте совет для написания программы city32 БД в Delphi 5 17.10.2011 08:33
Нужен программист, для написания программы. 496385290 Фриланс 4 28.09.2011 11:33
требуется програмист для написания программы vladimirdemin Фриланс 1 23.05.2011 17:22