Patents by Inventor Eran Yahav

Eran Yahav has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 11188322
    Abstract: A computer implemented method of estimating a similarity of binary records comprising executable code, comprising converting a first binary record and a second binary record to a first intermediate representation (IR) and a second IR respectively, decomposing each of the first IR and the second IR to a plurality of strands which are partial dependent chains of program instructions, calculating a probability score for each of the plurality of strands of the first IR to have an equivalent counterpart in the second IR by comparing each strand of the first IR to one or more strands of the second IR, adjusting the probability score for each strand according to a significance value calculated for each strand and calculating a similarity score defining a functional similarity between the first IR and the second IR by aggregating the adjusted probability score of the plurality of strands.
    Type: Grant
    Filed: December 23, 2019
    Date of Patent: November 30, 2021
    Assignee: Technion Research & Development Foundation Limited
    Inventors: Eran Yahav, Nimrod Sebban Partush, Moshe Yaniv David
  • Publication number: 20200174785
    Abstract: A computer implemented method of estimating a similarity of binary records comprising executable code, comprising converting a first binary record and a second binary record to a first intermediate representation (IR) and a second IR respectively, decomposing each of the first IR and the second IR to a plurality of strands which are partial dependent chains of program instructions, calculating a probability score for each of the plurality of strands of the first IR to have an equivalent counterpart in the second IR by comparing each strand of the first IR to one or more strands of the second IR, adjusting the probability score for each strand according to a significance value calculated for each strand and calculating a similarity score defining a functional similarity between the first IR and the second IR by aggregating the adjusted probability score of the plurality of strands.
    Type: Application
    Filed: December 23, 2019
    Publication date: June 4, 2020
    Applicant: Technion Research & Development Foundation Limited
    Inventors: Eran YAHAV, Nimrod Sebban PARTUSH, Moshe Yaniv DAVID
  • Patent number: 10514909
    Abstract: A computer implemented method of estimating a similarity of binary records comprising executable code, comprising converting a first binary record and a second binary record to a first intermediate representation (IR) and a second IR respectively, decomposing each of the first IR and the second IR to a plurality of strands which are partial dependent chains of program instructions, calculating a probability score for each of the plurality of strands of the first IR to have an equivalent counterpart in the second IR by comparing each strand of the first IR to one or more strands of the second IR, adjusting the probability score for each strand according to a significance value calculated for each strand and calculating a similarity score defining a functional similarity between the first IR and the second IR by aggregating the adjusted probability score of the plurality of strands.
    Type: Grant
    Filed: March 29, 2018
    Date of Patent: December 24, 2019
    Assignee: Technion Research & Development Foundation Limited
    Inventors: Eran Yahav, Nimrod Sebban Partush, Moshe Yaniv David
  • Patent number: 10210211
    Abstract: A method, computerized apparatus and computer program product for providing a code segment in response to a query, the method comprising using at least one hardware processor for: receiving a multiplicity of code segments and meta data related to the code segments; analyzing each code segment of the multiplicity of code segments, said analyzing comprising: semantically analyzing the code segment to obtain a first rank, structurally analyzing the code segment to obtain a second rank, and analyzing the meta data associated with the code segment to obtain a third rank; combining the first rank, second rank and third rank into a total rank associated with the code segment; receiving a query; matching the query to each of the multiplicity of code segments to identify matching code segments; and providing the matching code segments in accordance with total ranks associated with each of the matching code segments.
    Type: Grant
    Filed: August 25, 2015
    Date of Patent: February 19, 2019
    Assignee: CODOTA DOT COM LTD.
    Inventor: Eran Yahav
  • Publication number: 20180285101
    Abstract: A computer implemented method of estimating a similarity of binary records comprising executable code, comprising converting a first binary record and a second binary record to a first intermediate representation (IR) and a second IR respectively, decomposing each of the first IR and the second IR to a plurality of strands which are partial dependent chains of program instructions, calculating a probability score for each of the plurality of strands of the first IR to have an equivalent counterpart in the second IR by comparing each strand of the first IR to one or more strands of the second IR, adjusting the probability score for each strand according to a significance value calculated for each strand and calculating a similarity score defining a functional similarity between the first IR and the second IR by aggregating the adjusted probability score of the plurality of strands.
    Type: Application
    Filed: March 29, 2018
    Publication date: October 4, 2018
    Inventors: Eran YAHAV, Nimrod Sebban PARTUSH, Moshe Yaniv DAVID
  • Patent number: 9852217
    Abstract: A method comprising: receiving a multiplicity of videos from a source; for each video: receiving meta data related to the video; extracting from the video a video frame containing computer code; identifying a region of interest (ROI) within the video frame; performing OCR of the ROI to extract a code segment; analyzing the code segment by: semantically analyzing the code segment to obtain a first rank, structurally analyzing the code segment to obtain a second rank, and analyzing the meta data to obtain a third rank; and combining the first rank, second rank and third rank into a total rank associated with the code segment; receiving a query; matching the query to each code segment to identify matching code segments and associated videos; and providing the associated videos in accordance with total ranks associated with the matching code segments.
    Type: Grant
    Filed: August 25, 2015
    Date of Patent: December 26, 2017
    Assignee: CODOTA DOT COM LTD.
    Inventor: Eran Yahav
  • Patent number: 9292446
    Abstract: A profiler may identify potentially-independent remote data accesses in a program. A remote data access is independent if value returned from said remote data access is not computed from another value returned from another remote data access appearing logically earlier in the program. A program rewriter may generate a program-specific prefetcher that preserves the behavior of the program, based on profiling information including the potentially-independent remote data accesses identified by the profiler. An execution engine may execute the prefetcher and the program concurrently. The execution engine may automatically decide which of said potentially-independent remote data accesses should be executed in parallel speculatively. A shared memory shared by the program and the prefetcher stores returned data from a data source as a result of issuing the remote data accesses.
    Type: Grant
    Filed: October 4, 2012
    Date of Patent: March 22, 2016
    Assignee: International Business Machines Corporation
    Inventors: Arun Raman, Martin Vechev, Mark N. Wegman, Eran Yahav, Greta Yorsh
  • Publication number: 20160063102
    Abstract: A method comprising: receiving a multiplicity of videos from a source; for each video: receiving meta data related to the video; extracting from the video a video frame containing computer code; identifying a region of interest (ROI) within the video frame; performing OCR of the ROI to extract a code segment; analyzing the code segment by: semantically analyzing the code segment to obtain a first rank, structurally analyzing the code segment to obtain a second rank, and analyzing the meta data to obtain a third rank; and combining the first rank, second rank and third rank into a total rank associated with the code segment; receiving a query; matching the query to each code segment to identify matching code segments and associated videos; and providing the associated videos in accordance with total ranks associated with the matching code segments.
    Type: Application
    Filed: August 25, 2015
    Publication date: March 3, 2016
    Applicant: Codota Dot Com Ltd.
    Inventor: Eran Yahav
  • Publication number: 20160063062
    Abstract: A method, computerized apparatus and computer program product for providing a code segment in response to a query, the method comprising using at least one hardware processor for: receiving a multiplicity of code segments and meta data related to the code segments; analyzing each code segment of the multiplicity of code segments, said analyzing comprising: semantically analyzing the code segment to obtain a first rank, structurally analyzing the code segment to obtain a second rank, and analyzing the meta data associated with the code segment to obtain a third rank; combining the first rank, second rank and third rank into a total rank associated with the code segment; receiving a query; matching the query to each of the multiplicity of code segments to identify matching code segments; and providing the matching code segments in accordance with total ranks associated with each of the matching code segments.
    Type: Application
    Filed: August 25, 2015
    Publication date: March 3, 2016
    Applicant: CODOTA DOT COM LTD.
    Inventor: Eran Yahav
  • Patent number: 9110658
    Abstract: Techniques are provided for automatic verification and inference of memory fences in concurrent programs that can bound the store buffers that are used to model relaxed memory models. A method is provided for determining whether a program employing a relaxed memory model satisfies a safety specification. An abstract memory model is obtained of the relaxed memory model. The abstract memory model represents concrete program states of the program as a finite number of abstract states. The safety specification is evaluated for the program on the abstract memory model having the finite number of abstract states. Fence positions at one or more locations can be determined to ensure that the safety specification is satisfied.
    Type: Grant
    Filed: April 29, 2011
    Date of Patent: August 18, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael Kuperstein, Martin Vechev, Eran Yahav
  • Patent number: 9092569
    Abstract: Given a program P, a specification S, and an abstraction function ?, verification determines whether P satisfies the specification S under the abstraction ?. If not, a trace T that violate the specification is selected, and either the abstraction ? is refined or a constraint that avoids the trace T is computed and added to a set of constraints. The set of constraints are used to modify the program P.
    Type: Grant
    Filed: June 4, 2013
    Date of Patent: July 28, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Martin Vechev, Eran Yahav, Greta Yorsh
  • Patent number: 9069893
    Abstract: Automatic verification of determinism in structured parallel programs includes sequentially establishing whether code for each of a plurality of tasks of the structured parallel program is independent, outputting sequential proofs corresponding to the independence of the code for each of the plurality of tasks and determining whether all memory locations accessed by parallel tasks of the plurality of tasks are independent based on the sequential proofs.
    Type: Grant
    Filed: March 23, 2011
    Date of Patent: June 30, 2015
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Martin Vechev, Eran Yahav, Raghavan Raman, Vivek Sarkar
  • Patent number: 8839248
    Abstract: A framework is provided for automatic inference of memory fences in concurrent programs. A method is provided for generating a set of ordering constraints that prevent executions of a program violating a specification. One or more incoming avoidable transitions are identified for a state and one or more ordering constraints are refined for the state. The set of ordering constraints are generated by taking a conjunction of ordering constraints for all states that violate the specification. One or more fence locations can optionally be selected based on the generated set of ordering constraints.
    Type: Grant
    Filed: May 28, 2010
    Date of Patent: September 16, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael Kuperstein, Martin Vechev, Eran Yahav
  • Publication number: 20140101278
    Abstract: A profiler may identify potentially-independent remote data accesses in a program. A remote data access is independent if value returned from said remote data access is not computed from another value returned from another remote data access appearing logically earlier in the program. A program rewriter may generate a program-specific prefetcher that preserves the behavior of the program, based on profiling information including the potentially-independent remote data accesses identified by the profiler. An execution engine may execute the prefetcher and the program concurrently. The execution engine may automatically decide which of said potentially-independent remote data accesses should be executed in parallel speculatively. A shared memory shared by the program and the prefetcher stores returned data from a data source as a result of issuing the remote data accesses.
    Type: Application
    Filed: October 4, 2012
    Publication date: April 10, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Arun Raman, Martin Vechev, Mark N. Wegman, Eran Yahav, Greta Yorsh
  • Patent number: 8646088
    Abstract: A method is disclosed that includes tracking untrusted inputs through an executing program into a sink, the tracking including maintaining context of the sink as strings based on the untrusted inputs flow into the sink. The method also includes, while tracking, in response to a string based on an untrusted input being about to flow into the sink and a determination the string could lead to an attack if the string flows into a current context of the sink, endorsing the string using an endorser selected based at least on the current context of the sink, and providing the endorsed string to the sink. Computer program products and apparatus are also disclosed.
    Type: Grant
    Filed: January 3, 2011
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Marco Pistoia, Omer Tripp, Martin Vechev, Eran Yahav
  • Patent number: 8645917
    Abstract: A programming language support for debugging heap related errors includes one or more queries for determining one or more global properties associated with use of the area by the program. The one or more queries may be executed in parallel or concurrently and dynamically utilize available number of cores.
    Type: Grant
    Filed: October 14, 2009
    Date of Patent: February 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Matthew R. Arnold, Martin Vechev, Eran Yahav
  • Publication number: 20130268918
    Abstract: Given a program P, a specification S, and an abstraction function ?, verification determines whether P satisfies the specification S under the abstraction ?. If not, a trace T that violate the specification is selected, and either the abstraction ? is refined or a constraint that avoids the trace T is computed and added to a set of constraints. The set of constraints are used to modify the program P.
    Type: Application
    Filed: June 4, 2013
    Publication date: October 10, 2013
    Inventors: Martin Vechev, Eran Yahav, Greta Yorsh
  • Patent number: 8548966
    Abstract: A snapshot of an application executing on a processor is taken in response to detecting an assertion in a running application. The assertion is evaluated based on the snapshot asynchronously while allowing the application to continue executing. The results of the assertion evaluation are returned to the application.
    Type: Grant
    Filed: January 11, 2011
    Date of Patent: October 1, 2013
    Assignee: International Business Machines Corporation
    Inventors: Martin Vechev, Eran Yahav
  • Publication number: 20130247000
    Abstract: Dynamic synthesis includes receiving a program P and a specification S that describes desired properties of P. The dynamic synthesis also includes initializing a constraint C to true, enumerating schedules up to a defined limit that satisfy C, and executing a schedule of P. The dynamic synthesis further includes determining whether execution of the schedule violates S. In response to determining that the execution violates S, the dynamic synthesis includes determining whether to avoid future executions of the schedule. In response to determining that future executions of the schedule should be avoided, the dynamic synthesis includes computing a constraint that avoids the future execution, and adding the constraint to C; otherwise, the dynamic synthesis includes selecting another schedule for execution. In response to determining that the execution of the schedule does not violate S, the dynamic synthesis includes selecting another schedule for execution.
    Type: Application
    Filed: March 13, 2012
    Publication date: September 19, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINE CORPORATION
    Inventors: Martin Vechev, Eran Yahav
  • Publication number: 20130247001
    Abstract: Dynamic synthesis includes receiving a program P and a specification S that describes desired properties of P. The dynamic synthesis also includes initializing a constraint C to true, enumerating schedules up to a defined limit that satisfy C, and executing a schedule of P. The dynamic synthesis further includes determining whether execution of the schedule violates S. In response to determining that the execution violates S, the dynamic synthesis includes determining whether to avoid future executions of the schedule. In response to determining that future executions of the schedule should be avoided, the dynamic synthesis includes computing a constraint that avoids the future execution, and adding the constraint to C; otherwise, the dynamic synthesis includes selecting another schedule for execution. In response to determining that the execution of the schedule does not violate S, the dynamic synthesis includes selecting another schedule for execution.
    Type: Application
    Filed: July 27, 2012
    Publication date: September 19, 2013
    Applicant: INTERNATIONAL BUSINESS MACHINE CORPORATION
    Inventors: Martin Vechev, Eran Yahav