IP Library Granted Patent US 12,670,039
Granted Patent B2
US 12,670,039 · App. 18/354,880 · Granted Jun 30, 2026

Eye-catcher injection into library transformation

Inventors: Frederik Johannes Hartmann (Sindelfingen, DE); Ulrich Weigand (Tuebingen, DE)
Assignee: International Business Machines Corporation
G06F9/541G06F9/44521
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 12,670,039
App. No.
18/354,880
Filed
Jul 19, 2023
Granted
Jun 30, 2026
Kind
B2
Art Unit
2194
USPC
719/331
Abstract

A computer-implemented method for transforming a library from a source operating system to a target operating system is disclosed. Thereby, the source OS comprises a source ABI; the target OS comprises a target application ABI; the target ABI is different from the source application binary interface, wherein the library is implemented by a source object file; the source object file is compliant with the source application binary interface and comprising at least a source memory image, source symbol information, and source relocation information, where the source relocation information is free of relative relocation information. The method comprises also creating a target memory image compliant with the target application binary interface and derived from the source memory image, enriching the target memory image with a fixed-length eye-catcher information, and writing the target memory image to a target object file.

Claims (49)

1 . A computer-implemented method for transforming a library from a source operating system to a target operating system, wherein:

the source operating system comprises a source application binary interface,

the target operating system comprises a target application binary interface,

the target application binary interface is different to the source application binary interface, wherein the library is implemented by a source object file,

the source object file is compliant with the source application binary interface and comprising at least a source memory image, source symbol information, and source relocation information, wherein the source relocation information is free of relative relocation information,

the method comprising:

creating a target memory image, wherein the target memory image is compliant with the target application binary interface, and wherein the target memory image is derived from the source memory image;

enriching the target memory image with a fixed-length eye-catcher information derived from a source symbol name for every external source symbol, wherein the fixed-length eye-catcher information replaces usable bytes adjacent to the external source symbol; and

writing the target memory image to a target object file, such that the target library is implemented by the target object file.

2 . The method according to claim 1 wherein the enriching the target memory image is performed by placing the eye-catcher information at a target memory image location of the target memory image at a fixed offset from a target symbol address.

3 . The method according to claim 2 , wherein the target symbol address has been created by a supporting compiler.

4 . The method according to claim 2 , wherein the eye-catcher information comprises debugging information.

5 . The method according to claim 2 , wherein the enriching the target memory image is preceded by checking that the target memory image location has been created by a supporting compiler.

6 . The method according to claim 5 , wherein the checking is performed by validating that the target memory image location only comprises a predefined assembly instruction sequence.

7 . The method according to claim 6 , wherein the predefined assembly instruction sequence is a no-operation instruction.

8 . The method according to claim 2 , also comprising:

determining that the target memory image location is usable for the enrichment.

9 . The method according to claim 1 , wherein the transformation also comprises:

a character conversion between different charsets.

10 . The method according to claim 1 , wherein the transformation also comprises:

building a hash value having a predefined number of character for a name used in source image data.

11 . A transformation system for a transforming a library from a source operating system to a target operating system, wherein:

the source operating system comprises a source application binary interface,

the target operating system comprises a target application binary interface,

the target application binary interface is different from the source application binary interface, wherein the library is implemented by a source object file,

the source object file is compliant with the source application binary interface and comprises at least a source memory image, source symbol information, and source relocation information, wherein the source relocation information is free of relative relocation information,

the system comprising one or more processors and a memory operatively coupled to the one or more processors, wherein the memory stores program code portions that, when executed by the one or more processors, enable the one or more processors to:

create a target memory image, wherein the target memory image is compliant with the target application binary interface, and wherein the target memory image is derived from the source memory image;

enrich the target memory image with a fixed-length eye-catcher information derived from a source symbol name for every external source symbol, wherein the fixed-length eye-catcher information replaces usable bytes adjacent to the external source symbol; and

write the target memory image to a target object file, such that the target library is implemented by the target object file.

12 . The system according to claim 11 , wherein the one or more processors, during enriching the target memory image, are also enabled to:

perform by placing the eye-catcher information at a target memory image location of the target memory image at a fixed offset from a target symbol address.

13 . The system according to claim 11 , wherein the transformation also comprises a character conversion between different charsets.

14 . The system according to claim 12 , wherein the target symbol address has been created by a supporting compiler.

15 . The system according to claim 12 , wherein the eye-catcher information comprises debugging information.

16 . The system according to claim 12 , wherein the enriching the target memory image is preceded by checking that the target memory image location has been created by a supporting compiler.

17 . The system according to claim 16 , wherein the checking is performed, by the one or more processors, by validating that the target memory image location only comprises a predefined assembly instruction sequence.

18 . The system according to claim 17 , wherein the predefined assembly instruction sequence is a no-operation instruction.

19 . The system according to claim 12 , wherein the one or more processors are also enabled to:

determine that the target memory image location is usable for the enrichment.

20 . A computer program product for a transforming a shared library for transforming a library from a source operating system to a target operating system, wherein:

the source operating system comprises a source application binary interface,

the target operating system comprises a target application binary interface,

the target application binary interface is different from the source application binary interface, wherein the library is implemented by a source object file,

the source object file is compliant with the source application binary interface and comprises at least a source memory image, source symbol information, and source relocation information, wherein the source relocation information is free of relative relocation information,

the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by one or more computing systems or controllers to cause the one or more computing systems to:

create a target memory image, wherein the target memory image is compliant with the target application binary interface, and wherein the target memory image is derived from the source memory image;

enrich the target memory image with a fixed-length eye-catcher information derived from a source symbol name for every external source symbol, wherein the fixed-length eye-catcher information replaces usable bytes adjacent to the external source symbol; and

write the target memory image to a target object file, such that the target library is implemented by the target object file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2023
From: HARTMANN, FREDERIK JOHANNES; WEIGAND, ULRICH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 064312/0645 →
Priority Claims (1)
GB 2309323 · Jun 21, 2023 · national
Continuity (1)
Related Publication 20240427648A1 · Dec 26, 2024
References Cited (35)
US 5774728A · Breslau · 1998 [cited by applicant]
US 6308322B1 · Serocki · 2001 [cited by examiner]
US 6725451B1 · Schuetz · 2004 [cited by examiner]
US 7555674B1 · Wang · 2009 [cited by examiner]
US 10152313B1 · Hartmann · 2018 [cited by applicant]
US 10592220B2 · Kudriavtsev · 2020 [cited by applicant]
US 10628177B1 · Eyberg · 2020 [cited by examiner]
US 11042422B1 · Lebedynskiy · 2021 [cited by examiner]
US 11231918B1 · Sequeira De Justo Teixeira · 2022 [cited by examiner]
US 11347506B1 · Yang · 2022 [cited by examiner]
US 11875159B1 · Stupachenko · 2024 [cited by examiner]
US 20050132123A1 · Glaum · 2005 [cited by examiner]
US 20060173913A1 · Aoyama · 2006 [cited by examiner]
US 20080215796A1 · Lam · 2008 [cited by examiner]
US 20120151201A1 · Clerc · 2012 [cited by examiner]
US 20130055219A1 · Aranguren · 2013 [cited by applicant]
US 20130091337A1 · Schmich · 2013 [cited by examiner]
US 20180081655A1 · Kudriavtsev · 2018 [cited by applicant]
US 20180285210A1 · Mitkar · 2018 [cited by examiner]
US 20190155814A1 · Nguyen · 2019 [cited by applicant]
US 20200036751A1 · Kohavi · 2020 [cited by examiner]
US 20200334129A1 · Myers · 2020 [cited by applicant]
US 20210294726A1 · Reisinger · 2021 [cited by examiner]
US 20210303316A1 · Eyberg · 2021 [cited by examiner]
US 20230027329A1 · Durham · 2023 [cited by examiner]
US 20240427594A1 · Weigand · 2024 [cited by examiner]
US 20240427648A1 · Hartmann · 2024 [cited by examiner]
JP 2016504673A · 2016 [cited by examiner]
JP 2023538811A · 2023 [cited by examiner]
Michael Matz, System V Application Binary Interface AMD64 Architecture Processor Supplement. (Year: 2013). [cited by examiner]
Michael Matz, System V Application Binary Interface. (Year: 2013). [cited by examiner]
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or Declaration,” Patent Cooperation Treaty, Jul. 5, 20… [cited by applicant]
UK Search Report, Application No. GB2309323.0, Dated Feb. 6, 2024, 3 pages. [cited by applicant]
Webb et al., “Practical software reuse for IBM System z I/O subsystems,” IBM J. Res. & Dev. vol. 51 No. 1/2 Jan./Mar. 2007, https://www.researchgate.net/publication/220498075_Practical_software_reuse_for_IBM_System_z_IO… [cited by applicant]
Hartmann, et al., “Eye-Catcher Injection Into Library Transformation”, Application No. GB2309323.0, Filing Date Jun. 21, 2023, 41 pages. [cited by applicant]