Board index » delphi » Reverse engineering a BPL

Reverse engineering a BPL


2008-01-10 12:29:47 PM
delphi86
Happy New Year to All,
I am basically considering making a BPL my license file.
I have some questions regarding hacking a BPL.
Is it as hackable as an EXE file?
If I put license information in a BPL, would it be just as vulnerable as an
EXE?
There are commercial licensing/software protection products out there, like
WinLicense www.oreans.com, but can you protect BPLs as well? I see Oreans
has a WinLicense DLL Control version which may be more along the lines of
what I am looking for but I am not sure.
This topic area is new to me, so bear with me, while I ask dumb questions.
-d
 
 

Re:Reverse engineering a BPL

"Dennis Landi" <XXXX@XXXXX.COM>writes
Quote
There are commercial licensing/software protection products out there,
like WinLicense www.oreans.com, but can you protect BPLs as well? I see
Oreans has a WinLicense DLL Control version which may be more along the
lines of what I am looking for but I am not sure.

And I followed up with a question about WinLicense, specifically, in the
delphi.thirpartytools NG.
-d
 

Re:Reverse engineering a BPL

"Dennis Landi" <XXXX@XXXXX.COM>writes
Quote
Happy New Year to All,

I am basically considering making a BPL my license file.

I have some questions regarding hacking a BPL.

Is it as hackable as an EXE file?

If I put license information in a BPL, would it be just as vulnerable as
an EXE?

There are commercial licensing/software protection products out there,
like WinLicense www.oreans.com, but can you protect BPLs as well? I see
Oreans has a WinLicense DLL Control version which may be more along the
lines of what I am looking for but I am not sure.

This topic area is new to me, so bear with me, while I ask dumb
questions.

Never mind. Looks like WinLicense is a better route to go, period.
Downloaded it. Tried it. Looks like these guys have figured it out at
great depth.
-d
 

Re:Reverse engineering a BPL

A BPL is nothing other than a dll. In addition to a dll it has an
initalization and finalization procedure called
'@YourBplName@initialization$qqrv' (and the same for the finalization
proc). The classes are encoded via exported function calls these
function calls are encoded such that the loading mechanism can construct
delphi classes out of it.
You can try it out yourself by opening a bpl in the Dependecy Walker tool.
kind regards
Mike
 

Re:Reverse engineering a BPL

"Dennis Landi" <XXXX@XXXXX.COM>writes
Quote
I have some questions regarding hacking a BPL.

Is it as hackable as an EXE file?
Yes. A BPL is just a normal DLL with a different file extension and
specific exported functions that the VCL looks for at run-time. Otherwise,
it is a normal executable file like any other, and can be debugged and
disassembled just as easily.
Quote
If I put license information in a BPL, would it be just as vulnerable
as an EXE?
Yes. You should be using strong encryption to protect the data.
Gambit
 

Re:Reverse engineering a BPL

"Remy Lebeau (TeamB)"
Quote

Yes. A BPL is just a normal DLL with a different file extension and
specific exported functions that the VCL looks for at run-time.
Yes, I recently discovered that the BPL=DLL. I can get BPL Library verison
by regular methods I used for dlls.
 

Re:Reverse engineering a BPL

On 2008-01-10, Rabatscher Michael <XXXX@XXXXX.COM>writes:
Quote
A BPL is nothing other than a dll. In addition to a dll it has an
initalization and finalization procedure called
'@YourBplName@initialization$qqrv' (and the same for the finalization
proc). The classes are encoded via exported function calls these
function calls are encoded such that the loading mechanism can construct
delphi classes out of it.
Yes, but not e.g. the definitions of non class types used in class
parameters.