{"id":{"repo_id":"syracuse-diss","oai_identifier":"oai:surface.syr.edu:etd-1719"},"canonical_url":"https://search.dev.ndltd.org/etd/syracuse-diss/oai:surface.syr.edu:etd-1719","repository":{"repo_id":"syracuse-diss","name":"Syracuse University","base_url":"https://surface.syr.edu/do/oai/"},"display":{"title":"THE SCALABLE AND ACCOUNTABLE BINARY CODE SEARCH AND ITS APPLICATIONS","abstract":"<p>The past decade has been witnessing an explosion of various applications and devices.</p> <p>This big-data era challenges the existing security technologies: new analysis techniques</p> <p>should be scalable to handle “big data” scale codebase; They should be become smart</p> <p>and proactive by using the data to understand what the vulnerable points are and where</p> <p>they locate; effective protection will be provided for dissemination and analysis of the data</p> <p>involving sensitive information on an unprecedented scale.</p> <p>In this dissertation, I argue that the code search techniques can boost existing security</p> <p>analysis techniques (vulnerability identification and memory analysis) in terms of scalability and accuracy. In order to demonstrate its benefits, I address two issues of code search by using the code analysis: scalability and accountability. I further demonstrate the benefit of code search by applying it for the scalable vulnerability identification [57] and the</p> <p>cross-version memory analysis problems [55, 56].</p> <p>Firstly, I address the scalability problem of code search by learning “higher-level” semantic</p> <p>features from code [57]. Instead of conducting fine-grained testing on a single device</p> <p>or program, it becomes much more crucial to achieve the quick vulnerability scanning</p> <p>in devices or programs at a “big data” scale. However, discovering vulnerabilities in “big</p> <p>code” is like finding a needle in the haystack, even when dealing with known vulnerabilities. This new challenge demands a scalable code search approach. To this end, I leverage successful techniques from the image search in computer vision community and propose a novel code encoding method for scalable vulnerability search in binary code. The evaluation results show that this approach can achieve comparable or even better accuracy and efficiency than the baseline techniques.</p> <p>Secondly, I tackle the accountability issues left in the vulnerability searching problem</p> <p>by designing vulnerability-oriented raw features [58]. The similar code does not always</p> <p>represent the similar vulnerability, so it requires that the feature engineering for the code</p> <p>search should focus on semantic level features rather than syntactic ones. I propose to</p> <p>extract conditional formulas as higher-level semantic features from the raw binary code to</p> <p>conduct the code search. A conditional formula explicitly captures two cardinal factors</p> <p>of a vulnerability: 1) erroneous data dependencies and 2) missing or invalid condition</p> <p>checks. As a result, the binary code search on conditional formulas produces significantly</p> <p>higher accuracy and provides meaningful evidence for human analysts to further examine</p> <p>the search results. The evaluation results show that this approach can further improve</p> <p>the search accuracy of existing bug search techniques with very reasonable performance</p> <p>overhead.</p> <p>Finally, I demonstrate the potential of the code search technique in the memory analysis</p> <p>field, and apply it to address their across-version issue in the memory forensic problem</p> <p>[55, 56]. The memory analysis techniques for COTS software usually rely on the</p> <p>so-called “data structure profiles” for their binaries. Construction of such profiles requires</p> <p>the expert knowledge about the internal working of a specified software version. However,</p> <p>it is still a cumbersome manual effort most of time. I propose to leverage the code search</p> <p>technique to enable a notion named “cross-version memory analysis”, which can update a</p> <p>profile for new versions of a software by transferring the knowledge from the model that</p> <p>has already been trained on its old version. The evaluation results show that the code search based approach advances the existing memory analysis methods by reducing the</p> <p>manual efforts while maintaining the reasonable accuracy. With the help of collaborators, I</p> <p>further developed two plugins to the Volatility memory forensic framework [2], and show</p> <p>that each of the two plugins can construct a localized profile to perform specified memory</p> <p>forensic tasks on the same memory dump, without the need of manual effort in creating the corresponding profile.</p>","abstract_html":"&lt;p&gt;The past decade has been witnessing an explosion of various applications and devices.&lt;/p&gt; &lt;p&gt;This big-data era challenges the existing security technologies: new analysis techniques&lt;/p&gt; &lt;p&gt;should be scalable to handle “big data” scale codebase; They should be become smart&lt;/p&gt; &lt;p&gt;and proactive by using the data to understand what the vulnerable points are and where&lt;/p&gt; &lt;p&gt;they locate; effective protection will be provided for dissemination and analysis of the data&lt;/p&gt; &lt;p&gt;involving sensitive information on an unprecedented scale.&lt;/p&gt; &lt;p&gt;In this dissertation, I argue that the code search techniques can boost existing security&lt;/p&gt; &lt;p&gt;analysis techniques (vulnerability identification and memory analysis) in terms of scalability and accuracy. In order to demonstrate its benefits, I address two issues of code search by using the code analysis: scalability and accountability. I further demonstrate the benefit of code search by applying it for the scalable vulnerability identification [57] and the&lt;/p&gt; &lt;p&gt;cross-version memory analysis problems [55, 56].&lt;/p&gt; &lt;p&gt;Firstly, I address the scalability problem of code search by learning “higher-level” semantic&lt;/p&gt; &lt;p&gt;features from code [57]. Instead of conducting fine-grained testing on a single device&lt;/p&gt; &lt;p&gt;or program, it becomes much more crucial to achieve the quick vulnerability scanning&lt;/p&gt; &lt;p&gt;in devices or programs at a “big data” scale. However, discovering vulnerabilities in “big&lt;/p&gt; &lt;p&gt;code” is like finding a needle in the haystack, even when dealing with known vulnerabilities. This new challenge demands a scalable code search approach. To this end, I leverage successful techniques from the image search in computer vision community and propose a novel code encoding method for scalable vulnerability search in binary code. The evaluation results show that this approach can achieve comparable or even better accuracy and efficiency than the baseline techniques.&lt;/p&gt; &lt;p&gt;Secondly, I tackle the accountability issues left in the vulnerability searching problem&lt;/p&gt; &lt;p&gt;by designing vulnerability-oriented raw features [58]. The similar code does not always&lt;/p&gt; &lt;p&gt;represent the similar vulnerability, so it requires that the feature engineering for the code&lt;/p&gt; &lt;p&gt;search should focus on semantic level features rather than syntactic ones. I propose to&lt;/p&gt; &lt;p&gt;extract conditional formulas as higher-level semantic features from the raw binary code to&lt;/p&gt; &lt;p&gt;conduct the code search. A conditional formula explicitly captures two cardinal factors&lt;/p&gt; &lt;p&gt;of a vulnerability: 1) erroneous data dependencies and 2) missing or invalid condition&lt;/p&gt; &lt;p&gt;checks. As a result, the binary code search on conditional formulas produces significantly&lt;/p&gt; &lt;p&gt;higher accuracy and provides meaningful evidence for human analysts to further examine&lt;/p&gt; &lt;p&gt;the search results. The evaluation results show that this approach can further improve&lt;/p&gt; &lt;p&gt;the search accuracy of existing bug search techniques with very reasonable performance&lt;/p&gt; &lt;p&gt;overhead.&lt;/p&gt; &lt;p&gt;Finally, I demonstrate the potential of the code search technique in the memory analysis&lt;/p&gt; &lt;p&gt;field, and apply it to address their across-version issue in the memory forensic problem&lt;/p&gt; &lt;p&gt;[55, 56]. The memory analysis techniques for COTS software usually rely on the&lt;/p&gt; &lt;p&gt;so-called “data structure profiles” for their binaries. Construction of such profiles requires&lt;/p&gt; &lt;p&gt;the expert knowledge about the internal working of a specified software version. However,&lt;/p&gt; &lt;p&gt;it is still a cumbersome manual effort most of time. I propose to leverage the code search&lt;/p&gt; &lt;p&gt;technique to enable a notion named “cross-version memory analysis”, which can update a&lt;/p&gt; &lt;p&gt;profile for new versions of a software by transferring the knowledge from the model that&lt;/p&gt; &lt;p&gt;has already been trained on its old version. The evaluation results show that the code search based approach advances the existing memory analysis methods by reducing the&lt;/p&gt; &lt;p&gt;manual efforts while maintaining the reasonable accuracy. With the help of collaborators, I&lt;/p&gt; &lt;p&gt;further developed two plugins to the Volatility memory forensic framework [2], and show&lt;/p&gt; &lt;p&gt;that each of the two plugins can construct a localized profile to perform specified memory&lt;/p&gt; &lt;p&gt;forensic tasks on the same memory dump, without the need of manual effort in creating the corresponding profile.&lt;/p&gt;","abstract_has_math":false,"creators":["Feng, Qian"],"institution":null,"degree_name":"Doctor of Philosophy (PhD)","degree_level":"Dissertation","degree_discipline":"Electrical Engineering and Computer Science","degree_department":null,"school":null,"contributors":["Heng Yin"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2017,"date_issued":"2017-06-30T07:00:00Z","date_published":"2017-06-30T07:00:00Z","updated_at":"2026-07-24T04:55:19Z","subjects":["Binary Analysis","Machine Learning","Memory Forensics","Software Security","Vulnerability Search","Engineering"],"languages":[],"rights":[],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://surface.syr.edu/etd/719","outbound_label":"Repository record","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Heng Yin"]},{"key":"dc:creator","label":"Author","values":["Feng, Qian"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"thesis:degree_discipline","label":"Discipline","values":["Electrical Engineering and Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Doctor of Philosophy (PhD)"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Binary Analysis","Machine Learning","Memory Forensics","Software Security","Vulnerability Search","Engineering"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["https://surface.syr.edu/etd/719"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["<p>The past decade has been witnessing an explosion of various applications and devices.</p> <p>This big-data era challenges the existing security technologies: new analysis techniques</p> <p>should be scalable to handle “big data” scale codebase; They should be become smart</p> <p>and proactive by using the data to understand what the vulnerable points are and where</p> <p>they locate; effective protection will be provided for dissemination and analysis of the data</p> <p>involving sensitive information on an unprecedented scale.</p> <p>In this dissertation, I argue that the code search techniques can boost existing security</p> <p>analysis techniques (vulnerability identification and memory analysis) in terms of scalability and accuracy. In order to demonstrate its benefits, I address two issues of code search by using the code analysis: scalability and accountability. I further demonstrate the benefit of code search by applying it for the scalable vulnerability identification [57] and the</p> <p>cross-version memory analysis problems [55, 56].</p> <p>Firstly, I address the scalability problem of code search by learning “higher-level” semantic</p> <p>features from code [57]. Instead of conducting fine-grained testing on a single device</p> <p>or program, it becomes much more crucial to achieve the quick vulnerability scanning</p> <p>in devices or programs at a “big data” scale. However, discovering vulnerabilities in “big</p> <p>code” is like finding a needle in the haystack, even when dealing with known vulnerabilities. This new challenge demands a scalable code search approach. To this end, I leverage successful techniques from the image search in computer vision community and propose a novel code encoding method for scalable vulnerability search in binary code. The evaluation results show that this approach can achieve comparable or even better accuracy and efficiency than the baseline techniques.</p> <p>Secondly, I tackle the accountability issues left in the vulnerability searching problem</p> <p>by designing vulnerability-oriented raw features [58]. The similar code does not always</p> <p>represent the similar vulnerability, so it requires that the feature engineering for the code</p> <p>search should focus on semantic level features rather than syntactic ones. I propose to</p> <p>extract conditional formulas as higher-level semantic features from the raw binary code to</p> <p>conduct the code search. A conditional formula explicitly captures two cardinal factors</p> <p>of a vulnerability: 1) erroneous data dependencies and 2) missing or invalid condition</p> <p>checks. As a result, the binary code search on conditional formulas produces significantly</p> <p>higher accuracy and provides meaningful evidence for human analysts to further examine</p> <p>the search results. The evaluation results show that this approach can further improve</p> <p>the search accuracy of existing bug search techniques with very reasonable performance</p> <p>overhead.</p> <p>Finally, I demonstrate the potential of the code search technique in the memory analysis</p> <p>field, and apply it to address their across-version issue in the memory forensic problem</p> <p>[55, 56]. The memory analysis techniques for COTS software usually rely on the</p> <p>so-called “data structure profiles” for their binaries. Construction of such profiles requires</p> <p>the expert knowledge about the internal working of a specified software version. However,</p> <p>it is still a cumbersome manual effort most of time. I propose to leverage the code search</p> <p>technique to enable a notion named “cross-version memory analysis”, which can update a</p> <p>profile for new versions of a software by transferring the knowledge from the model that</p> <p>has already been trained on its old version. The evaluation results show that the code search based approach advances the existing memory analysis methods by reducing the</p> <p>manual efforts while maintaining the reasonable accuracy. With the help of collaborators, I</p> <p>further developed two plugins to the Volatility memory forensic framework [2], and show</p> <p>that each of the two plugins can construct a localized profile to perform specified memory</p> <p>forensic tasks on the same memory dump, without the need of manual effort in creating the corresponding profile.</p>"]},{"key":"dc:title","label":"Title","values":["THE SCALABLE AND ACCOUNTABLE BINARY CODE SEARCH AND ITS APPLICATIONS"]}]}],"canonical_facts":{"dc:contributor":["Heng Yin"],"dc:creator":["Feng, Qian"],"dc:description.abstract":["<p>The past decade has been witnessing an explosion of various applications and devices.</p> <p>This big-data era challenges the existing security technologies: new analysis techniques</p> <p>should be scalable to handle “big data” scale codebase; They should be become smart</p> <p>and proactive by using the data to understand what the vulnerable points are and where</p> <p>they locate; effective protection will be provided for dissemination and analysis of the data</p> <p>involving sensitive information on an unprecedented scale.</p> <p>In this dissertation, I argue that the code search techniques can boost existing security</p> <p>analysis techniques (vulnerability identification and memory analysis) in terms of scalability and accuracy. In order to demonstrate its benefits, I address two issues of code search by using the code analysis: scalability and accountability. I further demonstrate the benefit of code search by applying it for the scalable vulnerability identification [57] and the</p> <p>cross-version memory analysis problems [55, 56].</p> <p>Firstly, I address the scalability problem of code search by learning “higher-level” semantic</p> <p>features from code [57]. Instead of conducting fine-grained testing on a single device</p> <p>or program, it becomes much more crucial to achieve the quick vulnerability scanning</p> <p>in devices or programs at a “big data” scale. However, discovering vulnerabilities in “big</p> <p>code” is like finding a needle in the haystack, even when dealing with known vulnerabilities. This new challenge demands a scalable code search approach. To this end, I leverage successful techniques from the image search in computer vision community and propose a novel code encoding method for scalable vulnerability search in binary code. The evaluation results show that this approach can achieve comparable or even better accuracy and efficiency than the baseline techniques.</p> <p>Secondly, I tackle the accountability issues left in the vulnerability searching problem</p> <p>by designing vulnerability-oriented raw features [58]. The similar code does not always</p> <p>represent the similar vulnerability, so it requires that the feature engineering for the code</p> <p>search should focus on semantic level features rather than syntactic ones. I propose to</p> <p>extract conditional formulas as higher-level semantic features from the raw binary code to</p> <p>conduct the code search. A conditional formula explicitly captures two cardinal factors</p> <p>of a vulnerability: 1) erroneous data dependencies and 2) missing or invalid condition</p> <p>checks. As a result, the binary code search on conditional formulas produces significantly</p> <p>higher accuracy and provides meaningful evidence for human analysts to further examine</p> <p>the search results. The evaluation results show that this approach can further improve</p> <p>the search accuracy of existing bug search techniques with very reasonable performance</p> <p>overhead.</p> <p>Finally, I demonstrate the potential of the code search technique in the memory analysis</p> <p>field, and apply it to address their across-version issue in the memory forensic problem</p> <p>[55, 56]. The memory analysis techniques for COTS software usually rely on the</p> <p>so-called “data structure profiles” for their binaries. Construction of such profiles requires</p> <p>the expert knowledge about the internal working of a specified software version. However,</p> <p>it is still a cumbersome manual effort most of time. I propose to leverage the code search</p> <p>technique to enable a notion named “cross-version memory analysis”, which can update a</p> <p>profile for new versions of a software by transferring the knowledge from the model that</p> <p>has already been trained on its old version. The evaluation results show that the code search based approach advances the existing memory analysis methods by reducing the</p> <p>manual efforts while maintaining the reasonable accuracy. With the help of collaborators, I</p> <p>further developed two plugins to the Volatility memory forensic framework [2], and show</p> <p>that each of the two plugins can construct a localized profile to perform specified memory</p> <p>forensic tasks on the same memory dump, without the need of manual effort in creating the corresponding profile.</p>"],"dc:identifier":["https://surface.syr.edu/etd/719"],"dc:subject":["Binary Analysis","Machine Learning","Memory Forensics","Software Security","Vulnerability Search","Engineering"],"dc:title":["THE SCALABLE AND ACCOUNTABLE BINARY CODE SEARCH AND ITS APPLICATIONS"],"thesis:degree_discipline":["Electrical Engineering and Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Doctor of Philosophy (PhD)"]},"updated_at":"2026-07-24T04:55:19Z"}