Skip to main content
gamedev.net
🔒 Locked

Program to interact with Closed-source program - Help needed

Started by mrebersv 2 replies 750+ views
Original Post
mrebersv
mrebersv
I am looking to write a program to interact with a closed source program and wondering how to do it. Specifically, I want to write a program that will interact with an online casino's blackjack software (interperet what cards the blackjack server sends and automatically chose the "correct" play based on blackjack "basic strategy"). No, I don't want to automate losing my money faster (I don't need to gamble to be short of funds :p ), but have been wondering how it's done. I was thinking that the program could sort of intercept the packets that the online casino would send and "hijack" the software session, in a sense, sending a packet back specifically crafted to do what the program decides is the "correct decision." I'm not really positive how to go about doing this (capture packets via ethereal for analysis, and after I know how the data structure is mapped and how it's sent with the packet use some sort of packet crafting utility to send it back?). If you have any ideas how to do this or any other methods for accomplishing this goal, I would love to hear them. Oh, since most online software is written for windows, it would probably have to be programmed for, and use utilities programmed for windows. Thanks guys! NOTE: For anybody who is a member of the DevShed Python forum, sorry for posting it in both spots, but I haven't gotten a response from DevShed, and they don't have a "General programming," so I don't want to post it in every different language's forum. [Edited by - mrebersv on July 12, 2006 3:03:13 PM]
dave
dave
I always thought that programs like poker tracker etc were done by analysis and decryption of the packets sent to and from the client and server.

Dave
mrebersv
mrebersv
Yeah, Poker Tracker is what gave me the idea. The thing about poker tracker is that almost all poker software keeps a record of the hands you've seen (played or not) on your computer. Poker Tracker *could* analyze the packets coming in, or it could just look at the right file for each different poker site you play at. I was the same way at first; I thought it must integrate with the software somehow or analyze the packets that are coming in, but I don't know if it really needs to since every poker program I've seen logs the hands you've seen right on you computer. The one exception I've encountered is PokerRoom.com. They store the data on a server, so Poker Tracker would at least need to find out the hand# somehow and look it up from PokerRoom.com's database.

Speaking of PokerRoom.com, it's owned by the same company as CasinoRoom.com (same accounts and money work at both). Both places offer a java applet as an alternative to downloading their propietary software (probably so Mac and *NIX users could spend their money, too). I was thinking that I could just download the applet and look at the code. That would give me an idea on how their data structure would work.

I've also been thinking I'll just try it with something simple like roulette to test this so I don't need to program the BJ logic before I start testing the interaction. That way, my tests can be simple (bet black every time) and still be close to even money.

This may seem like I want to automate my gambling with this project. THAT IS NOT WHAT I WANT TO DO! I like playing poker, but I don't want to automate that, either. I understand the Casino has an edge in every casino game, and I would have no financial incentive to automate betting against the casino. That would just make me lose money a lot faster on a game I don't even play! I'm doing this simply for personal programming growth. I am relatively new to programming, and this idea really piqued my interest and sounded like a challenge, but still doable. I am looking for other ideas on how one would do this. I assume there aren't any tutorials on figuring out how to integrate software with existing, closed-source software as it would have to be either incredibly general/vague or software specific.

Again, any ideas on how to do this would be much appreciated!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.