Method and system for secure debugging of a secure software module
First Claim
1. A method for a symbolic debugger to debug a software program making one or more function calls to a tamper-resistant software module, the method comprising the steps of:
- loading a tamper-resistant software module comprising at least one function call, wherein programming code to implement the at least one function call is not made available for debug;
loading an intermediate software module which includes an intermediate function call from a server socket interface to the at least one function call in the tamper-resistant software module, wherein the intermediate function call returns through to the server socket interface any status from the at least one function call in the tamper-resistant software module;
executing a socket client interface service performing the steps of;
a) receiving a call to the least one function call in the tamper-resistant software module from a software program being debugged by a symbolic debugger;
b) translating the function call received into a socket call;
c) returning any status received from the socket call to software program being debugged;
executing the socket server interface service performing the steps of;
a) receiving one or more socket calls from a client socket service;
b) translating the socket calls received into the at least one function call for execution in the tamper-resistant software module; and
c) returning any status from the execution of the at least one function call. wherein the intermediate software module provides an executable return to a software program being debugged by a symbolic debugger into the at least one function call in the tamper resistant software module.
1 Assignment
0 Petitions
Accused Products
Abstract
A method to debug application interface calls made to a tamper-resistant software module. The method comprises the steps of: loading a first application to be debugged using a debugging application, wherein the application makes one or more function calls to a tamper-resistant software module. A debugger application for symbolically debugging the first application is run and the debugger application with an initialization file that performs the steps of: loading a client application running a client socket service; loading a server application running a server socket service; loading the tamper-resistant software module with one or more function calls made thereto by the first application. The client application translates the one or more function calls made to the tamper-resistant software module during the running of the debugger application into socket calls and returns any status received from the socket calls to the first application. The server application translates the one or more function calls made to the tamper-resistant software module that are received via socket calls from the client application into function calls into the tamper-resistance software module and returning any status received back from the function calls into socket calls for receipt for the server application.
In an alternate embodiment, a computer readable medium and system is disclosed that corresponds to the method above.
-
Citations
16 Claims
-
1. A method for a symbolic debugger to debug a software program making one or more function calls to a tamper-resistant software module, the method comprising the steps of:
-
loading a tamper-resistant software module comprising at least one function call, wherein programming code to implement the at least one function call is not made available for debug;
loading an intermediate software module which includes an intermediate function call from a server socket interface to the at least one function call in the tamper-resistant software module, wherein the intermediate function call returns through to the server socket interface any status from the at least one function call in the tamper-resistant software module;
executing a socket client interface service performing the steps of;
a) receiving a call to the least one function call in the tamper-resistant software module from a software program being debugged by a symbolic debugger;
b) translating the function call received into a socket call;
c) returning any status received from the socket call to software program being debugged;
executing the socket server interface service performing the steps of;
a) receiving one or more socket calls from a client socket service;
b) translating the socket calls received into the at least one function call for execution in the tamper-resistant software module; and
c) returning any status from the execution of the at least one function call. wherein the intermediate software module provides an executable return to a software program being debugged by a symbolic debugger into the at least one function call in the tamper resistant software module. - View Dependent Claims (2, 3, 4, 5, 6)
loading a software program being debugged by a symbolic debugger; and
executing the symbolic debugger, wherein any function calls to the tamper-resistant software module are return with status to the symbolic debugger from the socket client.
-
-
3. The method according to claim 2, wherein the step of executing a socket client interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger.
-
4. The method according to claim 3, wherein the step of executing a socket client interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger as directed by an initialization file.
-
5. The method according to claim 2, wherein the step of executing a socket server interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger.
-
6. The method according to claim 5, wherein the step of executing a socket server interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger as directed by an initialization file.
-
7. A method to debug application interface calls made to a tamper-resistant software module comprising the steps of:
-
loading a first application to be debugged using a debugging application, wherein the application makes one or more function calls to a tamper-resistant software module;
running a debugger application for symbolically debugging the first application;
supplying the debugger application with an initialization file that performs the steps of;
loading a client application running a client socket service;
loading a server application running a server socket service;
loading the tamper-resistant software module with one or more function calls made thereto by the first application, wherein programming code to implement the function calls is not made available for debug;
loading an intermediate software module which includes an intermediate function call from the server socket service to the function calls in the tamper-resistant software module, wherein the intermediate function call returns through to the server socket service any status from the function calls in the tamper-resistant software module;
wherein the client application translates the one or more function calls made to the tamper-resistant software module during the running of the debugger application into socket calls and returns any status received from the socket calls to the first application;
wherein the server application translates the one or more function calls made to the tamper-resistant software module that are received via socket calls from the client application into function calls into the tamper-resistance software module and returning any status received back from the function calls into socket calls for receipt for the server application; and
wherein the intermediate software module provides an executable return to the first application being debugged by the symbolic debugger into the function calls in the tamper resistant software module.
-
-
8. A computer readable medium containing programming instructions for a symbolic debugger to debug a software program making one or more function calls to a tamper-resistant software module, the programming instructions comprising:
-
loading a tamper-resistant software module comprising at least one function call, wherein programming code to implement the at least one function call is not made available for debug;
loading an intermediate software module which includes an intermediate function call from a server socket interface to the at least one function call in the tamper-resistant software module, wherein the intermediate function call returns through to the server socket interface any status from the at least one function call in the tamper-resistant software module;
executing a socket client interface service performing the programming instructions of;
a) receiving a call to the least one function call in the tamper-resistant software module from a software program being debugged by a symbolic debugger;
b) translating the function call received into a socket call;
c) returning any status received from the socket call to software program being debugged;
executing a socket server interface service performing the instructions of;
b) receiving one or more socket calls from a client socket service;
c) translating the socket calls received into the at least one function call for execution in the tamper-resistant software module; and
d) returning any status from the execution of the at least one function call wherein the intermediate software module provides an executable return to a software program being debugged by a symbolic debugger into the at least one function call in the tamper resistant software module. - View Dependent Claims (9, 10, 11, 12, 13)
loading a software program being debugged by a symbolic debugger; and
executing the symbolic debugger, wherein any function calls to the tamper-resistant software module are return with status to the symbolic debugger from the socket client.
-
-
10. The computer readable medium according to claim 9, wherein the programming instruction of executing a socket client interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger.
-
11. The computer readable medium according to claim 10, wherein the programming instruction of executing a socket client interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger as directed by an initialization file.
-
12. The computer readable medium according to claim 9, wherein the programming instruction of executing a socket server interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger.
-
13. The computer readable medium according to claim 9, wherein the programming instruction of executing a socket server interface includes executing a socket client interface as part of a debug module that is loaded by the symbolic debugger as directed by an initialization file.
-
14. A computer readable medium containing programming instructions to debug application interface calls made to a tamper-resistant software module comprising the programming instructions of:
-
loading a first application to be debugged using a debugging application, wherein the application makes one or more function calls to a tamper-resistant software module;
running a debugger application for symbolically debugging the first application;
supplying the debugger application with an initialization file that performs the programming instructions of;
loading a client application running a client socket service;
loading a server application running a server socket service;
loading the tamper-resistant software module with one or more function calls made thereto by the first application wherein graming code to implement the function calls is not made available for debug;
loading an intermediate software module which includes an intermediate function call from the server socket service to the function calls in the tamper-resistant software module, wherein the intermediate function call returns through to the server socket service any status from the function calls in the tamper-resistant software module;
wherein the client application translates the one or more function calls made to the tamper-resistant software module during the running of the debugger application into socket calls and returns any status received from the socket calls to the first application;
wherein the server application translates the one or more function calls made to the tamper-resistant software module that are received via socket calls from the client application into function calls into the tamper-resistance software module and returning any status received back from the function calls into socket calls for receipt for the server application; and
wherein the intermediate software module provides an executable return to the first application being debugged by the symbolic debugger into the function calls in the tamper resistant software module.
-
-
15. An information processing system comprising:
-
a first application to be debugged using a debugging application, wherein the application makes one or more function calls to a tamper-resistant software module;
a debugger application for symbolically debugging the first application;
an initialization file supplied to the debugger application comprising;
means for loading a client application running a client socket service;
means for loading a server application running a server socket service;
means for loading the tamper-resistant software module with one or more function calls made thereto by the first application, wherein programming code to implement the function calls is not made available for debug;
wherein the client application translates the one or more function calls made to the tamper-resistant software module during the running of the debugger application into socket calls and returns any status received from the socket calls to the first application;
wherein the server application translates the one or more function calls made to the tamper-resistant software module that are received via socket calls from the client application into function calls into the tamper-resistance software module and returning any status received back from the function calls into socket calls for receipt for the server application; and
wherein the intermediate software module provides an executable return to the first application being debugged by the symbolic debugger into the function calls in the tamper resistant software module. - View Dependent Claims (16)
-
Specification