Open Side Menu Go to the Top

02-21-2008 , 05:06 AM
This is a question to the programmers among us...

I have coded a hand evaluator that returns my potential "all-in" win %. It has proven very handy for making marginal calls and my game has improved by using it. The downside is that i have to enter the cards manually which makes me look like an intentional slow roller and manual entry is wayyy too slow for playing Turbo sit n gos. So my question is: how do i auto-detect the cards without using screen graphics? Can i use ReadProcessMemory() API to view the hand history string before it gets dumped to a text file? What methods to you use?
Reading from table/API/IPC/ReadProcessMemory() Quote
Reading from table/API/IPC/ReadProcessMemory()
150% up to $2,000 Welcome Bonus on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
Reading from table/API/IPC/ReadProcessMemory()
02-21-2008 , 05:23 PM
Its against the TOS of almost every pokerroom to use a software that automates your play.
Reading from table/API/IPC/ReadProcessMemory() Quote
02-21-2008 , 06:05 PM
Quote:
Originally Posted by birchy
Can i use ReadProcessMemory() API to view the hand history string before it gets dumped to a text file?
If you want to try to get cards using ReadProcessMemory(), then you can see how this is done for Party from my old FPHG 0.x source:

http://www.jukofyork.com/FreePHG_v0_07c.zip

I've no idea if the same method will work on any other sites though, but you can always give it a try and my source should be a pretty good starting point.

Juk
Reading from table/API/IPC/ReadProcessMemory() Quote
02-21-2008 , 06:09 PM
Quote:
Originally Posted by Savaron
Its against the TOS of almost every pokerroom to use a software that automates your play.
I don't think he said anything about automating his play, but it does sound like he's trying to make a "real-time helper". PokerStars still hasn't posted anything about their new policy, so until they do it's still acceptable to use these (hopefully that will change soon).

Juk
Reading from table/API/IPC/ReadProcessMemory() Quote
02-23-2008 , 11:59 AM
First of all, i'd like to point out that i am making a "live" odds calculator. Not much point in getting into the ethics debate because in comparison to programs like Poker Tracker, Poker Office and every other "allowed" app on http://www.pokerstars.com/poker/room/prohibited, my simple calculator won't be giving me much of an edge. I don't really agree with helper programs but they are so common that we have to use them in order to remain competitive.


JukOfYork, thanks for your useful reply. I'm coding in VB6 and have managed to read the memory of another VB6 app that i compiled purely for testing purposes. I now have a couple more questions:

1) I've used GetSystemInfo() as per your example and from this i can get the range of memory addresses for the pc. My question is: is it possible to get the memory base address of the actual process we are scanning?

2) My pc has 2gb of RAM and looping through all that is taking a lot of time. Stepping through it in chunks of 4096 has improved speed but to be of any use, i need to be able to read the table within a few seconds. Is this possible with ReadProcessMemory() or should i be seeking alternative methods of reading the table?

Reading from table/API/IPC/ReadProcessMemory() Quote
02-23-2008 , 11:49 PM
What site are you targetting? and why is reading graphics not an option?
Reading from table/API/IPC/ReadProcessMemory() Quote
02-24-2008 , 10:24 AM
I haven't decided which site to support yet as i have many accounts but it will be the one that is easiest to work with. Using the table graphics is doable but it's so kludgy and because i want to calculate pot odds, i would need a massive comparison library to cover every possible combination. The only exception is if i choose a site where the hand history is displayed in the chat window - then i would need a "graphical text to string" function.

My ReadProcessMemory() code is now working well against my own apps, although i've not yet tried it on a poker game. For reference, i managed to get the VirtualQueryEx() API working in VB6 which has improved speed significantly.

Reading from table/API/IPC/ReadProcessMemory() Quote
03-05-2008 , 03:46 AM
No joy i'm afraid. My code works perfectly on several different apps BUT it can't find the hand histories in my poker software. I've noticed that there are quite a few areas that fail one or more of the following:

MBI.lType = MEM_PRIVATE
MBI.State = MEM_COMMIT
MBI.AllocationProtect = PAGE_READWRITE
MBI.Protect = PAGE_READWRITE

I'm not really sure what is going on. Can anyone recommend a memory reading program that will allow me to verify IF the memory is actually readable? Am i right to assume that the poker software might have implemented measures to stop the use of ReadProcessMemory?
Reading from table/API/IPC/ReadProcessMemory() Quote
Reading from table/API/IPC/ReadProcessMemory()
150% up to $2,000 Welcome Bonus on CoinPoker
Join the action now
Daily Rewards • Splash Pots • CoinRaces
Reading from table/API/IPC/ReadProcessMemory()

      
m