Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
DETAILED ACTION
This office action is in response to communication filed 7/30/2024. Claims 1-8 are currently pending and claims 1, 7, and 8 are the independent claims.
Claim Objections
Claim 5 is objected to because of the following informalities:
As per claim 5, it recites “…program components missing in the computer program (105) on the basis…”, when, it should recite “…missing in the computer program on the basis…”.
Appropriate correction is required.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-8 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
As per independent claims 1, 7, and 8, they recite “…searching for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in the one or more intermediate representation code strings using a string kernel search, wherein each reference intermediate representation code string belongs to a program component; and ascertaining the program components to which the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search, belong as the program components present in the computer program.” The examiner would like to point out that wile the claims previously recite “each reference intermediate representation code string belongs to a program component”, it does not previously recite “program components” that each reference intermediate representation code string belongs to, and as such there is insufficient antecedent basis for this limitation in the claims. Further, while the claims previously recite “searching for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in the one or more intermediate representation code strings”, it does not previously recite that reference intermediate representation code strings are found in the one or more intermediate representation code strings, and as such there is insufficient antecedent basis for the limitation “the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search”. Additionally, while the claims previously recite “a program component” and “the program components to which the reference intermediate representation code strings…belong”, they do not previously recite “program components present in the computer program” and as such there is insufficient antecedent basis for these limitations in the claim. For the purpose of examination, the examiner will consider these limitations to be “…finding reference intermediate representation code strings in the one or more intermediate representation code strings by searching for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in the one or more intermediate representation code strings using a string kernel search, wherein each reference intermediate representation code string belongs to a program component; and ascertaining program components to which the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search, belong as program components present in the computer program.”
As per dependent claims 2-6, they incorporate the deficiencies of claim 1, upon which they depend, and fail to correct the deficiencies of claim 1. Therefore, claims 2-6 are rejected for similar reasoning as claim 1, above.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claim 7 is rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. The claim(s) does/do not fall within at least one of the four categories of patent eligible subject matter because:
As per claim 7, it recites “A software analysis system configured to automatically analyze a computer program, the system configured to:…”. The examiner would like to point out that, with broadest reasonable interpretation, the claims “software analysis system” may be interpreted as a system of software/software components/a software system/etc. which is software per-se, and software per-se is not patent eligible under 35 USC 101. The examiner would like to recommend the wording/phrasing “A software analysis system comprising a processor and a memory storing instructions which, when executed by the processor, cause the system to:…”
Claims 1-5 and 7-8 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
As per claim 1, it recites “A method for automatically analyzing a computer program, the method comprising the following steps: generating intermediate representation code including a sequence of intermediate representation instructions by decompiling binary code of the computer program; generating one or more intermediate representation code strings from the sequence of intermediate representation instructions; searching for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in the one or more intermediate representation code strings using a string kernel search, wherein each reference intermediate representation code string belongs to a program component; and ascertaining the program components to which the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search, belong as the program components present in the computer program.”
The limitations “searching for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in the one or more intermediate representation code strings using a string kernel search, wherein each reference intermediate representation code string belongs to a program component”, and “ascertaining the program components to which the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search, belong as the program components present in the computer program”, as drafted, recites a function that, under its broadest reasonable interpretation, covers a function that could reasonably be performed in the mind, including with the aid of pen and paper, but for the recitation of generic computer components, and as such, as drafted, are functions that, under its broadest reasonable interpretation, recite the abstract idea of a mental process. The limitations encompass a human mind carrying out the function through observation, evaluation, judgment, and/or opinion, or even with the aid of pen and paper. For example, a human may mentally/with pen and paper/etc. evaluate/judge/analyze/search/etc. intermediate representation code strings and judge/find/determine/decide/etc. reference/desired/etc. intermediate representation code strings that belong/correspond/etc. to computer component, and may mentally/with pen and paper/etc. judge/determine/ascertain/etc. program components that the reference intermediate representation code strings belong/correspond to/match/etc.. Accordingly, under its broadest reasonable interpretation, this limitation recites and falls within the “Mental Processes” grouping of abstract ideas.
This judicial exception is not integrated into a practical application. The claim recites the additional elements/limitations “generating intermediate representation code including a sequence of intermediate representation instructions by decompiling binary code of the computer program” and “generating one or more intermediate representation code strings from the sequence of intermediate representation instructions”. These additional elements do nothing more than add insignificant extra solution activity to the judicial exception of merely updating/modifying/generating/etc. data/information/intermediate representation code and code strings/etc., and the courts have identified functions such as gathering, displaying, updating, transmitting, and storing data as well-understood, routine, conventional activity (see MPEP 2106.05(d)). Accordingly, the additional elements do not integrate the recited judicial exception into a practical application and the claim is therefore directed to the judicial exception. See MPEP 2106.05(f), 2106.05(g), etc..
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional elements amount to mere insignificant extra solution activity to the judicial exception of merely updating/modifying/generating/etc. data/information/intermediate representation code and code strings/etc., and the courts have identified functions such as gathering, displaying, updating, transmitting, and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception (see MPEP 2106.05(d)) and do not recite an inventive concept. Accordingly, the claims are not patent eligible under 35 USC 101.
As per claim 2, it incorporates the deficiencies of claim 1, upon which it depends, and further recites “…wherein the one or more intermediate representation code strings are a plurality of intermediate representation code strings generated by combining subsequences of the sequence of intermediate representation instructions into program code segments which each form a function, and wherein the reference intermediate representation code strings are searched for in each intermediate representation code string” which, conceptually, with broadest reasonable interpretation, provides further clarification as to the insignificant extra solution activity of updating/modifying/generating/combining/etc. data/information/intermediate representations which does not integrate the abstract idea/mental process into a practical application and the courts have identified functions such as gathering, displaying, updating, transmitting, and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception (see MPEP 2106.05(d)), and further clarification as to the abstract idea/mental process/evaluating/searching/analyzing/judging/etc., which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. As such, claim 2 fails to correct the deficiencies of claim 1 and is therefore rejected for similar reasoning as claim 1, above.
As per claim 3, it incorporates the deficiencies of claim 1, upon which it depends, and further recites “…ascertaining security gaps in the computer program based on the ascertained program components and information regarding security gaps in the ascertained program components” which, conceptually, with broadest reasonable interpretation, provides further clarification as to the abstract idea/mental process/ascertaining/judging/determining/etc., which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. As such, claim 3 fails to correct the deficiencies of claim 1 and is therefore rejected for similar reasoning as claim 1, above.
As per claim 4, it incorporates the deficiencies of claim 1, upon which it depends, and further recites “…wherein the one or more intermediate representation code strings are generated from the sequence of intermediate representation instructions at least partially by compensating for or taking into account obfuscation techniques” which, conceptually, with broadest reasonable interpretation, provides further clarification as to the insignificant extra solution activity of updating/modifying/generating/etc. data/information/intermediate representations which does not integrate the abstract idea/mental process into a practical application and the courts have identified functions such as gathering, displaying, updating, transmitting, and storing data as well-understood, routine, conventional activity, thus do not amount to significantly more than the judicial exception (see MPEP 2106.05(d)). As such, claim 4 fails to correct the deficiencies of claim 1 and is therefore rejected for similar reasoning as claim 1, above.
As per claim 5, it incorporates the deficiencies of claim 1, upon which it depends, and further recites “…ascertaining program components missing in the computer program (105) on the basis of the program components ascertained to be present in the computer program” which, conceptually, with broadest reasonable interpretation, provides further clarification as to the abstract idea/mental process/ascertaining/judging/determining/etc., which does not integrate the abstract idea/mental process into a practical application and is not significantly more than the abstract idea/mental process. As such, claim 5 fails to correct the deficiencies of claim 1 and is therefore rejected for similar reasoning as claim 1, above.
As per independent claim 7, it recites a software analysis system having similar limitations as the method of claim 1, and as such recites a similar abstract idea/mental process and has similar deficiencies as claim 1, above. Claim 7 recites the further additional elements “A software analysis system configured to automatically analyze a computer program, the system configured to:” which, with broadest reasonable interpretation, recites that high level/generic computer/computer components/software analysis system/etc. is used to implement/perform the abstract idea/mental process, which is not an inventive concept, and as such amounts to mere instructions to apply the exception using generic computer/mere computer components, which does not integrate the abstract idea into a practical application and is not significantly more than the abstract idea/mental process. As such, the additional elements/limitations of claim 7 fail to correct the deficiencies of claim 1, and therefore claim 7 is rejected for similar reasoning as claim 1, above.
As per independent claim 8, it recites a non-transitory computer-readable medium having similar limitations as the method of claim 1, and as such recites a similar abstract idea/mental process and has similar deficiencies as claim 1, above. Claim 8 recites the further additional elements “A non-transitory computer-readable medium on which are stored instructions for automatically analyzing a computer program, the instructions, when executed by a processor, causing the processor to perform the following steps” which, with broadest reasonable interpretation, recites that high level/generic computer/computer components/non-transitory computer-readable medium and processor/etc. is used to implement/perform the abstract idea/mental process, which is not an inventive concept, and as such amounts to mere instructions to apply the exception using generic computer/mere computer components, which does not integrate the abstract idea into a practical application and is not significantly more than the abstract idea/mental process. As such, the additional elements/limitations of claim 8 fail to correct the deficiencies of claim 1, and therefore claim 8 is rejected for similar reasoning as claim 1, above.
Allowable Subject Matter Over the Prior Art
The prior art of record (Le et al. US Patent 12,468,514 B2, Jaeger et al. US PG Pub. 2024/0134666 A1, Sevigny US Patent 10,338,902 B1, and Papakipos et al. US Patent 8,443,349 B2) fails to anticipate or render an obviousness of generating intermediate representation code including a sequence of intermediate representation instructions by decompiling binary code of the computer program; generating one or more intermediate representation code strings from the sequence of intermediate representation instructions; searching for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in the one or more intermediate representation code strings using a string kernel search, wherein each reference intermediate representation code string belongs to a program component; and ascertaining the program components to which the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search, belong as the program components present in the computer program, as required by the independent claims.
The prior art of record teaches that binary/executable/machine language/etc. code may be decompiled to create/generate/etc. an intermediate representation code, that an intermediate representation of code includes instructions/sequences of instructions/sequences of intermediate representation instructions/etc., that code strings of instructions in the intermediate representation/intermediate representation code strings/etc. may be generated/determined/etc. from the sequence of intermediate representation instructions/instructions in the intermediate representation/etc., that code strings in the intermediate representation code/intermediate representation code strings/etc. belonging to/corresponding to/etc. program components/blocks/modules/ functions/etc. may be searched for/queried/identified/etc., and that a search may be a kernel search. However, the prior art of record fails to render an obviousness of
using a string kernel search to search for reference intermediate representation code strings of a plurality of reference intermediate representation code strings in one or more intermediate representation code strings, wherein each reference intermediate representation code string belongs to a program component, and ascertaining the program components to which the reference intermediate representation code strings, found in the one or more intermediate representation code strings by the string kernel search, belong as the program components present in a computer program; after decompiling binary code of the computer program to generate intermediate representation code including a sequence of intermediate representation instructions and generating the one or more intermediate representation code strings from the sequence of intermediate representation instructions, as required by the independent claims.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to DOUGLAS M SLACHTA whose telephone number is (571)270-0653. The examiner can normally be reached Monday-Friday 6:30am-4pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do can be reached at 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/DOUGLAS M SLACHTA/Examiner, Art Unit 2193