Method and apparatus for protecting external call references
View Patent ↗The present invention is generally directed to a method, system, and article of manufacture that ensures the integrity of programs having variable portions. One aspect of this invention is a method for protecting software products having variant portions. This method includes identifying a reference to an external target in a software product, creating an identifier for the external target, and adding the identifier to the reference. In some embodiments, the unique identifier is a digital signature and the reference to an external target is a call to an external library.
1. A method for protecting a software program having an external library reference whereby call convention can be used to ensure call to the external library resolves to a correct instance of a function and that the selected instance has not been modified, the method comprising:
receiving a digitally signed software program having a call to an external library, the call comprising an invariant target descriptor and a digital signature, wherein the digital signature comprises a hash of the external library encrypted by a recognized source of the software program;
extracting the digital signature from the call;
extracting the hash from the digital signature;
using the invariant target descriptor to identify a first external library candidate;
computing a hash of the first external library candidate; and
comparing the extracted hash to the computed hash of the first external library candidate.
2. The method of claim 1 , wherein invariant target descriptor comprises a path to the external library.
3. The method of claim 1 , wherein the method is performed at bind-time.
4. The method of claim 1 , wherein the method is performed at run-time.
5. The method of claim 1 , further comprising, in response to the comparison, linking the first external library candidate software program.
6. The method of claim 1 , further comprising, in response to the comparison, generating an alert that the first external library target has been altered.
7. The method of claim 1 , wherein using the invariant target descriptor to identify a first external library candidate comprises searching a list of eligible objects and their location.
8. The method of claim 1 , wherein using the invariant target descriptor to identify a first external library candidate comprises traversing a search path.
9. The method of claim 1 , further comprising:
using the invariant target descriptor to identify a second external library candidate;
computing a hash of the second external library candidate; and
comparing the extracted hash to the computed hash of the second external library candidate.