Хорошо, на протяжении многих лет по этому поводу шли достаточные дебаты; и в основном результаты никогда не являются окончательными ... в основном потому, что это не имеет значения.
Для мотивированного реверс-инженера оба будут одинаковыми.
Если вы используете псевдо-исполняющие программы, такие как perl2exe, тогда будет легче «декомпилировать», чем скомпилированный C, поскольку perl2exe вообще не компилирует perl, он просто немного «скрыт» (см. http://www.net -security.org/vuln.php?id=2464; это действительно старая, но концепция, вероятно, все та же (я не исследовал, поэтому не знаю наверняка, но я надеюсь, что вы поняли мою точку зрения) )
Я бы посоветовал взглянуть на язык, который лучше всего подходит для работы, чтобы техническое обслуживание и разработка реального продукта могли быть сделаны разумно и устойчиво.
Помните, вы _can_not_ остановить мотивированного противника, вам нужно сделать это дороже, чем написать его самостоятельно.
Эти 4 должны усложнить (но опять же не невозможно) ...
[1] Вставить код шума (случайные места, случайный код), который выполняет бессмысленную математику и взаимодействие сложных структур данных (если все сделано правильно, это будет большой головной болью, если целью является обратный код, а не функциональность).
[2] Цепочка нескольких (разных) обфускаторов кода в исходном коде как часть процесса сборки.
[3] Примените защитный ключ для программного обеспечения, который предотвратит выполнение кода, если ч / б отсутствует, это будет означать, что физический доступ к данным ключа требуется до того, как может произойти остальная часть обращения: http://en.wikipedia.org/wiki/Software_protection_dongle
[4] Всегда есть защитники (например, Themida http://www.oreans.com/themida.php), которые вы можете получить, которые смогут защитить .exe после его сборки (независимо от того, как он был скомпилирован).
... Это должно дать реверсеру достаточно головной боли.
Но помните, что все это также будет стоить денег, поэтому вы всегда должны взвешивать, что именно вы пытаетесь достичь, а затем смотреть на свои варианты.
Короче говоря: оба метода одинаково небезопасны. Если вы не используете некомпилирующее средство создания perl-to-exe, в этом случае победит нативный скомпилированный EXE-файл.
Надеюсь, это поможет.