Академический Документы
Профессиональный Документы
Культура Документы
// We do not want the warnings about the old deprecated and unsecure CRT functions
since these examples can be compiled under *nix as well
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
// Include libraries
#include <stdlib.h>
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <ws2tcpip.h>
#include "conio.h"
#include "pcap.h"
#include "protocol_headers.h"
// Function declarations
void packet_handler(unsigned char *param, const struct pcap_pkthdr *packet_header,
const unsigned char *packet_data); // Callback function invoked by WinPcap for
every incoming packet
unsigned char* encrypt_data(const unsigned char* packet_data, unsigned char*
app_data, int app_length); // Returns a copy of packet
with encrypted application data
void print_message_as_table(unsigned char* data, int rows_max, int columns_max);
// Prints application data
using table format
int find_key(int key, int * keys, int keys_size);
// Finds
specific key in array of keys and returns its index
if (file_dumper == NULL)
{
printf("\n Error opening output file\n");
return -1;
}
return 0;
}
int brojac = 0;
for (int i = 0; i < 25; i++)
{
bool exist = false;
char letter = letters[i];
for (int j = 0; j < length; j++)
{
if (matrix_element[j] == letter)
{
exist = true;
}
}
if (exist == false)
{
matrix_element[length + brojac] = letter;
brojac++;
}
}
}
printf("%\n");
}
if (i == app_length - 1)
{
tacno = true;
}
if (tacno == true)
{
if (app_length % 2 == 0)
{
drugi = app_data[i + 1];
}
else
{
drugi = 'X';
}
}
else
{
drugi = app_data[i + 1];
}
if (drugi == key_matrix[a][b])
{
drugi_red = a;
drugi_kolona = b;
}
}
}
getchar();
if (prvi_kolona == drugi_kolona)
{
if (prvi_red + 1 == 5)
{
encrypted_packet[app_data - packet_data + i] =
key_matrix[0][prvi_kolona];
}
else
{
encrypted_packet[app_data - packet_data + i] =
key_matrix[prvi_red + 1][prvi_kolona];
}
if (drugi_red + 1 == 5)
{
encrypted_packet[app_data - packet_data + i + 1] =
key_matrix[0][drugi_kolona];
}
else
{
encrypted_packet[app_data - packet_data + i + 1] =
key_matrix[drugi_red + 1][drugi_kolona];
}
}
else if (prvi_red == drugi_red)
{
if (prvi_kolona + 1 == 5)
{
encrypted_packet[app_data - packet_data + i] =
key_matrix[prvi_red][0];
}
else
{
encrypted_packet[app_data - packet_data + i] =
key_matrix[prvi_red][prvi_kolona + 1];
}
if (drugi_kolona + 1 == 5)
{
encrypted_packet[app_data - packet_data + i + 1] =
key_matrix[drugi_red][0];
}
else
{
encrypted_packet[app_data - packet_data + i + 1] =
key_matrix[drugi_red][drugi_kolona + 1];
}
}
else if (prvi_red != drugi_red && prvi_kolona != drugi_kolona)
{
encrypted_packet[app_data - packet_data + i] =
key_matrix[prvi_red][drugi_kolona];
encrypted_packet[app_data - packet_data + i + 1] =
key_matrix[drugi_red][prvi_kolona];
}
i++;
}
return encrypted_packet;
}