Domanda Bypassare sistema anti login in un browser game

Matty80

Utente Bronze
18 Settembre 2020
45
11
0
25
Ultima modifica:
Salve a tutti, ero indeciso sulla sezione dove postare la domanda e alla fine ho optato per questa sezione ( perdonatemi se è sbagliata ).
Gioco dal 2009 ad un browser game chiamato ikariam. Creai all'epoca un semplicissimo bot per loggare sul gioco e automatizzare qualche operazione.
Da qualche anno a questa parte, sto provando per scopi puramente personali, a cercare di bypassare il loro nuovo sistema che sembra impedire o rendere complicato l'accesso via web browser ( webbrowser, webview2 ) e non c'è stato giorno in cui io non abbia provato tonnellate di soluzioni.

In poche parole, quando faccio l'accesso da chrome per esempio, non appena clicco su entra sul gioco si apre un'altra pagina che poi caricherà la schermata principale del gioco.
Quando si prova questa azione da webbrowser invece, si apre una pagina di edge dove si carica la pagina.
Ho dunque provato ad intercettare la nuova pagina per aprirsi in un secondo controllo webview2 , ma anche questa procedura stranamente, non ha funzionato..
Sto lavorando con .net7+ in vb.net per winforms app con il seguente codice:
Codice:
Imports Microsoft.Web
Imports Microsoft.Web.WebView2.Core

Public Class Form1
    Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        AddHandler bro.CoreWebView2InitializationCompleted, AddressOf OnCoreWebView2InitializationCompleted
        Dim env = Await CoreWebView2Environment.CreateAsync(Nothing, Nothing, Nothing)
    End Sub

    Private Sub OnCoreWebView2InitializationCompleted(ByVal sender As Object, ByVal e As CoreWebView2InitializationCompletedEventArgs)
        AddHandler bro.CoreWebView2.NewWindowRequested, AddressOf OnNewWindowRequested
    End Sub

    Private Sub OnNewWindowRequested(ByVal sender As Object, ByVal e As CoreWebView2NewWindowRequestedEventArgs)
        e.Handled = True
        bro2.Source = New Uri(e.Uri)
    End Sub

    Private Sub bro2_NavigationStarting(sender As Object, e As CoreWebView2NavigationStartingEventArgs) Handles bro2.NavigationStarting
        bro2.CoreWebView2.Settings.IsScriptEnabled = True
    End Sub
End Class
La pagina web la imposto nella proprietà source del controllo webview.

bro e bro2 sono i due WebView2. Questa è una gif che ho registrato per mostrare prima il processo su un browser normale e poi sul webview





come potete vedere da chrome funziona perfettamente, da webview2 invece continua a caricare infinitamente...
C'è un modo secondo voi, di poter loggare usando il webview? Vi ringrazio e mi scuso se non sono stato chiaro abbastanza e/o se ho postato la domanda nella sezione sbagliata.

p.s. Vorrei chiarire che ciò che vorrei fare è puramente a scopo didattico, per imparare sempre più e tendo ad intestardirmi quando sono di fronte a dei problemi come questo a cui dopo qualche anno non ho ancora saputo dare risposta. Il mio scopo non è dunque creare un bot ( che potrebbe andare contro le regole del gioco ), anche perchè se volessi, potrei tranquillamente usare qualche macro per chrome che farebbe la stessa cosa di un bot in vb.net

Vi ringrazio
 
Ciao,
perché non utilizzi Selenium?
In genere quando mi trovo ad affrontare operazioni simili dove non posso utilizzare direttamente delle chiamate alle API utilizzo Selenium che ti apre proprio una finestra del browser (Chrome, Firefox, ecc...) in cui è possibile interagire con gli elementi presenti in essa
 
Ciao,
perché non utilizzi Selenium?
In genere quando mi trovo ad affrontare operazioni simili dove non posso utilizzare direttamente delle chiamate alle API utilizzo Selenium che ti apre proprio una finestra del browser (Chrome, Firefox, ecc...) in cui è possibile interagire con gli elementi presenti in essa
Ti ringrazio, non lo conoscevo. Lo sto usando da un paio di giorni. La pagina automatizzata di chrome, a dei controlli terzi, potrebbe risultare una pagina regolare di chrome o del tutto automatizzata da un bot?
 
Ti ringrazio, non lo conoscevo. Lo sto usando da un paio di giorni. La pagina automatizzata di chrome, a dei controlli terzi, potrebbe risultare una pagina regolare di chrome o del tutto automatizzata da un bot?

Il browser è a tutti gli effetti Chrome e non ci sono metodi standard per distinguere bot da persone però per via dell'attuale implementazione del chromedriver ci potrebbero essere variabili o altri segni rivelatori (non documentati) leggibili da javascript che tradiscono la presenza del sistema di automazione. Comunque è un controllo non così comune, nella maggior parte dei siti apparirai come un normale utente con chrome. Prima di passare alla ricerca delle contromisure verifica se effettivamente il controllo viene eseguito dal gioco in questione, se fosse il caso allora approfondisci su google cercando selenium detect
 
  • Mi piace
Reazioni: Matty80
Ti ringrazio, non lo conoscevo. Lo sto usando da un paio di giorni. La pagina automatizzata di chrome, a dei controlli terzi, potrebbe risultare una pagina regolare di chrome o del tutto automatizzata da un bot?
Oltre a quanto indicato da JunkCoder, se hai il timore di essere "intercettato" da un controllo di terze parti puoi provare a vedere la versione "undetected" di Chrome (https://github.com/ultrafunkamsterdam/undetected-chromedriver). C'è sicuramente la versione per python, non sono sicuro che ci sia una controparte per altri linguaggi
 
@JunkCoder @DidyMond sto ancora sperimentando con Selenium, ma ho subito notato che se faccio l'accesso al gioco tramite google, nella finestrella che si apre dove si scelgono gli account, c'è scritto

Codice:
Impossibile eseguire l'accesso
Questo browser o questa app potrebbero non essere sicuri. Scopri di più
Prova a utilizzare un altro browser. Se usi già un browser supportato, puoi riprovare ad accedere.

Non capisco se si tratti di una mera scelta da parte dei devs di selenium di aprire una pagina automatizzata o se questo è l'unico modo per automatizzare le pagine di chrome, ovvero automatizzandolo si, ma avendo pur sempre delle limitazioni.
 
@JunkCoder @DidyMond sto ancora sperimentando con Selenium, ma ho subito notato che se faccio l'accesso al gioco tramite google, nella finestrella che si apre dove si scelgono gli account, c'è scritto

Codice:
Impossibile eseguire l'accesso
Questo browser o questa app potrebbero non essere sicuri. Scopri di più
Prova a utilizzare un altro browser. Se usi già un browser supportato, puoi riprovare ad accedere.

Non capisco se si tratti di una mera scelta da parte dei devs di selenium di aprire una pagina automatizzata o se questo è l'unico modo per automatizzare le pagine di chrome, ovvero automatizzandolo si, ma avendo pur sempre delle limitazioni.
Hai già provato con la versione Undetected?
Qua sembra esserci un'implementazione in c#: https://github.com/fysh711426/UndetectedChromeDriver