Acat: Automatic Identification of Communication Between Assembly-Level Execution Traces - YouTube

Channel: unknown

[0]
This is a video of performing communication analysis of two assembly execution traces.
[1]
A project named "dual trace" was created.
[5]
All required data for analysis are placed in the project "dual trace".
[11]
The executable files (.dll) of the systems where the programs of the captured traces were running.
[24]
Client and Server were two programs communicating with each other.
[32]
File "communicationMethods.json" contains the functions descriptors of the communication methods need to be analyzed.
[42]
The communication method of interest in this demo is "Named Pipe".
[49]
There are 8 system function descriptions for the communication method "Named Pipe".
[58]
Each function contains input parameters and output parameters descriptions.
[82]
Now, I am opening the trace of the client program.
[85]
"Client.trace" is displayed in the trace view.
[87]
I am opening the trace of the server program as the dual trace of the opened "Client.trace".
[91]
Now both "Client.trace" and "Server.trace" are displayed in the trace view parallelly.
[97]
I need to load the corresponding .dll file of "Named Pipe" for both traces before I can perform the communication analysis operations.
[100]
I activated "Client.trace" by putting the cursor in its trace view.
[104]
I am loading the "kernel32.dll" for "Client.trace".
[113]
I activated "Server.trace" by putting the cursor in its trace view.
[116]
I am loading the "kernel32.dll" for "Server.trace".
[123]
After loading .dll files for both traces, I can perform the analysis operations.
[127]
Two analysis features are provided: "Stream Extraction" and "Communication Identification".
[130]
I perform the "Stream Extraction" operation first.
[132]
A list contains all the communication methods provided in the file "communicationMethods.json" prompted out.
[134]
I choose the communication method "Named Pipe" and click "OK" to start the analysis operation.
[139]
The extracted streams for both traces are shown in the left table in "Communication view".
[142]
One stream was identified from "Client.trace" and two streams were identified from "Server.trace".
[150]
All function call events in a stream are listed.
[167]
I perform the communication identification operation.
[171]
I selected "Named Pipe" as the communication method to analyze.
[173]
The identified communications are shown in the right table in the "Communication view".
[177]
Only one communication was identified from these two traces.
[178]
This communication consists of "Stream F8" from "Client.trace" and "Stream F4" from "Server.trace".
[183]
The list of the function call events also provided in the communication identification result.
[202]
The function call events are navigatable to the views.
[212]
I clicked a sent event in "Client.trace", the "Trace view" and "Memory view" updated immediately.
[217]
The sent message "This is a test." is shown in the "Memory view".
[220]
Use the right-click menu "Go the end of the function" to navigate the message received function call events.
[226]
The received message "This is a test." is shown in the "Memory view".
[231]
These two navigations from two function call events show how the message "This is a test." being transmitted from "Client.trace" to "Server.trace".
[246]
The message "This is the answer." was transmitted from "Server.trace" to "Client.trace".
[268]
The irrelevant stream or communication entries can be removed from the result list.