80 lines
2.5 KiB
HTML
80 lines
2.5 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>
|
||
|
<script type="text/javascript" language="JavaScript">
|
||
|
<!--
|
||
|
if (window.self==window.top)
|
||
|
window.top.location.replace("../../index.html#"+window.location.pathname+window.location.hash);
|
||
|
else {
|
||
|
var hash="#"+window.location.pathname.replace(window.top.location.pathname.replace("index.html", ""), "");
|
||
|
if (window.top.location.hash!=hash)
|
||
|
window.top.location.hash=hash;
|
||
|
}
|
||
|
//-->
|
||
|
</script>
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<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 />
|
||
|
<noscript><div><a target="_top" href="../../index.html" class="button">Show menu</a></div></noscript>
|
||
|
<address>
|
||
|
Copyright © 2002-2011
|
||
|
<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
|
||
|
</address>
|
||
|
</body>
|
||
|
</html>
|
||
|
|