Is it possible to identify a protocol in a pcap file?
Yes, but this appears to be a proprietary protocol over TCP/IP.
The first four bytes of every message is a 32-bit big-endian value that specifies the length of the following bytes in the message.
The messages aren't encrypted, so you might be able to do some data carving. But if you really want to know ...
Arbitrary packets are typically not associated with a process. For established TCP sockets, this information could potentially be looked up on-the-fly, but there is no way to express a capture filter to limit filtering to a single process.
Some of the options are:
If you know that an application contacts certain IP addresses or ports, you could specify a ...
An alternative suggestion to Wireshark as of ~2018, the current Microsoft-developed solution that has superseded Microsoft Network Monitor is Microsoft Message Analyzer.
The latest build of Version 1.4 as of this post is published October 28, 2016, and the Message Analyzer TechNet Blog has gone mysteriously radio silent as of ~September 2016 after regular ...
If you can make the application use a proxy, check Fiddler.
I used stunnel recently to do the same with an android application - used the dextojar suite to take the application apart, replace the https://game.server.com URL with a http://game.server.com URL in the .dex file, re-create the .dex checksum, re-create and sign the apk, install the apk.
Use this ...
An alternative approach would be to use the browser tools or a browser extension, such as Google Developer Tools for Chrome or Web Console for Firefox. These tools will show you the entire request, response, and body of all network traffic and timeline of when connections are made. In Chrome, you can even edit the page content and review how it affects the ...
An alternative approach might be to use panda to extract the key from a trace as documented in the panda ssl tutorial. That said, the usual mitm approach is probably a bit easier to get going unless you're dealing with certificate pinning.
You can instead try injecting code into the process to dump the raw data before it is encrypted/after it is decrypted.
You can use Google's ssl_logger for that.
You need to run python ssl_logger.py -pcap log.pcap 123 with 123 being the process ID. Add -verbose to see live output.
(Note that it needs Python2 and not Python3.)
Once you are done, quit with ...
According to this StackOverflow answer, Android has a setting in Developer Options from 4.4 onwards. You first need to enable Developer Settings (if you have not done so already), then enable “Enable Bluetooth HCI snoop log”.
I have not tried this myself yet, but according to the information I could find:
Communication should be logged to a file called /...
You can find the connection string with an API Monitor tool or Debugger. However first you will need to know are you looking at .NET based executable (i.e. has it loaded clr.dll or mscorlib.dll) and how does it access the database.
To work this out you can use a tool like Process Monitor and filter on Process Name is Include and Operation is Load Image ...
I haven’t used it myself but I think com0com or one of the related projects should help
In particular, hub4com sounds promising:
The HUB for communications (hub4com) is a Windows application and is a
part of the com0com project.
It allows to receive data and signals from one port, modify and send
it to a number of ports and ...
If you're a Windows user, as a matter of dynamic analysis, you could try using an emulator like BlueStacks, then inspect your system network traffic with a program like Fiddler or WireShark.
Additionally, you could use a program like Cheat Engine to open the BlueStacks process and scan its memory for strings related to URLs. As an aside, you could ...
I'm not sure if this will solve your issue, but have you tried using Charles Proxy with SSL Proxying enabled? Charles can perform a man-in-the-middle attack and get the contents of the applications's web request if the application is not using certificate pinning.
I've only used the Mac version, but generally what you would do is install the Charles root ...
I believe the key here is "Content-Type: application/bond-compact-binary"
Have a look at https://microsoft.github.io/bond/manual/bond_cpp.html#protocols, maybe that might help. A plugin for Fiddler or ZAP Proxy would be great!
Bond protocols are pluggable, allowing application to choose the most
appropriate encoding format. Bond supports ...
There are two possibilities:
The League of Legends client uses an embedded algorithm to injectively map a club name to a club UUID.
The League of Legends client sends the club name to the server and receives the club UUID in response.
Either way, you'd be able to see what UUID-channel is eventually joined by the League of Legends client by sniffing the ...
I'm not sure it's a checksum either. FF may be used as a padding flag. Also I think your "record size" needs to be reevaluated. I see this as a series of bytes that start with
10 02 xx yy yy zz zz
x and y might be options
z looks like data or a sequence (ish)
Then the next record looks like this
10 03 xx xx
Here's an observation on the 10 03 records:
You have captured the bluetooth RFCOMM frames. These include various control fields which are handled by the bluetooth stack and are transparent to the overlying application layer. (Think serial port like communication with start/stop/parity bits being added but just over bluetooth instead.)
In your frames:
The 1st byte 0B is the address field.
The 2nd ...
Because you have 3 of 5 messages absolutely identical, and because the other two differ very little, it seems probable that the first two messages were simply captured incorrectly.
The way to try to detect that would be to do the same thing several more times to see if that pattern holds.
More generally, reverse engineering a protocol like this often ...
Looking at the website for the software vendor, it recommends that the DVR on the other end of the connection be set to "Substream, CIF or QCIF at 6-10 FPS". Those refer to the "Common Intermediate Format" and "Quarter Common Intermediate Format" respectively. They are defined within the "H.261 Video codec for audiovisual services at p x 64 kbit/s" ...
If the application in question doesn't verify SSL encryption then you can strip SSL using an intercepting proxy. However, if the application does verify SSL and throws an error if encryption is stripped, one option is to create your own SSL certificate pair and add it to your OS certificate trust store like so: