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()