Patent ID: 7793346

Claim:
A method for preventing unauthorized program modules from communicating, comprising: identifying at least one program module utilizing a central processing unit call history by intercepting a function, the central processing unit call history including a history of a plurality of calls in the form of a stack trace; performing an authorization test on the at least one program module for preventing unauthorized program modules from communicating; and determining whether an application program associated with the at least one program module is authorized based on a stack context of the function; wherein if the application program is authorized only in part: (a) it is determined whether one of the program modules of the application program is authorized, (b) results of (a) are stored, (c) if the program module fails to be authorized: at least one of the function is failed and the application program is terminated, (d) (a)-(c) are repeated for each of the program modules of the application program, and (e) the function is passed if all of the program modules are authorized; wherein a signature is used to determine whether the at least one program module is authorized; wherein the signature includes a calculated signature associated with the at least one program module, and the calculated signature is compared to an earlier-stored signature stored in a database and associated with the at least one program module.