Précédent   Forum des professionnels en informatique > Java > Général Java
Général Java Java SE, Java ME, APIs, Persistance, JDBC, Spring, XML. Avant de poster -> FAQ Java, Sources Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2007, 19h58   #1
Invité de passage
 
Inscription : avril 2003
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 15
Points : 1
Points : 1
Par défaut Live Tracker Poker

Bonjour a tous

voila je voudrais realiser un programme dans le style de pokerOffice ou pokerTracker.
pour ceux qui ne connaissent pas : ces programmes analysent et donnent des statistiques en temps reel pour une partie de poker en reseau.

ma question est la suivante :
dapres vous comment ces 2 programmes reçoivent les données ?
selon moi par un tracker de packet (en analysant les pacquets destiné au client poker)
ou alors en analysant la fenetre du client (graphique) ?

selon moi le tracker est plus plausible mais jaurais voulu avoir votre avis

si vous avez un peu d'experience dans le domaine j'aimerai que vous me conseillez un bon site explicatif pour realiser ce genre de programme

d'avance merci a tous

john
jonv11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 09h25   #2
Rédacteur/Modérateur
 
Avatar de CyberChouan
 
Homme Benoît Courtine
Directeur technique
Inscription : janvier 2007
Messages : 2 744
Détails du profil
Informations personnelles :
Nom : Homme Benoît Courtine
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2007
Messages : 2 744
Points : 4 200
Points : 4 200
Envoyer un message via MSN à CyberChouan
Réponse 3: à mon avis, ce n'est aucune des deux solutions que tu proposes.

Ces logiciels doivent à mon avis être programmés en se greffant sur des API spécifiques fournies par les sites de jeux en ligne, avec des méthodes permettant de se connecter et de suivre en direct les parties en cours.
__________________
Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
Mes articles et tutoriaux & Mon blog informatique
CyberChouan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 12h28   #3
Invité de passage
 
Inscription : avril 2003
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 15
Points : 1
Points : 1
je ne pense pas que les sites de jeux de ligne (tel que full tilt poker) proposent de telles API, en effet ils ont LEUR client pour suivre les parties en ligne ...

de plus en fouillant dans pokerOffice (fait en java) et en decompilant les classes
je trouve des appels a des methodes de la librairies aetdata qui est une sorte de tracker ...
ce qui me fait hesiter entre les 2 solutions c'est que dans les sources il y a aussi des classes servant a la reconnaissance de caractere (style OCR) ...

mais le plus gros du code est dans des *.xclass qui sont crypté, je vais donc essayer de les charger avec le loader qui est fournit pour ces classes et essayer de trouver un moyen d'en extraire le code ...

voila voila ...
jonv11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 16h03   #4
Membre éprouvé
 
Inscription : octobre 2007
Messages : 442
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 442
Points : 485
Points : 485
L'outil que j'utilise pour faire du poker en ligne stocke tout simplement :

- sur mon poste,
- dans une petite base de donnée (SQLite),

les stats des mains qui ont été jouées.

Il suffit alors d'aller lire les infos, pas besoin d'intercepter quoique ce soit !
Duc Lebowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 18h36   #5
Invité de passage
 
Inscription : avril 2003
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 15
Points : 1
Points : 1
excuse moi de te dire ca Duc Lebowski,
mais je ne vois pas en quoi te remarque est pertinente ...

c'est tres bien pour toi si tu utilise un programme qui te convient,
moi mon but, c'est d'enprogrammer un dans le genre ...

et donc je cherche des gens savant comment faire pour intercepter les donneées sur les parties (envoyée par le serveur)

j'ai essayé la libraire jpcap mais je ne trouve pas de bonne documentation ...
jonv11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 10h33   #6
Membre éprouvé
 
Inscription : octobre 2007
Messages : 442
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 442
Points : 485
Points : 485
Tu demandais comment fait PokerTracker, je te le dit voilà tout. Après fais ce que tu veux...
Duc Lebowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2007, 14h20   #7
Invité de passage
 
Inscription : avril 2003
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 15
Points : 1
Points : 1
non tu ne dis pas comment il fait pour recuperer les données du serveur,

Citation:
L'outil que j'utilise pour faire du poker en ligne stocke tout simplement :

- sur mon poste,
- dans une petite base de donnée (SQLite),

les stats des mains qui ont été jouées.

Il suffit alors d'aller lire les infos, pas besoin d'intercepter quoique ce soit !
tu explique juste (en gros) ce que fait ce programme avec les données qu'il a interceptées

bon je vais eclaircir la question parceque jai 'limpression que tu ne la comprends pas ...

si pokertracker ou pokeroffice n'existait pas ...
comment feriez vous pour intercepter les données envoyées par un serveur a un client, sans que le serveur ou que le client ne soient au courant ...
jonv11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 22h14   #8
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 66
Points : 15
Points : 15
Salut,
Je m'interesse actuellement à la meme chose que toi.

Je pense qu'il y a plusieurs techniques pour faire ce genre de choses :
- Sniffing des connexions réseaux (protocole crypté??!!!)
- Interception/détournement de la messagerie windows
- Trouver les structures de données interessantes en mémoire par reverse engineering, pour faire des ReadMemory
- API Hooking
- Pattern matching

Vous en connaissez d'autres ?
funtix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 16h10   #9
Invité de passage
 
Inscription : décembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 2
Points : 2
Points : 2
Envoyer un message via MSN à Kelesys
Par défaut sqlite

Tout dabord salut a tous, je suis nouveau sur le forum et j'espere pouvoir contribuer a sa pertinence.

Sinon j'ai moi aussi l'intention de developpé un tel utilitaire.
Et Duc lubowski, a raison et vous a mis sur une piste, car a mon avis vous pouvez oublier toutes les autres (Sniffing de trame, Hooking de message, API dedié ...) qui serais eventuellement possible, mais bien trop compliqué. et puis pourquoi faire compliqué qd on peut faire simple .... tel est ma devise en developpement.

Pour info,
Je joue sur un site de poker online. celui ci stock toutes les statistiques de mes sessions automatiquement dans une base de donnée locale. cette base de donnée est gerer par SQLITE (en tout cas pour mon site de poker) et le fichier se nomme nomdujoueurStatistic.db. en plus en fouillant en peu, on se rend compte qu'il y'a meme un petit exe nommé "sqlite3.exe" ... ^^ humm sympa.

du coup j'ai essayer ca:
"sqlite3.exe NomDuJoueurStatistic.db" en ligne de commande et hop me voici connecter a une base de donné ??!! cool , ensuite quelque petit select du genre: select * from player
ou encore select * from hand ... et la stupefaction , tout l'historique de toutes mes mains ... bah voila y'a plus qu'a (bon ok pour le nom des tables, j'ai trouver dans le fichier de creation de base qui est juste a coté du fichier de stat ...)

sachant que cette base est allimentée par toutes vos mains, suffit d'allé taper dedans pour recuperer tout ce qui vous interresse pour faire vos stats ... facile nan ?

voilou j'espere que ca pourra vous aider.
bon dev et a++
Kelesys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 16h23   #10
Membre éprouvé
 
Inscription : octobre 2007
Messages : 442
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 442
Points : 485
Points : 485
Merci Kelesys, j'avais abandonné tout espoir de convaincre que celà ne sert à rien de prendre une massue pour tuer une mouche !

Surtout que d'aller sniffer les trâmes IP, sachant qu'on se retrouve certainement avec des protocoles "maison" spécifiques selon le logiciel de poker utilisé ! Bon courage pour décrypter le bazard !

Autant s'attaquer directement à des sites bancaires, ça peux gagner plus que le poker
Duc Lebowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 16h26   #11
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 66
Points : 15
Points : 15
J'ai vérifié je n'ai pas de base de données SQL avec mon appli de poker...
Et puis j'aimerais également comme poker office, calculer les cotes en temps réel. Pour ca, on ne peut pas utiliser l'historique des mains!
J'ai regardé en sniffant les echanges client / serveur. Je n'ai rien pu tirer.
Au niveau messagerie windows, les seuls evenements que je vois, ce sont des WM_PAINT et WM_TIMER. La non plus, on ne peut pas faire grand chose.

Pour conclure, je suis dans l'impasse
funtix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 16h28   #12
Membre éprouvé
 
Inscription : octobre 2007
Messages : 442
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 442
Points : 485
Points : 485
Arfff, c pas de bol !

Et pourquoi tu ne veux pas utiliser PokerTracker ou PokerOffice ?
Duc Lebowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 16h49   #13
Invité de passage
 
Inscription : décembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 2
Points : 2
Points : 2
Envoyer un message via MSN à Kelesys
c'est clair, c'est pas cool, si ya pas ce genre de fichier locale ...
Pour ma part l'envie de faire un tel tool est toute fraiche. et je n'ai regarder que ce que je pouvait trouver pour mon appli, je n'ai pas regarder comment stocké les autres sites.
quel est ton site de poker ? je jetterais un oeil, car j'aimerais essayer de faire une appli qui gere +ieurs site poker.

mais je pense qu'il doit y avoir des infos stockées quelque part sur ton pc, peut etre pas dans une base de donnée. car poker tracker fonctionne sur ce modele, on lui indique pour quel site de poker on veux recuperer les stats, et il vas "taper" dans des infos stocké en locale ... et apparement poker tracker gere beaucoup de site de poker different, et tous sont basé sur un fichier locale ...
dailleur, je te conceillerais dans un premier temps de jouer avec poker tracker, ca t'eclaireras surement. et en plus ca devrait te donner pas mal d'idées pour ton soft a toi.

enfin voilou, bon courage en tout cas, et hesite pas a tenir au courant de ton avancement.
Kelesys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 18h25   #14
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 66
Points : 15
Points : 15
Citation:
Envoyé par Duc Lebowski Voir le message
Et pourquoi tu ne veux pas utiliser PokerTracker ou PokerOffice ?
Pour le fun, ca faisait une petite idée de projet...
Et puis ils sont payants

Sur les rooms ipoker, les historiques sont stockés sous forme xml. Donc c'est facile à utiliser. Je crois que je vais me rabbattre la-dessus.
funtix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h34   #15
Invité de passage
 
Inscription : décembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 4
Points : 4
Points : 4
La plupart des sites de poker sauvent l'historique des mains en local, et c'est cet historique que lit PokerTracker / pokeroffice.
C'est sous la forme de fichier xml, txt(everest) ou base sql (ongame) sur les sites que je connais...

de mon coté, j'essaie de rendre compatible avec PockerTracker le site sur lequel je joue.
J'ai des fichiers xml que pokertracker ne sait pas lire et je voudrais les traduire en un format qu'il arrive a importer (donc au format d'un autre site de poker).

Est ce que quelqu'un peut eventuellement m'aider a creer un outil pour ce faire?
J'ai regardé en direction de XLST mais ca me parait tres compliqué...

Je ne suis pas developpeur, mais il me semble que c'est un projet interessant. Je n'ai aucune idee de la difficulté de celui ci cependant...
sebFI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h44   #16
Membre actif
 
Avatar de vasilov
 
Inscription : juillet 2003
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 295
Points : 187
Points : 187
pour ma part, je parse le résultat des parties qui sont stockées sur http://www.pokernetwork.co.uk/games/...P4-55343131-15 par exemple.

(le lien de la partie est indiqué dans tous les logiciel online que j'ai testé)
vasilov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 14h59   #17
Invité de passage
 
Inscription : décembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 4
Points : 4
Points : 4
comment tu fais pour parser ?
sebFI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h08   #18
Membre actif
 
Avatar de vasilov
 
Inscription : juillet 2003
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 295
Points : 187
Points : 187
hé bien, c'est beaucoup plus facile à dire qu'à faire :
Le programme que j'ai fait télécharge la page web, vire les balises html puis analyse ligne par ligne le jeu de chacun.

Le probleme est que je ne fais pas de statistiques : j'analise partie par partie sans prendre en compte ce qui c'est passé aux parties précédentes.
En gros, j'affiche différament ce qu'il y a sur cette page web.


Au fait, ou sont stocqués vos fichier xml, txt ou base sql?? Je ne pense pas en avoir étant donné que je joue dans un applet java via europoker ou pokerroom
vasilov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h12   #19
Invité de passage
 
Inscription : décembre 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 4
Points : 4
Points : 4
c'est plus ou moins ce que je cherche a faire ... sans arriver a voir comment le faire.
Je veux transformer

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<game id="10463649-2650" starttime="20071209131802" numholecards="2" gametype="2" realmoney="true" data="20071209|Lima (10463649)|10463649|10463649-2650|false">
	<players dealer="4">
		<player seat="3" nickname="chuk101" balance="$0.60" dealtin="true" />
		<player seat="5" nickname="ITZAHOLDUP" balance="$4.33" dealtin="true" />
		<player seat="2" nickname="groovybabe" balance="$7.25" dealtin="true" />
		<player seat="4" nickname="Seb" balance="$9.85" dealtin="true" />
	</players>
	<round id="BLINDS" sequence="1">
		<event sequence="1" type="SMALL_BLIND" player="5" amount="0.05"/>
		<event sequence="2" type="BIG_BLIND" player="2" amount="0.10"/>
		<event sequence="3" type="INITIAL_BLIND" player="3" amount="0.10"/>
	</round>
	<round id="PREFLOP" sequence="2">
		<event sequence="4" type="CHECK" player="3"/>
		<event sequence="5" type="FOLD" player="4"/>
		<event sequence="6" type="CALL" player="5" amount="0.05"/>
		<event sequence="7" type="CHECK" player="2"/>
		<cards type="HOLE" cards="2d,8s" player="4" hand="Eight High"/>
	</round>
	<round id="POSTFLOP" sequence="3">
		<event sequence="8" type="ALL_IN" player="5" amount="4.23"/>
		<event sequence="9" type="CALL" player="2" amount="4.23"/>
		<event sequence="10" type="FOLD" player="3"/>
		<event sequence="11" type="SHOW" player="2"/>
		<event sequence="12" type="SHOW" player="5"/>
		<cards type="COMMUNITY" cards="Js,8c,5c" hand="Pair of Eights"/>
		<cards type="SHOWN" cards="7c,Jd" player="2"/>
		<cards type="SHOWN" cards="4d,5d" player="5"/>
		<cards type="COMMUNITY" cards="Js,8c,5c,3d" hand="Pair of Eights"/>
		<cards type="COMMUNITY" cards="Js,8c,5c,3d,6h" hand="Pair of Eights"/>
		<winner amount="8.33" uncalled="false" potnumber="1" player="2" hand="Pair of Jacks" pottype="n"/>
	</round>
</game>

en

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<HAND time="1179328991" id="1531673381" index="1" blinds="$.05/$.10" stakes="$.10/$.10">
  <SEAT position="0" name="Blind.09220" balance="100"/>
  <SEAT position="1" name="b1a1l1i" balance="535"/>
  <SEAT position="2" name="jailedroit" balance="275"/>
  <SEAT position="3" name="bielekusen" balance="760"/>
  <SEAT position="4" name="Seb" balance="700"/>
  <DEALER position="0"/>
  <BLIND position="1" amount="5" penalty="0"/>
  <BLIND position="2" amount="10" penalty="0"/>
  <BLIND position="3" amount="10" penalty="0"/>
  <BLIND position="4" amount="10" penalty="0"/>
  <HOLE position="1">--</HOLE>
  <HOLE position="2">--</HOLE>
  <HOLE position="3">--</HOLE>
  <HOLE position="4">5s</HOLE>
  <HOLE position="0">--</HOLE>
  <HOLE position="1">--</HOLE>
  <HOLE position="2">--</HOLE>
  <HOLE position="3">--</HOLE>
  <HOLE position="4">Qh</HOLE>
  <HOLE position="0">--</HOLE>
  <BET position="3" amount="0"/>
  <BET position="4" amount="0"/>
  <BET position="0" amount="100" allin="1"/>
  <FOLD position="1"/>
  <BET position="2" amount="90"/>
  <FOLD position="3"/>
  <FOLD position="4"/>
  <SWEEP rake="11">214</SWEEP>
  <SHOW position="2">Jh, 2h</SHOW>
  <SHOW position="0">5h, 4c</SHOW>
  <COMMUNITY>Ah, 2d, 10c, Jd, 9s</COMMUNITY>
  <SHOW position="0">5h, 4c</SHOW>
  <SHOW position="2">Jh, 2h</SHOW>
  <WIN position="2" amount="214" pot="0", potAmount="214"/>
</HAND>
sebFI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 15h26   #20
Membre actif
 
Avatar de vasilov
 
Inscription : juillet 2003
Messages : 295
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 295
Points : 187
Points : 187
Ca ne sera pas fait en 2-2

il faut faire un programme qui analyse le fchier xml initial (en utilisant le dom par exemple) pour en construire tes objets se rapprochant le plus près possible du format de fichier de sortie

ensuite tu écris tes objets dans un fichiers sous le format de ton 2ieme fichier xml.

Les deux fichiers sont tout de meme assez différents donc il n'est pas sure de trouver "tel quel" les infos dans le premier fichier pour les mettre dans le second.


Bon courage.
vasilov est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h16.


 
 
 
 
Partenaires

Hébergement Web