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 answers
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
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- My server TCP doesn't receive messages from the client in C
- how is strncpy able to copy from source to empty destination?
- Python Multicast packet receiver stops receiving multicast packets when computer is connected to WiFi
- Python Client-Server Communication with Protocol
- Reversed TLS re-connection issue
- Android 13 & 14 seem to close WebSocket connection, if i put app in background, after ~20s
- Java SocketException: Connection reset,. What is the cause?
- Multipart/form-data with chunked data transfer (ICAP protocol)
- View Socket View
- Client connection timeout during Android & Windows PC communication via sockets
- Browser connect to raw sockets even possible?
- Protocol 43200 after unpacking received data
- Unity SocketIo using Best http2 plugin want to use in webgl
- How does pre-allocating a pool of SocketAsyncEventArgs objects upfront improve the performance of a server application in c#
Related Questions in NETWORKING
- How to avoid duplicates with the pull-based subscribe model?
- How to simulate CSMA/CD protocol in ns3?
- Network System - Cisco Packet Tracer
- Adhoc / mesh network not working (with and without batman-adv)
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Python Client-Server Communication with Protocol
- I registered a service in eureka which is resolving through java code. But it is not able to resolve its name when hitting through chrome or postman
- Share files from the server without data or internet usage
- Player names not synchronizing in unity Mirror Networking
- My phone can not visit the server on macos in the same local network
- Unable to ping remote websites from an ipV6 only ubuntu ec2 Instance
- Linux Networking - Routing packets from one network interface to another
- wrong output from Supernetting algorithm
- Mapping localhost port on host to docker container
- Microsoft Message Analyzer disable resolving IP address to their domain names a.k.a turn off AutoIP feature
Related Questions in NETWORK-PROTOCOLS
- Why we say "Every Fragment-Offset except the last one, must contain a multiple of 8 bytes of data. In IPv4 header
- Trouble Understanding how upgrading a request works for Web Sockets
- HTTP2_PROTOCOL_ERROR and ERR_CONNECTION_CLOSED when updating weblogic version 12 to 14
- Is TLS gRPC distinguishable from TLS HTTP2?
- How The network header is represented at the bit level
- Installing latest protocol decoders in Sigrok PulseView
- How to switch routing protocol midway from aodv to olsr in ns3?
- Using CIP in C# as the Target?
- HDLC encoding protocol
- How can server with HTTP 1.1 understand client that uses HTTP 2?
- Create Gstreamer RTSP Onvif server
- How does QUIC's multiplexing differ from that of HTTP/2 in detail
- How to test IoT devices in the context of home automation?
- How does application layer in OSI model conveys this information to Network layer if incoming data should be fragmented or not?
- How can I solve this network problem that arose in my react project when using an aws rds?
Related Questions in OPERA-MINI
- Blank page on Opera Mini (Extreme Mode Data Saving) using ngrok
- What are the poly-fills to be used to work Angular 10 in opera mini?
- XMLHttpRequest() is not working in Opera mini
- toggle button (checkbox) not working on opera mini extreme mode
- Opera Mini and XMLHTTpRequest()
- How can you pull data from an API to be used in Opera Mini?
- xml http request is not working in opera mini
- How can I fix my slideshow, it keeps loading without displaying pictures on Android
- Why is the User-Agent of Opera mini printed strangely on iPad?
- How some sites run javascript on the client side of opera mini
- Opera Mini flex not wrapping
- Creating a progressively enhanced form submission experience for clients with non-uniform JS/HTML5 support
- JS-less responsive images with GIF shown on :hover
- Is there an equivalent for setInterval() that works on opera mini?
- Detect Data saving mode in opera mini
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?
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)
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.