Jump to content

Kā paņemt datus no aplikācijas, kurai nav API?


Pokerists
 Share

Recommended Posts

Labdien!

 

Ja pareizi saprotu, ir aplikācijas/mājaslapas, kurām ir API piekļuve, tādā veidā ļaujot 3rd party izstrādātājiem strādāt ar šo aplikāciju. Man iteresē, kā dabūt datus no aplikācijām, kurām nav šīs API piekļuves. 

 

Tīri kā piemērs: Man ir atvērta kāda desktop aplikācija (šajā gadījumā windows kalkulators). Kādu metodi es varētu izmantot, lai noteiktu, kur atrodas reizināšanas (X) poga pēc x un y koordinātēm, attiecīgi šajā atvērtajā logā?

 

Par atbildēm, paldies jau iepriekš! :)

 

apps.59013.9007199266248474.a82d7944-e16

Labots - Pokerists
Link to comment
Share on other sites

Citēt

In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer.

 

Un tagad tu jauc kopā 2 dažādus API.

1. ir datu piegādei un komunikācijai. Jebšu, aplikācijas ir frontend un api pusē ir backend. Šis variants pa lielam ir slānis virs datubāzes.

2. api kā komponentes un gatavi bloki dizainiski un funkcionāli, kas neapstrāda ievades/izvades datus no datubāzes. Šis ir vairāk kā pakotnes un ietvari izstrādatajiem.

 

Ceru, ka saproami izstāstīju domu.

 

Bet ja tu gribi meklēt kādu informāciju, tad lasi atmiņas adreses un skaties, kas un kā mainās un mēgini izsekot darbības. Ja gribi saprast, kā atas stradā, nevis tikai izvilkt datus, tad dekompilē kodu un skaties, kā uzsrakstīts.

 

Link to comment
Share on other sites

Ja no Windows programmām, tad AutoHotkey ControlGetPos + WinSpy? Ja interesē "robotika", tad pa lielam jebkurš no šiem rīkiem vai arī UiPath, kam ir bezmaksas Community Edition.

Ja no mājas lapām, tad kaudze citu risinājumu.

 

Atminos kā vienam biedram te taisīju robotu, kas spēlē ruleti viņa vietā (AutoHotkey, Python + Selenium, OCR) - bija jautri.

Labots - itanium
  • Patīk 1
Link to comment
Share on other sites

Un no random web api datus tik viegli nepaņemsi lielākajā daļā gadījumu, bet nu vari atpakot apk un caur dev tools skatīties connections pie katra pieprasījuma. Uz datora programmām WireShark.

Link to comment
Share on other sites

Pokerists
pirms 4 stundām , Chewie teica:

Bet ja tu gribi meklēt kādu informāciju, tad lasi atmiņas adreses un skaties, kas un kā mainās un mēgini izsekot darbības. Ja gribi saprast, kā atas stradā, nevis tikai izvilkt datus, tad dekompilē kodu un skaties, kā uzsrakstīts.

 

 

Paldies, ka izskaidroji par API. Patiešām biju sācis jaukt 2 dažādas lietas. Ja pareizi sapratu, ar atmiņu adresēm princips ir līdzīgs kā ar cheat-engine, kad nodefinē kādu lielumu, un tad skaties atmiņas adreses, kas ar to corespondo.

 

pirms 2 stundām , itanium teica:

Atminos kā vienam biedram te taisīju robotu, kas spēlē ruleti viņa vietā (AutoHotkey, Python + Selenium, OCR) - bija jautri.

 

Caur šīm skruptu programmām, patiešām, būtu viegli izveidot botu, bet šoreiz bots nav tas, ko es plānoju taisīt.

 

Tīri intereses pēc par to čali, kuram taisīji ruletes botu. Ne jau tur bija martingeila sistēma? Uzlieku uz sarkana - uzkrīt melns - 2x lielāku summu uz sarkana - uzkrīt melns - atkal 2x lielāku summu, kamēr uzkrīt sarkans. Ja tā, tad RIP viņa bankrollam. :D

 

pirms 1 stundas , ieleja teica:

 

lai kas ar šo arī būtu domāts, cilvēka izvēlētais sevis nosaukums uzvedina uz visai acīmredzamām konsekvencēm

 

meklējot pēc "poker playing bot" ir visādas interesantas lietas, bet jāatceras, ka:

 

https://en.wikipedia.org/wiki/Computer_poker_player#House_enforcement

 

 

Kādu laiku atpakaļ, patiešām, bija interese par pokera botu, bet secināju, ka man īsti nebūs pa spēkam tādu uztaisīt, jo pagājuši jau tie laiku, kad varēji spēlēt ar pre-determened gameplanu vai pat visādām tabulām. Tagad, lai būtu profitabls, jābūt ir dinamiskam, bet lai sakodētu visus iespējamos scenārijus, un kā tajos rīkotos, darba ir utsutsū, un pēc tam finetunning tam visam - forget about it. :D Bet tīri teorētiski, ar capchām ir salīdzinoši vienkārši. Kad tiek veikta capchu pārbaude, tās tiek atvērtas jaunā logā. Domāju, nav grūti uzbliezt skriptu, kas dod kada veida skaņas signālu, kad ir atvērti vairāk logi, nekā bija paredzēts. Mīnuss, kaut kur tuvumā visu laiku jābūt cilvēkam, kas būtu gatavs tādā gadījumā aizpildīt capchu. Par paša pokera clienta spyware gan es nemācēšu teikt.

Link to comment
Share on other sites

Pirms 7 minūtēm , Pokerists teica:

Tīri intereses pēc par to čali, kuram taisīji ruletes botu. Ne jau tur bija martingeila sistēma? Uzlieku uz sarkana - uzkrīt melns - 2x lielāku summu uz sarkana - uzkrīt melns - atkal 2x lielāku summu, kamēr uzkrīt sarkans. Ja tā, tad RIP viņa bankrollam. :D

+- tā pati. Par to viņu arī brīdināju. Mani gan tas īsti neskar, jo par padarīto savu saņēmu :)

 

Pirms 7 minūtēm , Pokerists teica:

Caur šīm skruptu programmām, patiešām, būtu viegli izveidot botu, bet šoreiz bots nav tas, ko es plānoju taisīt.

Nu, tad tevis dotajam piemēram varētu derēt mans pirmais ieteikums. Ko gan tālāk ar tām koordinātēm vēlies darīt mums nav ne jausmas.

Labots - itanium
Link to comment
Share on other sites

Jā... ja aplikācija ir uz winduļa, tad kā jau itanium teica.

Katra podziņa(ar retiem izņēmumiem), katrs ievadlauks ir kā logs, kurā vari visu nolasīt. Bet nu šitas variants būs visai smags reverse enginering variants. Ja aplikājijai API nav un ir vajadzība ar to integrēties - tādu aplikāciju vienkārši norauj podā. Savādāk var sanākt visādi datu validācijas un citi pārsteigumi... piemēram, izleks validācijas paziņojums, bet aplikācijā tas nav paredzēts, un sākas ziepes. Ja nav API - azimirsti un miers...

Link to comment
Share on other sites

Pokerists

Ko darīšu ar koordinātām? Protams, ka pokeristam ar pokeru vien viss grozās. :D Ideja tāda - PokerStars saglabā hand histories txt failā, un nav aizliegts 3rd party softiem ar viņu darboties. Es šobrīd izmantoju Heads Up Display (HUD) no PokerTracker. HUD dod informāciju par spēlētājiem, kas ar Tevi sēž pie galda. Respektīvi cik bieži viņi callo, foldo c-betto utt. Vizuāli tas izskatās kā overlaying logs pie spēlētāju nikiem ar visādiem cipariem, kas simbolizē doto informāciju (skatīties apakšējā attēlā). 

 

fa0jec.jpg

 

HUD problēma ir, ka viss tiek norādīts pēc vidējā aritmētiskā, bet ir tāda lieta kā spēles flows, ko online profi bieži vien overlooko. Es gribu uzbliezt vienkārsu programmu, kas skaitītu foldus katram spēlētājam, jeb cik reizes šis spēlētājs ir nofoldojis pēc kārtas tieši pie šī galda, un šo informāciju attēlot līdzīgi kā HUD to dara. 

 

Pats skaitītājs ir vienkāršs, un to es mierīgi varu Javā uzbliezt. Problēmas sākas daļā, kur es vizuāli vēlos šo info parādīt. Tajā txt failā parādās spēlētāja niks. Es vēlos, lai programma atrod pēc x un y koordinātām kur pie galda šis spēlētājs ar šo niku atrodas, un tieši šajās kordinatas (vai arī mazliet piekoriģējot), arī uzlikt tādu overlaying logu, kur rādas, cik reizes pēc kārtas viņs ir pre-flopā nofoldojis. Tajā pašā laikā programmai jāstrādā pietiekami efektīvi, jo paralēli ir atvērti daudz logu, kuri viens otru nosedz.

Link to comment
Share on other sites

Ja izdodas nolasīt tos spēlētāju vārdu elementus un atrast tiem koordinātes, izmantojot to WinSpy, tad uz ekrāna parādīt informāciju var arī ar to pašu AutoHotkey, piemēram, ToolTip.

Pārvaldīšana pa vairākiem logiem būs gan pašam jāapraksta.

 

  • Patīk 1
Link to comment
Share on other sites

Python + Tensor flow + daudz maģijas= bots, kas spēlēs ļoti labi

Bet! Vienigais, kā tu viņu varēsi apmācīt ir paterējot daudz laika ievacot spēļu informāciju.

  • Patīk 1
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...