{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/121551"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/121551","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Machine code database for matching embedded libraries","abstract":"Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2023-12-04 without embargo terms","abstract_html":"Submission original under an indefinite embargo labeled &#x27;Open Access&#x27;. The submission was exported from vireo on 2023-12-04 without embargo terms","abstract_has_math":false,"creators":["Silberg, Hamilton"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Electrical & Computer Engr","degree_department":null,"school":null,"contributors":["Levchenko, Kiril"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2023,"date_issued":"2023-08","date_published":"2023-08","updated_at":"2026-07-22T22:25:00Z","subjects":["Computer Security","Compiling","Software Identification","Sbom","Machine Code Matching","Embedded Systems"],"languages":["en","eng"],"rights":["Copyright 2023 Hamilton Silberg"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/2142/121551","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Levchenko, Kiril"]},{"key":"dc:creator","label":"Author","values":["Silberg, Hamilton"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2023-08","2023-07-19"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Electrical & Computer Engr"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Computer Security","Compiling","Software Identification","Sbom","Machine Code Matching","Embedded Systems"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en","eng"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2023 Hamilton Silberg"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["https://hdl.handle.net/2142/121551"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2023-12-04 without embargo terms","The student, Hamilton Silberg, accepted the attached license on 2023-07-19 at 09:06.","The student, Hamilton Silberg, submitted this Thesis for approval on 2023-07-19 at 09:20.","This Thesis was approved for publication on 2023-07-19 at 11:20.","DSpace SAF Submission Ingestion Package generated from Vireo submission #19740 on 2023-12-04 at 17:03:26","Securing embedded systems relies on knowing and understanding the programs running on the system. Programs of modern scale import third-party libraries, which may evolve over time as they introduce and patch out vulnerabilities. Identifying component libraries and their version in a program binary is a valuable ability to harness. However, in the absence of well-kept documentation about included libraries, reference samples are needed to determine binary contents. A code matching tool developed by Professor Levchenko, called Morgoth, makes it possible to check for the inclusion of library code in an executable. With all the different embedded architectures and compilation options, an organized system is needed to track and compare these library 'variants.' We create a prototype with a small set of libraries, compilers, and architectures. We find that by examining machine code, one can differentiate library version and compiler used."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Machine code database for matching embedded libraries"]}]}],"canonical_facts":{"dc:contributor":["Levchenko, Kiril"],"dc:creator":["Silberg, Hamilton"],"dc:date":["2023-08","2023-07-19"],"dc:description":["Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2023-12-04 without embargo terms","The student, Hamilton Silberg, accepted the attached license on 2023-07-19 at 09:06.","The student, Hamilton Silberg, submitted this Thesis for approval on 2023-07-19 at 09:20.","This Thesis was approved for publication on 2023-07-19 at 11:20.","DSpace SAF Submission Ingestion Package generated from Vireo submission #19740 on 2023-12-04 at 17:03:26","Securing embedded systems relies on knowing and understanding the programs running on the system. Programs of modern scale import third-party libraries, which may evolve over time as they introduce and patch out vulnerabilities. Identifying component libraries and their version in a program binary is a valuable ability to harness. However, in the absence of well-kept documentation about included libraries, reference samples are needed to determine binary contents. A code matching tool developed by Professor Levchenko, called Morgoth, makes it possible to check for the inclusion of library code in an executable. With all the different embedded architectures and compilation options, an organized system is needed to track and compare these library 'variants.' We create a prototype with a small set of libraries, compilers, and architectures. We find that by examining machine code, one can differentiate library version and compiler used."],"dc:format":["application/pdf"],"dc:identifier":["https://hdl.handle.net/2142/121551"],"dc:language":["en","eng"],"dc:rights":["Copyright 2023 Hamilton Silberg"],"dc:subject":["Computer Security","Compiling","Software Identification","Sbom","Machine Code Matching","Embedded Systems"],"dc:title":["Machine code database for matching embedded libraries"],"dc:type":["text"],"thesis:degree_discipline":["Electrical & Computer Engr"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:00Z"}