3

I am trying to use perl -MO=Deparse to get readable source code from encrypted Perl files.

The Perl script I'm trying to deparse starts with use Filter::Crypto::Decrypt;.

The error I'm getting is:

Can't run with Perl compiler backend at /System/Library/Perl/5.18/XSLoader.pm line 95. 
BEGIN failed--compilation aborted at /Library/Perl/5.18/darwin-thread-multi-2level/Filter/Crypto/Decrypt.pm line 37.

When reading this webpage, it says:

Can't run with Perl compiler backend
(F) The encrypted Perl file is being run by a perl with the Perl compiler backend enabled, e.g. perl -MO=Deparse file. This is not allowed since it may assist in retrieving the original unencrypted source code.

If I understand this correctly, then this is a security measure to prevent people from doing exactly what I'm trying to do. Correct? Is there any way to override this?

perror
  • 19,083
  • 29
  • 87
  • 150
TeddyBones
  • 33
  • 4

1 Answers1

2

Since this is an intended prevention and there's no technical limitation behind this error message, it should be easy enough to just patch out the explicit check in the perl executable. You could then have your own version of perl that allows the decryption of the perl program and exposes the original source code.

NirIzr
  • 11,765
  • 1
  • 37
  • 87