soluzka

my code

Feb 7th, 2025
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | Science | 0 0
  1. Overall, the primary data type being processed in the code is a string, but various other data types (like dictionaries and floats) are used to store intermediate results and perform calculations.
  2.  
  3. from collections import Counter
  4. import math
  5. import pandas as pd
  6. import matplotlib.pyplot as plt
  7. import seaborn as sns
  8.  
  9. # Provided data
  10. data = '3=U³\\¬¶6|cò\\u000fã£Ü\\u001bn>]UãÊOM³YWl®cÕ\\u0017«ÔñqZ­ÓZÖø\\u005cæ\\u0017ÙGµZ.ôSv²­5\\u001f;Ì͸Õ\'Ö<\\u001eYã.ËôðâøxãµtøªÓ3/VÍÆµrÜfÚczlzjÎvfñfÎÔO\\u00177iËG§tÍ£=ðÙ\\u0017챺+¼=êqÇV\\u005cG«ig\']+>geµÜñ\\u001e¶±§ÊÚx|<͸|¥ìáÚ.é\\u001bn£³¦]véeô<y¸ãÉã\\u001dò>Ö\\u001e¼Æv\'§êÌvtn6Ó¥³læ:µl\'>jélOfÇ7ÉkÌWÔ\\u001fSÕå\'§\\u001e\\u001fÉ®\\u001b§\\u001bnáx;Åô¥¶gu¦­ÊÍcÓÖÑ©¹ð¶KêÊ>\\u001b;9«ª|K¹\\u001eÜ£;.¶ÅWðø´Ü£Õæxs\\u005c®\\u005cìÌuÑÓimn²\\u001f6Ö\\u005c]VÓ¬êÆôðkcm\\u005cÚ¦|iv\\u001døUOK³.>xm6vf¹en²vMñ.OSkS:sM¶´\\u001f<;ð;\\u001e[q;67Myj]VÚcz²µM§Å³±¬O+òtm3­¦©ÓGn9y<ÇZ;\\u001eÅÚ>ÑÓØ²¹\\u001eÚY/Gãð³\\u001by£zÒÎNµxø\\u005c­Uám\\u001eÕVκ67.z¼rÜc¹l³ÒñãNγ.Çfº9ñâ®l±¶<¶GÙ\\u0017§isêÚ¦øt«¥/él7:Õ¸ñ5>lñ[3æØ|SnGѵ:>â;Ôj>-<WGN|¥W5uSã©mZømÇ3­S[¥v+m²¼VUìrÕxãYÙMWìc>3ÖØø¬Õ+Ó\\u001bmZÙÃ\\u001dØÍc«9ñæVËÌW<ÕY³:êqéiGÓ\\u005cÜéÖZgSÙNéÌnÌ=qø®ÃÓ6^<\\u0017ÍK[¥å\\u001dæÔWSs:®jvÊ^j«:ÍGñSåÑ[\\u005cÕ^\\u001b^¦Ú\\u000fÇrÇSÚ´yqì\\u001dã´yɵ+>^j]Ysé¼ä;£­ZÇzrãV/ÅÓNvM«Ëi].§±;:ñ6ͬô-ºÅò±WÌ^Åy:Nvè­\\u000f¼cÖ5^ª\\u001f-ÖY=KñGÓ-Õ´ØUnѶªòÔôr¼<«.W5åm¥|Ñãª>fòØ7âñM§9^\\u000f^Åã±|eêÑÓr;¬ôV[SÇtÇ5znµ:7Mnq\\u001f6|ÆÍæK¹xã¸]+³NÇ£áñcÙÆìÊ[yK¼Nãx;¶[ÙÌkâ³\\u001eÅÜ´]-[Îr­Sò\\u001f\'>Ã|:mÆ|²ÉØ«£Ü£¶´Ír§3Ç<¶xñÊ­¦/âê<ôVµÒ/Mu+òاªyj¹KÕfná|\\u001e­t\\u001flkÅkzNôÚtÌÔêjøÃËVu´uÌÙ|¼èêèÜ´m馫£ºq츹+ÖèÜG\\u000fÜèË\\u001b\\u001bºxvÑg´OxËÒ\\u001f<[MÚô¥zÑ/âÖÑ­MæU­Y|5µ6¶xÓ©\\u001e³â®ä|Zg/á§rW©§\\u005cÙØ|ªn-Õª>MÇÑ/ªµtÎr¶Ø\\u001fâò[Ô\\u001f­iÇä³­´­µÖÌn¬mø3s3|jå¼É§\\u001bu¥ø©Oz<7|ÃÓf®\\u001bø\\u001bê3g.Ó±.¼eueô©ñg\\u001dܱÚjWÆ7ry-ê²/Ìê+ÜÔ\\u001fìf[ðÍS娼ܱåeéWjOÃOÒÊ7è]Æ6­Õغ6s;ÃñG˱éMãKºZæÚ\\u001e¹GêU\\u001f|èrv¸vqÖVô9nnÆè\\u001fÅ\\u001fKºµ¬º\\u001eµð/KW9ÙjÎU6ìÉ\\u001f\\u001eÕG;èÜi¼\\u001e^ávù£=¥3Ü3ktytºKÎòtÓ\\u000fº:^-µÑåfµYváòONO-ÙUµÆË3µ±¶©n<§ò'
  11.  
  12. def analyze_data(data):
  13. frequency = Counter(data)
  14. total_chars = sum(frequency.values())
  15. expected_frequency = total_chars / len(frequency)
  16. entropy = -sum((freq / total_chars) * math.log2(freq / total_chars) for freq in frequency.values())
  17. print('Entropy:', entropy)
  18. print('Character Frequency:')
  19. for char, freq in frequency.items():
  20. print(f'{char}: {freq}')
  21.  
  22. # Known file headers (magic numbers)
  23. file_signatures = {
  24. b'\x89PNG': 'PNG Image',
  25. b'GIF8': 'GIF Image',
  26. b'\xFF\xD8': 'JPEG Image',
  27. b'%PDF': 'PDF Document',
  28. b'PK': 'ZIP Archive',
  29. b'RIFF': 'WAV/AVI File',
  30. b'\x7FELF': 'ELF Executable',
  31. b'\x42\x5A': 'BZ2 Compressed',
  32. }
  33.  
  34. # Check for file signatures
  35. for signature, file_type in file_signatures.items():
  36. if data.encode('utf-8').startswith(signature):
  37. print(f'Identified file format: {file_type}')
  38. return
  39.  
  40. print('File format could not be identified.')
  41.  
  42. # Frequency Test
  43. freq_deviation = {char: freq - expected_frequency for char, freq in frequency.items()}
  44. print('Frequency Test Deviation:')
  45. for char, deviation in freq_deviation.items():
  46. print(f'{char}: {deviation}')
  47.  
  48. # Runs Test
  49. runs = 0
  50. last_char = None
  51. for char in data:
  52. if char != last_char:
  53. runs += 1
  54. last_char = char
  55. print(f'Runs Test: {runs} runs found.')
  56.  
  57. # Chi-Squared Test
  58. chi_squared = sum((freq - expected_frequency) ** 2 / expected_frequency for freq in frequency.values())
  59. print(f'Chi-Squared Test Statistic: {chi_squared}')
  60.  
  61. # Extract features
  62. features = {'entropy': entropy}
  63. features.update(frequency)
  64. df = pd.DataFrame(list(features.items()), columns=['Feature', 'Value'])
  65. print('Extracted Features:')
  66. print(df)
  67.  
  68. # Visualize character frequencies
  69. plt.figure(figsize=(12, 6))
  70. sns.set_style('whitegrid')
  71. sns.barplot(x=list(frequency.keys()), y=list(frequency.values()))
  72. plt.title('Character Frequency Distribution')
  73. plt.xlabel('Characters')
  74. plt.ylabel('Frequency')
  75. plt.xticks(rotation=90)
  76. plt.tight_layout()
  77. plt.show()
  78.  
  79. # Visualize entropy
  80. plt.figure(figsize=(8, 4))
  81. sns.set_style('whitegrid')
  82. plt.plot([entropy], marker='o')
  83. plt.title('Entropy Visualization')
  84. plt.xlabel('Segment')
  85. plt.ylabel('Entropy')
  86. plt.grid()
  87. plt.show()
  88.  
  89. # Call the analyze_data function
  90. analyze_data(data)
Tags: my code
Advertisement
Add Comment
Please, Sign In to add comment