PbGuard - protect PowerBuilder applications against decompilers

[ Home ]

This product is discontinued. Read more


PbGuard is a command line utility that implements encryption of PowerBuilder applications to protect them against decompilers or unauthorized modifications.

Key features:

  • Support versions of PowerBuilder from v.5 to v.12.5 (classic)
  • Support the p-code (PBD) and partially the machine code (DLL) targets
  • The program source code is not changed to support protection. PbGuard protects compiled executables and libraries (the source code is not even needed).
  • Each encryption uses a unique generated encryption key, so that no two protected programs would have the same key.
  • Support reusing the key for applications sharing their libraries.
  • Support adding encrypted PBDs to library list at runtime .
  • Protected program does not require any additional external DLLs


  • PbGuard itself and programs protected by it can only work under Windows 200X, XP, Vista, 7. (Windows 9X series are not supported)
  • .Net targets are not supported

Why protect PowerBuilder applications?

In the past, PowerBuilder developers were not worried much about protecting their applications from cracking and source code theft, as PowerBuilder had its own undocumented format of executable files and P-code, and there were no tools which were able to produce the source code from the p-code. In addition, each new version of PowerBuilder had new format of p-code. So the possibility of unauthorized access to source code and analysis of the protection code had been seriously limited.

However, in recent years, a few decompilers were introduced, allowing automatic conversion of the compiled libraries (PBD / DLL) to PowerScript code. At the moment, there are decompilers for all existing versions of PowerBuilder. Moreover, free demo versions of the decompilers can be easily found on the Internet, and they allow viewing the source code as well. Decompilers made the hacking of protection code trivial and accessible to almost any attacker, even without specific knowledge of the internals of PowerBuilder applications.

Also, among PowerBuilder programmers there is a misconception that the machine code (DLL) builds protect the application from the decompiler. But this is just not true: DLLs produced using the machine code builds include copies of the corresponding PBDs and therefore can be decompiled as well.

There are two main ways of protection from decompilers - source code obfuscation and encryption of executable files.

Obfuscation is a transformation of the source code that does not change the meaning of the program, but make its analysis hard (meaningless names of variables/functions, no formatting, etc). Obfuscation protects programs against theft of the source code, since obfuscated code is difficult to use in other projects. However, to protect from the analysis it's not enough to obfuscate the source code, because decompilers still produce PowerScript code, which can be relatively easy to explore (even obfuscated). In addition, obfuscation is not always possible, especially in projects with a lot of dynamically generated code. That requires substantial effort on testing the code processed by obfuscators.

Therefore, the encryption of executable application files is an important part of protection against hacking so that a decompiler could not work at all. In this case, an attacker would have to analyze the machine code of the encryption module to extract unencrypted executables, and then to use a decompiler. Analysis of machine code, especially the code that is written specifically to confuse the attacker, is a considerably more complex task than running an automatic decompiler which is available freely on the Internet. And not everyone will be able to do it. Of course, there is no such a protection, which would not be broken, sooner or later. However, by that time new protection modules will become available and the attackers would have to deal with the new algorithms of protection. That's why the use of encryption allows software developers to be always one step ahead of hackers and to make cracking less profitable than buying a legal copy of the program.


Not available any more. Read why.

Version History

PbGuard 1.3.0

  • Support of PowerBuilder 12.5 classic
  • Fixed interaction with Windows Compatibility Mode

PbGuard 1.2.3

  • Performance optimizations

PbGuard 1.2.2

  • Support larger resource sizes in EXE.

PbGuard 1.2.1

  • Fixed interaction with the Data Execution Prevention (DEP) technology.

Subscribe for Site News or PbGuard Updates News

PbGuard information
Download PbGuard

Copyright (C) 1999 - 2024 Anatoly Moskovsky Report a site problem