mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-02-16 07:30:16 +00:00
GP-3988 Bibliography
This commit is contained in:
parent
902c5f72b8
commit
119758c98a
@ -1,10 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE article [
|
||||
<!ENTITY acute "́"> <!-- Accent -->
|
||||
]>
|
||||
<article id="sleigh_title">
|
||||
<info>
|
||||
<title>SLEIGH</title>
|
||||
<subtitle>A Language for Rapid Processor Specification</subtitle>
|
||||
<pubdate>Originally published December 16, 2005</pubdate>
|
||||
<releaseinfo>Last updated March 2, 2023</releaseinfo>
|
||||
<releaseinfo>Last updated October 31, 2023</releaseinfo>
|
||||
</info>
|
||||
<simplesect id="sleigh_history">
|
||||
<info>
|
||||
@ -17,7 +20,8 @@
|
||||
several redesign iterations, but it can still trace its heritage
|
||||
from the language SLED, from whom its name is derived. SLED, the
|
||||
“Specification Language for Encoding and Decoding”, was defined by
|
||||
Norman Ramsey and Mary F. Fernandez as a concise way to define the
|
||||
Norman Ramsey and Mary F. Ferna´ndez in <xref linkend="Ramsey97"/>
|
||||
as a concise way to define the
|
||||
translation, in both directions, between machine instructions and
|
||||
their corresponding assembly statements. This facilitated the
|
||||
development of architecture independent disassemblers and
|
||||
@ -27,13 +31,97 @@
|
||||
The direct predecessor of SLEIGH was an implementation of SLED for
|
||||
GHIDRA, which concentrated on its reverse-engineering
|
||||
capabilities. The main addition of SLEIGH is the ability to provide
|
||||
semantic descriptions of instructions for data-flow and
|
||||
decompilation analysis. This piece of SLEIGH was originally a
|
||||
separate language, the Semantic Syntax Language (SSL), very loosely
|
||||
based on concepts and a language of the same name developed by
|
||||
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey, for the
|
||||
University of Queensland Binary Translator (UQBT) project.
|
||||
semantic descriptions of instructions for data-flow and decompilation
|
||||
analysis. This piece of SLEIGH borrowed ideas from the Semantic Syntax Language (SSL),
|
||||
a specification language developed in <xref linkend="Cifuentes00"/> for the
|
||||
University of Queensland Binary Translator (UQBT) project by
|
||||
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey.
|
||||
</para>
|
||||
<para>
|
||||
Dr. Cristina Cifuentes' work, in general, was an important starting point for the GHIDRA decompiler.
|
||||
Its design follows the basic structure layed out in her 1994 thesis "Reverse Compilation Techniques":
|
||||
<informalexample>
|
||||
<itemizedlist mark='bullet' spacing='compact'>
|
||||
<listitem>
|
||||
Disassembly of machine instructions and translation to an intermediate representation (IR).
|
||||
</listitem>
|
||||
<listitem>
|
||||
Transformation toward a high-level representation via
|
||||
<itemizedlist mark='circle' spacing='compact'>
|
||||
<listitem>
|
||||
Data-flow analysis, including dead code analysis and copy propagation.
|
||||
</listitem>
|
||||
<listitem>
|
||||
Control-flow analysis using graph reducibility to achieve a structured representation.
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
Back-end code generation from the transformed representation.
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</informalexample>
|
||||
In keeping with her philosophy of decompilation, SLEIGH is GHIDRA's implementation of the first step.
|
||||
It efficiently couples disassembly of machine instructions with the initial translation into an IR.
|
||||
</para>
|
||||
<bibliolist>
|
||||
<title>References</title>
|
||||
<biblioentry id="Cifuentes94">
|
||||
<authorgroup>
|
||||
<author><personname>
|
||||
<firstname>Cristina</firstname><surname>Cifuentes</surname>
|
||||
</personname></author>
|
||||
</authorgroup>
|
||||
<title>
|
||||
Reverse Compilation Techniques
|
||||
</title>
|
||||
<pubdate>1994</pubdate>
|
||||
<publisher>
|
||||
<publishername>Ph.D. Dissertation. Queensland University of Technology</publishername>
|
||||
<address>
|
||||
<city>Brisbane City</city>,
|
||||
<state>QLD</state>,
|
||||
<country>Australia</country>
|
||||
</address>
|
||||
</publisher>
|
||||
</biblioentry>
|
||||
<biblioentry id="Cifuentes00">
|
||||
<biblioset relation='article'>
|
||||
<authorgroup>
|
||||
<author><personname>
|
||||
<firstname>Cristina</firstname><surname>Cifuentes</surname>
|
||||
</personname></author>
|
||||
<author><personname>
|
||||
<firstname>Mike</firstname><surname>Van Emmerik</surname>
|
||||
</personname></author>
|
||||
</authorgroup>
|
||||
<title>UQBT: Adaptable Binary Translation at Low Cost</title>
|
||||
</biblioset>
|
||||
<biblioset relation='journal'>
|
||||
<title>Computer</title>
|
||||
<date>(Mar. 2000)</date>
|
||||
<pagenums>pp. 60-66</pagenums>
|
||||
</biblioset>
|
||||
</biblioentry>
|
||||
<biblioentry id="Ramsey97">
|
||||
<biblioset relation='article'>
|
||||
<authorgroup>
|
||||
<author><personname>
|
||||
<firstname>Norman</firstname><surname>Ramsey</surname>
|
||||
</personname></author>
|
||||
<author><personname>
|
||||
<firstname>Mary F.</firstname><surname>Ferna´ndez</surname>
|
||||
</personname></author>
|
||||
</authorgroup>
|
||||
<title>Specifying Representations of Machine Instructions</title>
|
||||
</biblioset>
|
||||
<biblioset relation='journal'>
|
||||
<title>ACM Trans. Programming Languages and Systems</title>
|
||||
<date>(May 1997)</date>
|
||||
<pagenums>pp. 492-524</pagenums>
|
||||
</biblioset>
|
||||
</biblioentry>
|
||||
</bibliolist>
|
||||
</simplesect>
|
||||
|
||||
<simplesect id="sleigh_overview">
|
||||
|
@ -32,4 +32,6 @@ task before
|
||||
|
||||
<xsl:param name="section.autolabel" select="1"/> <!-- Automatically number sections -->
|
||||
|
||||
<xsl:param name="bibliography.numbered" select="1"/> <!-- Number bibliography entries -->
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>SLEIGH</title>
|
||||
<link rel="stylesheet" type="text/css" href="DefaultStyle.css">
|
||||
<link rel="stylesheet" type="text/css" href="languages.css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
|
||||
<link rel="home" href="sleigh.html" title="SLEIGH">
|
||||
<link rel="next" href="sleigh_layout.html" title="2. Basic Specification Layout">
|
||||
</head>
|
||||
@ -27,7 +27,7 @@
|
||||
<div><h1 class="title">
|
||||
<a name="sleigh_title"></a>SLEIGH</h1></div>
|
||||
<div><h3 class="subtitle"><i>A Language for Rapid Processor Specification</i></h3></div>
|
||||
<div><p class="releaseinfo">Last updated March 2, 2023</p></div>
|
||||
<div><p class="releaseinfo">Last updated October 31, 2023</p></div>
|
||||
<div><p class="pubdate">Originally published December 16, 2005</p></div>
|
||||
</div>
|
||||
<hr>
|
||||
@ -109,7 +109,8 @@
|
||||
several redesign iterations, but it can still trace its heritage
|
||||
from the language SLED, from whom its name is derived. SLED, the
|
||||
“Specification Language for Encoding and Decoding”, was defined by
|
||||
Norman Ramsey and Mary F. Fernandez as a concise way to define the
|
||||
Norman Ramsey and Mary F. Fernández in <a class="xref" href="sleigh.html#Ramsey97">[3]</a>
|
||||
as a concise way to define the
|
||||
translation, in both directions, between machine instructions and
|
||||
their corresponding assembly statements. This facilitated the
|
||||
development of architecture independent disassemblers and
|
||||
@ -119,13 +120,57 @@
|
||||
The direct predecessor of SLEIGH was an implementation of SLED for
|
||||
GHIDRA, which concentrated on its reverse-engineering
|
||||
capabilities. The main addition of SLEIGH is the ability to provide
|
||||
semantic descriptions of instructions for data-flow and
|
||||
decompilation analysis. This piece of SLEIGH was originally a
|
||||
separate language, the Semantic Syntax Language (SSL), very loosely
|
||||
based on concepts and a language of the same name developed by
|
||||
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey, for the
|
||||
University of Queensland Binary Translator (UQBT) project.
|
||||
semantic descriptions of instructions for data-flow and decompilation
|
||||
analysis. This piece of SLEIGH borrowed ideas from the Semantic Syntax Language (SSL),
|
||||
a specification language developed in <a class="xref" href="sleigh.html#Cifuentes00">[2]</a> for the
|
||||
University of Queensland Binary Translator (UQBT) project by
|
||||
Cristina Cifuentes, Mike Van Emmerik and Norman Ramsey.
|
||||
</p>
|
||||
<p>
|
||||
Dr. Cristina Cifuentes' work, in general, was an important starting point for the GHIDRA decompiler.
|
||||
Its design follows the basic structure layed out in her 1994 thesis "Reverse Compilation Techniques":
|
||||
</p>
|
||||
<div class="informalexample"><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: bullet; ">
|
||||
<li class="listitem" style="list-style-type: disc">
|
||||
Disassembly of machine instructions and translation to an intermediate representation (IR).
|
||||
</li>
|
||||
<li class="listitem" style="list-style-type: disc">
|
||||
Transformation toward a high-level representation via
|
||||
<div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle; ">
|
||||
<li class="listitem" style="list-style-type: circle">
|
||||
Data-flow analysis, including dead code analysis and copy propagation.
|
||||
</li>
|
||||
<li class="listitem" style="list-style-type: circle">
|
||||
Control-flow analysis using graph reducibility to achieve a structured representation.
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li class="listitem" style="list-style-type: disc">
|
||||
Back-end code generation from the transformed representation.
|
||||
</li>
|
||||
</ul></div></div>
|
||||
<p>
|
||||
In keeping with her philosophy of decompilation, SLEIGH is GHIDRA's implementation of the first step.
|
||||
It efficiently couples disassembly of machine instructions with the initial translation into an IR.
|
||||
</p>
|
||||
<div class="bibliolist">
|
||||
<p class="title"><b>References</b></p>
|
||||
<div class="biblioentry">
|
||||
<a name="Cifuentes94"></a><p>[1] <span class="authorgroup"><span class="firstname">Cristina</span> <span class="surname">Cifuentes</span>. </span><span class="title"><i>
|
||||
Reverse Compilation Techniques
|
||||
</i>. </span><span class="pubdate">1994. </span><span class="publisher"><span class="publishername">Ph.D. Dissertation. Queensland University of Technology. </span><span class="address">
|
||||
<span class="city">Brisbane City</span>,
|
||||
<span class="state">QLD</span>,
|
||||
<span class="country">Australia</span>
|
||||
. </span></span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="Cifuentes00"></a><p>[2] <span class="biblioset"><span class="authorgroup"><span class="firstname">Cristina</span> <span class="surname">Cifuentes</span> and <span class="firstname">Mike</span> <span class="surname">Van Emmerik</span>. </span>“UQBT: Adaptable Binary Translation at Low Cost”. </span><span class="biblioset"><i>Computer</i>. <span class="date">(Mar. 2000). </span><span class="pagenums">pp. 60-66. </span></span></p>
|
||||
</div>
|
||||
<div class="biblioentry">
|
||||
<a name="Ramsey97"></a><p>[3] <span class="biblioset"><span class="authorgroup"><span class="firstname">Norman</span> <span class="surname">Ramsey</span> and <span class="firstname">Mary F.</span> <span class="surname">Fernández</span>. </span>“Specifying Representations of Machine Instructions”. </span><span class="biblioset"><i>ACM Trans. Programming Languages and Systems</i>. <span class="date">(May 1997). </span><span class="pagenums">pp. 492-524. </span></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="simplesect">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
|
Loading…
Reference in New Issue
Block a user