I have recorded my phone browsing the web with opera-mini and look at the traffic with wireshark. Im trying to understand the protocol it uses as its not familiar to me. I thought it would be some sort of socks5 protocol but its not, could it be some private encrypted protocol "driving" over tcp port 1080, but not the Socks protocol in the RFC? are there any other protocols for such interaction? The socks5 data starts with "05", but opera-mini tcp data starts with something else.. I couldnt see anything that is shared for all client-server packets or server-client packets.
What protocol Opera-Mini uses for Socket communcation?
4.3k Views Asked by buddy123 At
2
There are 2 best solutions below
1
niutech
On
The protocol has been reversed-engineered some time ago and there is even a client for Google Chrome - OMPD. Check its source (decompress crx file) to see how it works.
Related Questions in SOCKETS
- Drawing with ncurses, sockets and fork
- UDP sockets in C not working
- How can I send multiple objects over one socket in java?
- psuedo TCP multicast with os.dup2() in python?
- My get request for http is very slow
- Nodejs connect mysql socket to another host?
- HttpRequestContext vs HttpContext
- Spring based client server communication without network
- Java does not accept 2 methods with same name
- Retrieve Data From EOC(Eithernet Over coxial) device
- Ping a server without freezing the Thread
- C sockets: Exit client after all data is received
- What is the best way to send XML converted to a byte array over TCP, then translate the response back to readable XML?
- C# Winform to Connect to Device Using IP
- Java Restart a Socket
Related Questions in NETWORKING
- kernel module does not print packet info
- Packet drops in multicast when multiple instance of listner are running
- Timing packets on a traffic server
- How to use Espresso Idling Resource for network calls
- Dummynet does not match on flows
- Sending a notification from OS X to iOS
- Swift ios viewDidLoad or viewDidAppear
- Update player list on all clients on new connection
- Issues regarding multiplayer networking: input
- nmap does not show all open ports
- Getting and Sending Data between a Server and Client
- Read file from local PC from network deployed app to InputStream
- Does iOS block a URL if we couldn't connect to the URL for 'n' times?
- Is Socket.Available guaranteed to throw a SocketException on disconnect?
- android out of cell service
Related Questions in NETWORK-PROTOCOLS
- TCP congestion control - Fast Recovery in graph
- Synchronizing a current message id in a conversation between Alice and Bob
- Connectivity in Android
- How to utilize all available bandwidth with real-time data?
- A UUCP blast from the past? What's next?
- How to detect SSTP traffic?
- any existing protocol for accessing photos or pictures on a remote server
- How much data transfer does a typical http request generate on EC2?
- Determining the time to receive in object using TCP
- Android - Java connection through wifi
- WinSock recv() end of message
- How to send a GET request from a coap server to a device running outside of local network?
- Identify network error in Javascript
- Remote IP address varies when client is tethered over cell
- What is tcp_autocorking (tcp automatic corking)
Related Questions in OPERA-MINI
- Are there any debugging tools for the Opera Mini mobile browser?
- Opera Mini Jquery AJAX not loading
- opera mini doesn't resize width when changing orientation
- Why does Opera Mini sometimes click the wrong link
- Issue getting correct headers from Opera Mini
- HTML5 video tag for Opera Mini
- How to use mini opera in C#?
- Background size not working in Opera Mini despite Modernizr thinking it should
- Unable to fix a bug on Opera mini browser ( Android )
- what are the rules for making mobile friendly website?
- Does Opera Mini support Content-Encoding?
- Radiobutton issue with Opera Mini
- jQuery mobile fails in the Opera Mini browser. How to get error output?
- What protocol Opera-Mini uses for Socket communcation?
- Trigger scroll in Opera mini
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Opera Mini's communication with its proxy is encrypted with the server delivering content as Opera Binary Markup Language.
Since Opera control both the client and server here, there is no need for them to have used any existing, open protocol for client-server communication. They are free to define any protocol they like, optimising it for their use to allow faster page loads and encrypting it for user benefit and/or to protect their ability to charge network operators for their proxies.