Applicable Versions | NetSim Standard | NetSim Pro |
The payload of the packet is added to the application layer while generating the packet. NetSim adds its own payload to the packet as per the packet size specified in the application properties. However, the payload can be modified by the user by reading from a string, file, etc.
NOTE: In this example, the payload of a packet is modified by reading from a string. The steps involved may vary between different versions of NetSim. Choose the appropriate section of this article, as per the version of NetSim.
Applicable Releases | v11.1 | v12 | v13 |
STEP 1: Create a string containing your data just before the function copy_payload()
For example,
const char custom_data[]= "This is to demonstrate how users can add their own payload to the
the packet. The payload will further be encrypted if encryption is enabled";
STEP 2: Inside the for loop in the function copy_payload(), make the modifications as given below (we have commented of the existing code and added the code shown in red) :
if (payload)
{
size_t custom_data_len = strlen(custom_data);
for (i = 0; i < *payload; i++)
{
/*if (info->encryption == Encryption_XOR)
real[i] = xor_encrypt('a' + i % 26, 16);
else
real[i] = 'a' + i % 26;*/
if (info->encryption == Encryption_XOR)
real[i] = xor_encrypt(custom_data[i%custom_data_len], 16);
else
real[i] = custom_data[i%custom_data_len];
}
..
STEP 3: After the source code is modified, right-click on the Application project and select rebuild. After a successful build, NetSim will automatically take care of linking the modified source code with the simulations performed.
STEP 4:To view the payload of the packet, Wireshark can be set to online in the Node properties. For instance, the user can create a simple scenario in Internetworks with two Wired Nodes connected to a router. Set an application between the two nodes. In either of the Nodes right click and select properties. In the global properties set Wireshark to online and run the simulation.
Applicable Releases | v10 | v11.0 |
STEP 1: Create a string containing your data just before the function copy_payload()
For example,
const char custom_data[]= "This is to demonstrate how users can add their own payload to the
the packet. The payload will further be encrypted if encryption is enabled";
STEP 2: Inside the for loop in the function copy_payload(), make the modifications as given below (we have commented of the existing code and added the code shown in red) :
if (payload)
{
size_t custom_data_len = strlen(custom_data);
for (i = 0; i < *payload; i++)
{
/*if (info->encryption == Encryption_XOR)
real[i] = xor_encrypt('a' + i % 26, 16);
else
real[i] = 'a' + i % 26;*/
if (info->encryption == Encryption_XOR)
real[i] = xor_encrypt(custom_data[i%custom_data_len], 16);
else
real[i] = custom_data[i%custom_data_len];
}
..
STEP 3: After the source code is modified, right-click on the Application project and select rebuild. After a successful build, replace the newly built libApplication.dll file (can be found in the DLL folder created inside the Simulation directory) in the bin folder of NetSim after renaming the original libApplication.dll file to say, libApplication_original.dll as a backup.
STEP 4:To view the payload of the packet, Wireshark can be set to online in the Node properties. For instance, the user can create a simple scenario in Internetworks with two Wired Nodes connected to a router. Set an application between the two nodes. In either of the Nodes right click and select properties. In the global properties set Wireshark to online and run the simulation.
During the simulation, Wireshark will automatically execute and will display the packets captured in the wired node. One can view the packet payload in the pane at the bottom, by clicking on the corresponding packet.
Users can also change the payload of the packet by reading content from a file.
Result and Analysis
During the simulation, Wireshark will automatically execute and will display the packets captured in the wired node. One can view the packet payload in the pane at the bottom, by clicking on the corresponding packet.
In a similar way, users can also change the payload of the packet by reading content from a file.