81 lines
3.0 KiB
HTML
81 lines
3.0 KiB
HTML
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
|
|
<meta http-equiv="content-style-type" content="text/css">
|
|
<link rel="stylesheet" type="text/css" href="../style.css">
|
|
<title>ReTrace Introduction</title>
|
|
</head>
|
|
<body>
|
|
|
|
<script type="text/javascript" language="JavaScript">
|
|
<!--
|
|
if (window.self==window.top)
|
|
document.write('<a class="largebutton" target="_top" href="../../index.html#manual/retrace/introduction.html">ProGuard index</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a> <a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>')
|
|
//-->
|
|
</script>
|
|
<noscript>
|
|
<a class="largebutton" target="_top" href="../../index.html#manual/retrace/introduction.html">ProGuard index</a>
|
|
<a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a>
|
|
<a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a>
|
|
<a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>
|
|
</noscript>
|
|
|
|
<h2>Introduction</h2>
|
|
|
|
<b>ReTrace</b> is a companion tool for <b>ProGuard</b> that 'de-obfuscates'
|
|
stack traces.
|
|
<p>
|
|
When an obfuscated program throws an exception, the resulting stack trace
|
|
typically isn't very informative. Class names and method names have been
|
|
replaced by short meaningless strings. Source file names and line numbers are
|
|
missing altogether. While this may be intentional, it can also be inconvenient
|
|
when debugging problems.
|
|
<p>
|
|
|
|
<table class="diagram" align="center">
|
|
|
|
<tr>
|
|
<td rowspan="1" class="lightblock">Original code</td>
|
|
<td class="transparentblock">- <b>ProGuard</b> →</td>
|
|
<td rowspan="1" class="lightblock">Obfuscated code</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td rowspan="3" class="transparentblock"></td>
|
|
<td class="transparentblock">↓</td>
|
|
<td class="transparentblock">↓</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="whiteblock">Mapping file</td>
|
|
<td class="transparentblock">↓</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="transparentblock">↓</td>
|
|
<td class="transparentblock">↓</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="whiteblock">Readable stack trace</td>
|
|
<td class="transparentblock">← <b>ReTrace</b> -</td>
|
|
<td class="whiteblock">Obfuscated stack trace</td>
|
|
</tr>
|
|
|
|
</table>
|
|
<p>
|
|
ReTrace can read an obfuscated stack trace and restore it to what it would
|
|
look like without obfuscation. The restoration is based on the mapping file
|
|
that ProGuard can write out during obfuscation. The mapping file links the
|
|
original class names and class member names to their obfuscated names.
|
|
|
|
<hr />
|
|
<address>
|
|
Copyright © 2002-2014
|
|
<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a> @ <a target="top" href="http://www.saikoa.com/">Saikoa</a>.
|
|
</address>
|
|
</body>
|
|
</html>
|
|
|