Poker-AI.org

Poker AI and Botting Discussion Forum
It is currently Mon Nov 13, 2023 1:53 pm

All times are UTC




Post new topic Reply to topic  [ 23 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Mar 27, 2013 7:14 am 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
Hello,

I'm a senior web developer and I'm looking to broaden my knowledge. if I can earn a few bucks while I'm at it - awesome, if not - still awesome.
I've lurked the forums for a couple of weeks looking up all the info I can and I now have a few questions I need to clarify before actually starting.

Thanks in advance!

Language: Java vs C#?
No C++ because I'm no expert in either and in this scenario above two seem like an easier choice, with automatic memory management and all..

They seem to be mostly equal in terms of speed and flexibility and in the end it all boils down to preference and WinApi integration of C#.
Am I right in this? If yes, that brings me to a very related question:

I/O: OCR + AHK(?) or DLL hooks?
I'm guessing DLL hooks are much more flexible, but I would give away a lot of stealth by doing so?
I'm assuming I need to run C# based bot on the same machine as poker client?
Has anyone succesfully managed to stay under the radar with DLL hooks?

Handling captcha
For some reason there's very little information about handling captcha, I can't even find good examples for partypoker client.
I think I can handle them when I encounter them, but I need training data to do so.
Otherwise even if I miss one captcha that's end-game for me, right?


Top
 Profile  
 
PostPosted: Wed Mar 27, 2013 10:36 am 
Offline
Site Admin
User avatar

Joined: Sun Feb 24, 2013 9:39 pm
Posts: 642
Yes, java and c# are both good. c# has the edge for integration with winapi but I think there are more free libraries available for java, for say machine learning.

I can't help much on your stealth questions except to make you aware of the sort of solution http://www.epiphan.com/

Avoid pokerstars to begin with.


Top
 Profile  
 
PostPosted: Wed Mar 27, 2013 2:39 pm 
Offline
Senior Member

Joined: Mon Mar 11, 2013 10:24 pm
Posts: 216
The most important advice might be: don't start with the client interaction before your have a solid AI - that's the way tougher part ;-)


Top
 Profile  
 
PostPosted: Wed Mar 27, 2013 3:36 pm 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
Yeah that was my plan from the start - to focus on AI first. I'm planning to ignore stealth completely and work with PA until my bot starts making some sense.

I just need to decide on the platform first, which boils down to whether I can safely hook into the client later or not. If not then I'd go for Java.


Top
 Profile  
 
PostPosted: Wed Mar 27, 2013 4:07 pm 
Offline
Senior Member

Joined: Mon Mar 11, 2013 10:24 pm
Posts: 216
I'd just go with the language you prefer/know better. True, C++/C# is a little bit better if you do a lot of winAPI stuff, but this is also doable in Java without too much effort and its only a small part of the bot anyway. Personally, I prefer Java because I know the API best and did not face anything that couldn't be programmed but was possible in C++/C#.


Top
 Profile  
 
PostPosted: Sat Mar 30, 2013 3:25 am 
Offline
Veteran Member

Joined: Wed Mar 20, 2013 1:43 am
Posts: 267
If you only need a few native methods, you can use JNA in Java. Personally I prefer Java, just because I have more experience with it.


Top
 Profile  
 
PostPosted: Sat Mar 30, 2013 7:56 am 
Offline
Junior Member

Joined: Wed Mar 06, 2013 8:44 am
Posts: 37
eugen wrote:
Yeah that was my plan from the start - to focus on AI first. I'm planning to ignore stealth completely and work with PA until my bot starts making some sense.

I just need to decide on the platform first, which boils down to whether I can safely hook into the client later or not. If not then I'd go for Java.


for hooking you should chose a small site. The big ones will catch you very soon. Hooking is to easy to detect for a poker site.


Top
 Profile  
 
PostPosted: Sat Mar 30, 2013 6:35 pm 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
What about chat? Do you scrape it as well?


Top
 Profile  
 
PostPosted: Sat Mar 30, 2013 7:06 pm 
Offline
Junior Member

Joined: Wed Mar 06, 2013 8:44 am
Posts: 37
eugen wrote:
What about chat? Do you scrape it as well?


me? nope I don't scrape the chat.


Top
 Profile  
 
PostPosted: Sat Mar 30, 2013 7:28 pm 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
winnie, so do you ignore it or get it some other way?

If you ignore it, what about chatting players?
If one of them suspects something and reports you, wouldn't that trigger a thorough investigation?


Top
 Profile  
 
PostPosted: Sun Mar 31, 2013 12:29 am 
Offline
Senior Member

Joined: Mon Mar 11, 2013 10:24 pm
Posts: 216
If someone suspects something, why should he tell it to you in the chat? I'd guess the suspicion arises from other factors than not answering a question in the chat.


Top
 Profile  
 
PostPosted: Sun Mar 31, 2013 7:15 am 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
Well yeah, but he would try to confirm his suspision by asking you arbitrary question, like "How many people are on this table? If you're not a bot, please answer".
Not answering would obviously not be a decising factor, but through investigation could. Or am I being paranoid?


Top
 Profile  
 
PostPosted: Sun Mar 31, 2013 8:26 am 
Offline
Junior Member

Joined: Wed Mar 06, 2013 8:44 am
Posts: 37
eugen wrote:
Well yeah, but he would try to confirm his suspision by asking you arbitrary question, like "How many people are on this table? If you're not a bot, please answer".
Not answering would obviously not be a decising factor, but through investigation could. Or am I being paranoid?


i have disabled the chat. If I play poker myself I never read the chat. With many tables open there is no time for doing this...


Top
 Profile  
 
PostPosted: Sun Mar 31, 2013 2:09 pm 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
Ok one more question: do you hide your network activity between VM and bot host?
I know it's a stretch to assume that poker clients will sniff traffic, but you can never know..

P.S. Thanks for all the answers, helped me wrap my head around the tasks!


Top
 Profile  
 
PostPosted: Mon Apr 01, 2013 4:29 pm 
Offline
Junior Member
User avatar

Joined: Sun Mar 10, 2013 11:38 pm
Posts: 34
As said already, use the language you are most familiar with. Personally, as a Linux user, I prefer Python with (very!) occasional delves into plain C. As for screen scraping, etc, a much overlooked method is to target a poker site with a Flash client as you can decompile the SWF's to get their encrypt/decrypt routines use them with a packet sniffer or MITM (Man In The Middle) approach. In theory, once you know the protocol, you can create your own GUI-less client. The other bonus of using Flash clients is that for security reasons, they are sandboxed so can't do the usual stealth checks such as scanning your hard drive, memory, processes, etc.

But all that stuff is the "easy" part. The AI is by far the most critical.

_________________
www.bespokebots.com


Top
 Profile  
 
PostPosted: Mon Apr 01, 2013 6:23 pm 
Offline
Senior Member

Joined: Mon Mar 11, 2013 10:24 pm
Posts: 216
birchy wrote:
The other bonus of using Flash clients is that for security reasons, they are sandboxed so can't do the usual stealth checks such as scanning your hard drive, memory, processes, etc.


But can't we just run a non-flash client in a tool like Sandboxie and have the same result?


Top
 Profile  
 
PostPosted: Mon Apr 01, 2013 11:00 pm 
Offline
Junior Member
User avatar

Joined: Sun Mar 10, 2013 11:38 pm
Posts: 34
proud2bBot wrote:
But can't we just run a non-flash client in a tool like Sandboxie and have the same result?
Depends if the client has stealth checks built in I guess. I assume that running a client such as stars in a sandbox would at least ring some alarm bells...if it ran at all. Obviously a VM is a better choice for any client that has to be installed. With Flash (or any other "browser" type instant-play) clients, bot checks, etc will not have been coded into the client simply because they cannot do anything useful. It's just one less hurdle for us to jump over.

_________________
www.bespokebots.com


Top
 Profile  
 
PostPosted: Tue Apr 02, 2013 4:38 pm 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
Is there a better Java enum library than this one? http://www.codingthewheel.com/archives/ ... ource_saie
Code seems to be extremely old, can't imagine people didn't build better solutions in 10 years?


Top
 Profile  
 
PostPosted: Tue Apr 02, 2013 4:55 pm 
Offline
Junior Member
User avatar

Joined: Sun Mar 10, 2013 11:38 pm
Posts: 34
AFAIK, the 2+2/RayW evaluator has never been surpassed, but then again I'm not on the bleeding edge of the latest developments.
http://www.codingthewheel.com/archives/ ... undup/#2p2

_________________
www.bespokebots.com


Top
 Profile  
 
PostPosted: Tue Apr 02, 2013 5:19 pm 
Offline
Junior Member

Joined: Mon Mar 25, 2013 8:14 pm
Posts: 45
Good one, thanks!

Is there a Java port for the look up code?

Also the lib I linked contained some advanced stuff I don't really even understand like SAIE, is there an updated library for those?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 23 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group