Academic Journal

A refined decompiler to generate C code with high readability.

Λεπτομέρειες βιβλιογραφικής εγγραφής
Τίτλος: A refined decompiler to generate C code with high readability.
Συγγραφείς: Chen, Gengbiao, Qi, Zhengwei, Huang, Shiqiu, Ni, Kangqi, Zheng, Yudi, Binder, Walter, Guan, Haibing
Πηγή: Software: Practice & Experience; Nov2013, Vol. 43 Issue 11, p1337-1358, 22p
Θεματικοί όροι: Decompilers (Computer programs), Computer security, IDA (Computer system), Reverse engineering, Source code, Data flow computing, Computer systems
Περίληψη: SUMMARY As a key part of reverse engineering, decompilation plays a very important role in software security and maintenance. A number of tools, such as Boomerang and IDA Hex_rays, have been developed to translate executable programs into source code in a relatively high-level language. Unfortunately, most existing decompilation tools suffer from low accuracy in identifying variables, functions, and composite structures, resulting in poor readability. To address these limitations, we present a practical decompiler called C-Decompiler for Windows C programs that (i) uses a shadow stack to perform refined data flow analysis, (ii) adopts inter-basic-block register propagation to reduce redundant variables, and (iii) recognizes library (i.e., Standard Template Library) functions by signatures. We evaluate and compare the decompilation quality of C-Decompiler with two existing tools, Boomerang and IDA Hex_rays, considering four aspects: function analysis, variable expansion rate, total percentage reduction, and cyclomatic complexity. Our experimental results show that on average, C-Decompiler has the highest total percentage reduction of 55.91%, lowest variable expansion rate of 55.79%, and the same cyclomatic complexity as the original source code for each considered application. Furthermore, in our experiments, C-Decompiler is able to recognize functions with a lower false positive and false negative rate than the other decompilers. A case study and our evaluation results confirm that C-Decompiler is a practical tool to produce highly readable C-style code. Copyright © 2012 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
Copyright of Software: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Βάση Δεδομένων: Complementary Index
FullText Links:
  – Type: other
Text:
  Availability: 0
Header DbId: edb
DbLabel: Complementary Index
An: 90673372
RelevancyScore: 835
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 834.636291503906
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: A refined decompiler to generate C code with high readability.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Chen%2C+Gengbiao%22">Chen, Gengbiao</searchLink><br /><searchLink fieldCode="AR" term="%22Qi%2C+Zhengwei%22">Qi, Zhengwei</searchLink><br /><searchLink fieldCode="AR" term="%22Huang%2C+Shiqiu%22">Huang, Shiqiu</searchLink><br /><searchLink fieldCode="AR" term="%22Ni%2C+Kangqi%22">Ni, Kangqi</searchLink><br /><searchLink fieldCode="AR" term="%22Zheng%2C+Yudi%22">Zheng, Yudi</searchLink><br /><searchLink fieldCode="AR" term="%22Binder%2C+Walter%22">Binder, Walter</searchLink><br /><searchLink fieldCode="AR" term="%22Guan%2C+Haibing%22">Guan, Haibing</searchLink>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: Software: Practice & Experience; Nov2013, Vol. 43 Issue 11, p1337-1358, 22p
– Name: Subject
  Label: Subject Terms
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Decompilers+%28Computer+programs%29%22">Decompilers (Computer programs)</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+security%22">Computer security</searchLink><br /><searchLink fieldCode="DE" term="%22IDA+%28Computer+system%29%22">IDA (Computer system)</searchLink><br /><searchLink fieldCode="DE" term="%22Reverse+engineering%22">Reverse engineering</searchLink><br /><searchLink fieldCode="DE" term="%22Source+code%22">Source code</searchLink><br /><searchLink fieldCode="DE" term="%22Data+flow+computing%22">Data flow computing</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+systems%22">Computer systems</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: SUMMARY As a key part of reverse engineering, decompilation plays a very important role in software security and maintenance. A number of tools, such as Boomerang and IDA Hex_rays, have been developed to translate executable programs into source code in a relatively high-level language. Unfortunately, most existing decompilation tools suffer from low accuracy in identifying variables, functions, and composite structures, resulting in poor readability. To address these limitations, we present a practical decompiler called C-Decompiler for Windows C programs that (i) uses a shadow stack to perform refined data flow analysis, (ii) adopts inter-basic-block register propagation to reduce redundant variables, and (iii) recognizes library (i.e., Standard Template Library) functions by signatures. We evaluate and compare the decompilation quality of C-Decompiler with two existing tools, Boomerang and IDA Hex_rays, considering four aspects: function analysis, variable expansion rate, total percentage reduction, and cyclomatic complexity. Our experimental results show that on average, C-Decompiler has the highest total percentage reduction of 55.91%, lowest variable expansion rate of 55.79%, and the same cyclomatic complexity as the original source code for each considered application. Furthermore, in our experiments, C-Decompiler is able to recognize functions with a lower false positive and false negative rate than the other decompilers. A case study and our evaluation results confirm that C-Decompiler is a practical tool to produce highly readable C-style code. Copyright © 2012 John Wiley & Sons, Ltd. [ABSTRACT FROM AUTHOR]
– Name: Abstract
  Label:
  Group: Ab
  Data: <i>Copyright of Software: Practice & Experience is the property of Wiley-Blackwell and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edb&AN=90673372
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1002/spe.2138
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 22
        StartPage: 1337
    Subjects:
      – SubjectFull: Decompilers (Computer programs)
        Type: general
      – SubjectFull: Computer security
        Type: general
      – SubjectFull: IDA (Computer system)
        Type: general
      – SubjectFull: Reverse engineering
        Type: general
      – SubjectFull: Source code
        Type: general
      – SubjectFull: Data flow computing
        Type: general
      – SubjectFull: Computer systems
        Type: general
    Titles:
      – TitleFull: A refined decompiler to generate C code with high readability.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Chen, Gengbiao
      – PersonEntity:
          Name:
            NameFull: Qi, Zhengwei
      – PersonEntity:
          Name:
            NameFull: Huang, Shiqiu
      – PersonEntity:
          Name:
            NameFull: Ni, Kangqi
      – PersonEntity:
          Name:
            NameFull: Zheng, Yudi
      – PersonEntity:
          Name:
            NameFull: Binder, Walter
      – PersonEntity:
          Name:
            NameFull: Guan, Haibing
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 11
              Text: Nov2013
              Type: published
              Y: 2013
          Identifiers:
            – Type: issn-print
              Value: 00380644
          Numbering:
            – Type: volume
              Value: 43
            – Type: issue
              Value: 11
          Titles:
            – TitleFull: Software: Practice & Experience
              Type: main
ResultId 1