Book section Open Access

Can a Program Reverse-Engineer Itself?

Amarilli, Antoine; Naccache, David; Rauzy, Pablo; Simion, Emil


JSON Export

{
  "files": [
    {
      "links": {
        "self": "https://zenodo.org/api/files/90369d2c-2048-476c-af87-d1959fa41f01/article.pdf"
      }, 
      "checksum": "md5:bed6b11c2377e19e9a783992d0eeec5c", 
      "bucket": "90369d2c-2048-476c-af87-d1959fa41f01", 
      "key": "article.pdf", 
      "type": "pdf", 
      "size": 313751
    }
  ], 
  "owners": [
    13380
  ], 
  "doi": "10.1007/978-3-642-25516-8_1", 
  "stats": {
    "version_unique_downloads": 27.0, 
    "unique_views": 62.0, 
    "views": 63.0, 
    "downloads": 27.0, 
    "unique_downloads": 27.0, 
    "version_unique_views": 62.0, 
    "volume": 8471277.0, 
    "version_downloads": 27.0, 
    "version_views": 63.0, 
    "version_volume": 8471277.0
  }, 
  "links": {
    "doi": "https://doi.org/10.1007/978-3-642-25516-8_1", 
    "latest_html": "https://zenodo.org/record/32155", 
    "bucket": "https://zenodo.org/api/files/90369d2c-2048-476c-af87-d1959fa41f01", 
    "badge": "https://zenodo.org/badge/doi/10.1007/978-3-642-25516-8_1.svg", 
    "html": "https://zenodo.org/record/32155", 
    "latest": "https://zenodo.org/api/records/32155"
  }, 
  "created": "2015-10-16T12:38:08+00:00", 
  "updated": "2019-11-14T19:10:35.392690+00:00", 
  "conceptrecid": "618112", 
  "revision": 9, 
  "id": 32155, 
  "metadata": {
    "access_right_category": "success", 
    "doi": "10.1007/978-3-642-25516-8_1", 
    "description": "Shape-memory alloys are metal pieces that "remember" their original cold-forged shapes and return to the pre-deformed shape after heating. In this work we construct a software analogous of shape-memory alloys: programs whose code resists obfuscation. We show how to pour arbitrary functions into protective envelops that allow recovering the functions' exact initial code after obfuscation. We explicit the theoretical foundations of our method and provide a concrete implementation in Scheme.", 
    "license": {
      "id": "CC-BY-4.0"
    }, 
    "title": "Can a Program Reverse-Engineer Itself?", 
    "journal": {
      "year": "2011", 
      "pages": "1-9", 
      "title": "Lecture Notes in Computer Science"
    }, 
    "relations": {
      "version": [
        {
          "count": 1, 
          "index": 0, 
          "parent": {
            "pid_type": "recid", 
            "pid_value": "618112"
          }, 
          "is_last": true, 
          "last_child": {
            "pid_type": "recid", 
            "pid_value": "32155"
          }
        }
      ]
    }, 
    "publication_date": "2011-01-01", 
    "creators": [
      {
        "orcid": "0000-0002-7977-4441", 
        "name": "Amarilli, Antoine"
      }, 
      {
        "orcid": "0000-0002-8651-6555", 
        "name": "Naccache, David"
      }, 
      {
        "orcid": "0000-0002-6293-3231", 
        "name": "Rauzy, Pablo"
      }, 
      {
        "name": "Simion, Emil"
      }
    ], 
    "access_right": "open", 
    "resource_type": {
      "subtype": "section", 
      "type": "publication", 
      "title": "Book section"
    }
  }
}
63
27
views
downloads
Views 63
Downloads 27
Data volume 8.5 MB
Unique views 62
Unique downloads 27

Share

Cite as