Paper 2023/123

A way of decrypting particular malware payloads found in MZPE files

Tudorică Radu
Rares Radu
Emil Simion

Back in the 90s when the notion of malware first appeared, it was clear that the behaviour and purpose of such software should be closely analysed, such that systems all over the world should be patched, secured and ready to prevent other malicious activities to be happening in the future. Thus, malware analysis was born. In recent years, the rise of malware of all types, for example trojan, ransowmare, adware, spyware and so on, implies that deeper understanding of operating systems, attention to the details and perseverance are just some of the traits any malware analyst should have in their bag. With Windows being the worldwide go-to operating system, Windows' executable files represent the perfect way in which malware can be disguised to later be loaded and produce damage. In this paper we highlight how ciphers like Vigen\`ere cipher or Caesar cipher can be extended to more complex classes, such that, when later broken, ways of decrypting malware payloads, that are disguised in Windows executable files, are found. Alongside the theoretical information present in this paper, based on a dataset provided by our team at Bitdefender, we describe our implementation on how the key to decryption of such payloads can be found, what techniques are present in our approach, how optimization can be done, what are the pitfalls of this implementation and, lastly, open a discussion on how to tackle these pitfalls.

Available format(s)
Publication info
malwareloadercrypterpackerwindowsexecutable filesvigenerecaesar
Contact author(s)
radu @ zicar info
radu rares a @ gmail com
emil simion @ upb ro
2023-02-07: approved
2023-02-02: received
See all versions
Short URL
Creative Commons Attribution-NonCommercial


      author = {Tudorică Radu and Rares Radu and Emil Simion},
      title = {A way of decrypting particular malware payloads found in MZPE files},
      howpublished = {Cryptology ePrint Archive, Paper 2023/123},
      year = {2023},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.