PIR/AnalyseStat/main.py

36 lines
1.8 KiB
Python

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#path à modifier en fonction de qui execute
pathASLR = "/Users/nahombelay/Documents/GitINSA/PIR/outputASLR.csv"
pathWithoutASLR = "/Users/nahombelay/Documents/GitINSA/PIR/outputWithoutASLR.csv"
df_ASLR = pd.read_csv(pathASLR)
#df_ASLR = df_ASLR.head()
df_WithoutASLR = pd.read_csv(pathWithoutASLR)
#df_WithoutASLR = df_WithoutASLR.head()
#convert hex strings to integers (not hex because takes too long)
for column in df_ASLR.columns:
df_ASLR[column] = df_ASLR[column].apply(lambda x: int(x, 16))
df_WithoutASLR[column] = df_WithoutASLR[column].apply(lambda x: str(x))
df_WithoutASLR[column] = df_WithoutASLR[column].apply(lambda x: int(x, 16))
df_ASLR["offsetCodeAddr"] = df_ASLR["startStackAddr"] - df_ASLR["startCodeAddr"]
df_ASLR["offsetLibAddr"] = df_ASLR["startStackAddr"] - df_ASLR["startLibAddr"]
df_WithoutASLR["offsetCodeAddr"] = df_WithoutASLR["startStackAddr"] - df_WithoutASLR["startCodeAddr"]
df_WithoutASLR["offsetLibAddr"] = df_WithoutASLR["startStackAddr"] - df_WithoutASLR["startLibAddr"]
if __name__ == '__main__':
fig, axs = plt.subplots(3, 2)
df_ASLR["startStackAddr"].value_counts().value_counts().plot(kind='bar', ax=axs[0, 0], grid=False, rot=0)
df_ASLR["offsetCodeAddr"].value_counts().value_counts().plot(kind='bar', ax=axs[1, 0], grid=False, rot=0)
df_ASLR["offsetLibAddr"].value_counts().value_counts().plot(kind='bar', ax=axs[2, 0], grid=False, rot=0)
df_WithoutASLR["startStackAddr"].value_counts().value_counts().plot(kind='bar', ax=axs[0, 1], grid=False, rot=0)
df_WithoutASLR["offsetCodeAddr"].value_counts().value_counts().plot(kind='bar', ax=axs[1, 1], grid=False, rot=0)
df_WithoutASLR["offsetLibAddr"].value_counts().value_counts().plot(kind='bar', ax=axs[2, 1], grid=False, rot=0)
plt.show()