IP Library Granted Patent US 7,277,937
Granted Patent B2
US 7,277,937 · App. 10/621,840 · Granted Oct 2, 2007

Distributed computing using syscall proxying

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,277,937
App. No.
10/621,840
Granted
Oct 2, 2007
Kind
B2
Abstract

A system is provided for executing a system call originating in a local computer on a first remote computer connected to the local computer via a network. Communication is established between the local computer and the first remote computer via the network. A syscall server is installed in the first remote computer. A reference address is sent from the first remote computer to the local computer via the network through execution of code by the syscall server. A syscall request is built in the local computer with arguments determined using the reference address received from the first remote computer. The syscall request is sent from the local computer to the first remote computer via the network. The syscall request is copied into a stack of the first remote computer through execution of code by the syscall server. Registers are popped from the syscall request in the stack. Execution of a syscall request is initiated on the first remote computer. The result of the syscall request is pushed onto the stack. At least a portion of the result of the syscall request is sent to the local computer via the network through execution of code by the syscall server.

Claims (49)

1. A method for executing a system call originating in a local computer on a first remote computer connected to the local computer via a network, the method comprising:

establishing communication between the local computer and the first remote computer via the network;

installing a syscall server in the first remote computer;

sending a reference address from the first remote computer to the local computer via the network through execution of code by the syscall server;

building a syscall request in the local computer with arguments determined using the reference address received from the first remote computer;

sending the syscall request from the local computer to the first remote computer via the network;

copying the syscall request into a stack of the first remote computer through execution of code by the syscall server;

popping registers from the syscall request in the stack through execution of code by the syscall server;

initiating execution of a syscall request on the first remote computer through execution of code by the syscall server;

pushing a result of the syscall request onto the stack through execution of code by the syscall server; and

sending at least a portion of the result of the syscall request to the local computer via the network through execution of code by the syscall server.

2. The method of claim 1 , wherein the building of a syscall request in the local computer comprises:

creating a memory block in the local computer;

storing syscall arguments in the memory block;

adjusting the arguments using the reference address received from the first remote computer to account for memory address differences between the first remote computer and the local computer.

3. The method of claim 2 , further comprising executing a series of syscalls to access a second remote computer connected to the first remote computer.

4. The method of claim 1 , further comprising:

sending address information for a load library function from the first remote computer to the local computer via the network through execution of code by the syscall server;

sending address information for a get procedure address function from the first remote computer to the local computer via the network through execution of code by the syscall server.

5. The method of claim 4 , further comprising:

executing the get procedure address function on the first remote computer through execution of code by the syscall server to obtain an address for a function to be executed;

incorporating the address of the function to be executed in the syscall request; and

popping the address of the function to be executed from the stack prior to initiating execution of a syscall request on the first remote computer.

6. The method of claim 5 , further comprising executing the load library function on the first remote computer through execution of code by the syscall server to load the function to be executed.

7. A system for executing a system call originating in a local computer on a first remote computer connected to the local computer via a network, the system comprising:

a communications module configured to provide communication between the local computer and the first remote computer via the network;

means for building a syscall request in the local computer with arguments determined using a reference address received from the first remote computer;

means for sending the syscall request from the local computer to the first remote computer via the network; and

a syscall server configured to be installed in the first remote computer, the syscall server comprising:

means for sending the reference address from the first remote computer to the local computer via the network;

means for copying the syscall request into a stack of the first remote computer;

means for popping registers from the syscall request in the stack;

means for initiating execution of a syscall request on the first remote computer;

means for pushing a result of the syscall request onto the stack; and

means for sending at least a portion of the result of the syscall request to the local computer via the network.

8. Computer code stored on a computer readable medium, for executing a computer program for executing a system call originating in a local computer on a first remote computer connected to the local computer via a network, the computer code comprising: code for establishing communication between the local computer and the first remote computer via the network; code for installing a syscall server in the first remote computer; code for sending a reference address from the first remote computer to the local computer via the network through execution of code by the syscall server; code for building a syscall request in the local computer with arguments determined using the reference address received from the first remote computer; code for sending the syscall request from the local computer to the first remote computer via the network; code for copying the syscall request into a stack of the first remote computer through execution of code by the syscall server; code for popping registers from the syscall request in the stack through execution of code by the syscall server; code for initiating execution of a syscall request on the first remote computer through execution of code by the syscall server; code for pushing a result of the syscall request onto the stack through execution of code by the syscall server; and code for sending at least a portion of the result of the syscall request to the local computer via the network through execution of code by the syscall server.

9. The computer code of claim 8 , wherein the code for building a syscall request in the local computer comprises:

code for creating a memory block in the local computer;

code for storing syscall arguments in the memory block;

code for adjusting the arguments using the reference address received from the first remote computer to account for memory address differences between the first remote computer and the local computer.

10. The computer code of claim 9 , further comprising code for executing a series of syscalls to access a second remote computer connected to the first remote computer.

11. The computer code of claim 8 , further comprising:

code for sending address information for a load library function from the first remote computer to the local computer via the network through execution of code by the syscall server;

code for sending address information for a get procedure address function from the first remote computer to the local computer via the network through execution of code by the syscall server.

12. The computer code of claim 11 , further comprising:

code for executing the get procedure address function on the first remote computer through execution of code by the syscall server to obtain an address for a function to be executed;

code for incorporating the address of the function to be executed in the syscall request; and

code for popping the address of the function to be executed from the stack prior to initiating execution of a syscall request on the first remote computer.

13. The computer code of claim 12 , further comprising code for executing the load library function on the first remote computer through execution of code by the syscall server to load the function to be executed.

Assignments (21)
SECURITY INTEREST Recorded Jan 6, 2026
From: ALERT LOGIC, INC.; DIGITAL GUARDIAN LLC; ECRIME MANAGEMENT STRATEGIES, INC.; FORTRA, LLC; GLOBALSCAPE, INC.; TRIPWIRE, INC.
To: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 074233/0632 →
TERMINATION AND RELEASE OF FIRST LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 51059/0861 Recorded Nov 24, 2025
From: JEFFERIES FINANCE LLC
To: FORTRA, LLC (FORMERLY KNOWN AS HELP/SYSTEMS, LLC)
Reel/Frame 073783/0406 →
EXTENDED FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: FORTRA, LLC
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 073663/0914 →
TERMINATION AND RELEASE OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 51059/0911 Recorded Nov 21, 2025
From: ACQUIOM AGENCY SERV ICES LLC
To: FORTRA, LLC (F/K/A HELP/SYSTEMS, LLC)
Reel/Frame 073662/0442 →
EXTENDED RCF FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: FORTRA, LLC
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 073663/0327 →
NEW MONEY FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: ALERT LOGIC, INC.; DIGITAL GUARDIAN LLC; ECRIME MANAGEMENT STRATEGIES, INC.; FORTRA, LLC; GLOBALSCAPE, INC.; TRIPWIRE, INC.; VERA SECURITY, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073683/0534 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 14, 2025
From: GOLUB CAPITAL MARKETS LLC (AS EXISTING AGENT)
To: ACQUIOM AGENCY SERVICES LLC (AS SUCCESSOR COLLATERAL AGENT)
Reel/Frame 072471/0665 →
RELEASE OF SECURITY INTEREST Recorded Feb 3, 2025
From: PNC BANK. NATIONAL ASSOCIATION
To: COURION CORPORATION; CORE SECURITY TECHNOLOGIES, INC.; CORE SDI, INC.; COURIONLIVE CORPORATION; COURION HOLDINGS, INC.; COURION INTERMEDIATE HOLDINGS, INC.
Reel/Frame 070086/0008 →
CHANGE OF NAME Recorded Dec 15, 2022
From: HELP/SYSTEMS, LLC
To: FORTRA, LLC
Reel/Frame 062136/0777 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 20, 2021
From: JEFFERIES FINANCE LLC, AS EXISTING AGENT
To: GOLUB CAPITAL MARKETS LLC, AS SUCCESSOR AGENT
Reel/Frame 056322/0628 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 19, 2019
From: HELP/SYSTEMS, LLC
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 051059/0911 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 19, 2019
From: HELP/SYSTEMS, LLC
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 051059/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2019
From: CORE SDI, INC.
To: HELP/SYSTEMS, LLC
Reel/Frame 048381/0497 →
RELEASE OF SECURITY INTEREST Recorded Feb 8, 2019
From: PNC BANK, NATIONAL ASSOCIATION
To: COURION INTERMEDIATE HOLDINGS, INC.; CORE SECURITY SDI CORPORATION; CORE SECURITY TECHNOLOGIES, INC.; CORE SDI, INC.; CORE SECURITY LIVE CORPORATION; CORE SECURITY HOLDINGS, INC.; DAMABLLA, INC.
Reel/Frame 048281/0835 →
RELEASE OF SECURITY INTEREST Recorded Jan 4, 2018
From: SARATOGA INVESTMENT CORP. SBIC LP
To: COURION CORPORATION; CORE SDI, INC.; CORE SECURITY TECHNOLOGIES, INC.
Reel/Frame 044535/0830 →
PATENT SECURITY AGREEMENT Recorded Oct 10, 2016
From: COURION CORPORATION; CORE SECURITY TECHNOLOGIES, INC.; CORE SDI, INC.
To: SARATOGA INVESTMENT CORP. SBIC LP, AS ADMINISTRATIVE AGENT
Reel/Frame 040298/0816 →
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2015
From: MULTIPLIER CAPITAL, L.P.
To: CORE SECURITY TECHNOLOGIES, INC.; CORE SDI, INC.
Reel/Frame 037372/0488 →
SECURITY INTEREST Recorded Dec 29, 2015
From: COURION CORPORATION; CORE SECURITY TECHNOLOGIES, INC.; CORE SDI, INC.; COURIONLIVE CORPORATION; COURION HOLDINGS, INC.; COURION INTERMEDIATE HOLDINGS, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 037374/0301 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED AT REEL: 014905 FRAME: 0324. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 22, 2015
From: CACERES, MAXIMILIANO GERARDO; BURRONI, JAVIER; AJZENMAN, GUSTAVO; QUESADA, RICARDO; RICHARTE, GERARDO GABRIEL; NOTARFRANCESCO, LUCIANO; LEIDL, BRUCE ROBERT; FRIEDMAN, AGUSTIN AZUBEL; BECEDILLAS RUIZ, GABRIEL MARTIN
To: CORE SDI, INC.
Reel/Frame 037358/0624 →
SECURITY AGREEMENT Recorded Aug 23, 2013
From: CORE SDI, INC.; CORE SECURITY TECHNOLOGIES, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 031077/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2004
From: CACERES, MAXIMILIANO GERARDO; BURRONI, JAVIER; AJZENMAN, GUSTOVO; QUESADA, RICARDO; RICHARTE, GERARDO GABRIEL; NOTARFRANCESCO, LUCIANO; LEIDL, BRUCE ROBERT; FRIEDMAN, AGUSTIN AZUBEL; RUIZ, GABRIEL MARTIN BECEDILLAS
To: CORE SDI, INCORPORATED
Reel/Frame 014905/0324 →