310 lines
16 KiB
HTML
310 lines
16 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Reverse Engineering Case Studies — REA</title>
|
|
<meta
|
|
name="description"
|
|
content="Follow REA investigations through code, figures and demos: an Android authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker."
|
|
/>
|
|
<!-- website:sharing:start -->
|
|
<!-- prettier-ignore -->
|
|
<link rel="canonical" href="https://rea.tools/showcase/" />
|
|
<!-- website:languages:start -->
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="en" href="https://rea.tools/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="zh-CN" href="https://rea.tools/zh-CN/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="zh-TW" href="https://rea.tools/zh-TW/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="ja" href="https://rea.tools/ja/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="ko" href="https://rea.tools/ko/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="tr" href="https://rea.tools/tr/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="ru" href="https://rea.tools/ru/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="vi" href="https://rea.tools/vi/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="th" href="https://rea.tools/th/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="de" href="https://rea.tools/de/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="es" href="https://rea.tools/es/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="fr" href="https://rea.tools/fr/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="uk" href="https://rea.tools/uk/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="pl" href="https://rea.tools/pl/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="pt-BR" href="https://rea.tools/pt-BR/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="ar" href="https://rea.tools/ar/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="fa" href="https://rea.tools/fa/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="id" href="https://rea.tools/id/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="it" href="https://rea.tools/it/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<link rel="alternate" hreflang="x-default" href="https://rea.tools/showcase/" />
|
|
<!-- website:languages:end -->
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:type" content="website" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:site_name" content="REA" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:title" content="Reverse Engineering Case Studies — REA" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:description" content="Follow REA investigations through code, figures and demos: an Android authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker." />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:url" content="https://rea.tools/showcase/" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:image" content="https://rea.tools/assets/social-card.png" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:image:type" content="image/png" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:image:width" content="1200" />
|
|
<!-- prettier-ignore -->
|
|
<meta property="og:image:height" content="630" />
|
|
<!-- prettier-ignore -->
|
|
<meta
|
|
property="og:image:alt"
|
|
content="REA — Find out how software works. Reverse engineering with your coding agent."
|
|
/>
|
|
<!-- prettier-ignore -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<!-- prettier-ignore -->
|
|
<meta name="twitter:title" content="Reverse Engineering Case Studies — REA" />
|
|
<!-- prettier-ignore -->
|
|
<meta name="twitter:description" content="Follow REA investigations through code, figures and demos: an Android authenticator, DX-Ball, Notion, TH04 and a DownUnderCTF flag checker." />
|
|
<!-- prettier-ignore -->
|
|
<meta name="twitter:image" content="https://rea.tools/assets/social-card.png" />
|
|
<!-- prettier-ignore -->
|
|
<meta
|
|
name="twitter:image:alt"
|
|
content="REA — Find out how software works. Reverse engineering with your coding agent."
|
|
/>
|
|
<!-- website:sharing:end -->
|
|
<meta name="theme-color" content="#ffffff" />
|
|
<link rel="icon" href="../assets/favicon.svg" type="image/svg+xml" />
|
|
<link rel="stylesheet" href="../assets/styles.css" />
|
|
<script src="../assets/main.js" defer></script>
|
|
</head>
|
|
<body id="top">
|
|
<a class="skip-link" href="#main">Skip to content</a>
|
|
<!-- website:header:start -->
|
|
<!-- prettier-ignore -->
|
|
<header class="site-header">
|
|
<div class="container header-inner">
|
|
<a class="brand" href="../" aria-label="REA home"
|
|
><span class="brand-name">REA</span
|
|
><span class="brand-caption" data-i18n-skip>Reverse Engineer Anything</span></a
|
|
>
|
|
<nav class="navigation" aria-label="Main navigation">
|
|
<a href="../showcase/" aria-current="page">Showcases</a>
|
|
<a href="../blog/">Blog</a>
|
|
<a href="../get-started/" class="nav-start">Get started</a>
|
|
<a href="../guides/">Guides</a>
|
|
<a href="../faq/">FAQ</a>
|
|
</nav>
|
|
<div class="header-social">
|
|
<details class="language-picker" data-i18n-skip><summary><span aria-hidden="true">文 / A</span> <span>English</span></summary><nav aria-label="English"><a href="../showcase/" lang="en" dir="ltr" data-language="en" aria-current="true">English</a><a href="../zh-CN/showcase/" lang="zh-CN" dir="ltr" data-language="zh-CN">简体中文</a><a href="../zh-TW/showcase/" lang="zh-TW" dir="ltr" data-language="zh-TW">繁體中文</a><a href="../ja/showcase/" lang="ja" dir="ltr" data-language="ja">日本語</a><a href="../ko/showcase/" lang="ko" dir="ltr" data-language="ko">한국어</a><a href="../tr/showcase/" lang="tr" dir="ltr" data-language="tr">Türkçe</a><a href="../ru/showcase/" lang="ru" dir="ltr" data-language="ru">Русский</a><a href="../vi/showcase/" lang="vi" dir="ltr" data-language="vi">Tiếng Việt</a><a href="../th/showcase/" lang="th" dir="ltr" data-language="th">ไทย</a><a href="../de/showcase/" lang="de" dir="ltr" data-language="de">Deutsch</a><a href="../es/showcase/" lang="es" dir="ltr" data-language="es">Español</a><a href="../fr/showcase/" lang="fr" dir="ltr" data-language="fr">Français</a><a href="../uk/showcase/" lang="uk" dir="ltr" data-language="uk">Українська</a><a href="../pl/showcase/" lang="pl" dir="ltr" data-language="pl">Polski</a><a href="../pt-BR/showcase/" lang="pt-BR" dir="ltr" data-language="pt-BR">Português (Brasil)</a><a href="../ar/showcase/" lang="ar" dir="rtl" data-language="ar">العربية</a><a href="../fa/showcase/" lang="fa" dir="rtl" data-language="fa">فارسی</a><a href="../id/showcase/" lang="id" dir="ltr" data-language="id">Bahasa Indonesia</a><a href="../it/showcase/" lang="it" dir="ltr" data-language="it">Italiano</a></nav></details>
|
|
<a
|
|
class="nav-github"
|
|
href="https://github.com/morluto/rea"
|
|
aria-label="REA on GitHub"
|
|
title="REA on GitHub"
|
|
>
|
|
<svg
|
|
width="22"
|
|
height="22"
|
|
viewBox="0 0 16 16"
|
|
aria-hidden="true"
|
|
focusable="false"
|
|
>
|
|
<path
|
|
fill="currentColor"
|
|
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82a7.65 7.65 0 0 1 2-.27c.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8Z"
|
|
/>
|
|
</svg>
|
|
<span class="nav-github-count" hidden aria-hidden="true"></span>
|
|
</a>
|
|
<a
|
|
class="nav-discord"
|
|
href="https://discord.gg/GkcryMnJDM"
|
|
aria-label="Join REA on Discord"
|
|
title="Join REA on Discord"
|
|
>
|
|
<svg
|
|
width="22"
|
|
height="22"
|
|
viewBox="0 0 24 24"
|
|
aria-hidden="true"
|
|
focusable="false"
|
|
>
|
|
<path
|
|
fill="currentColor"
|
|
d="M20.317 4.3698a19.7913 19.7913 0 0 0-4.8851-1.5152.0741.0741 0 0 0-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 0 0-.0785-.037 19.7363 19.7363 0 0 0-4.8852 1.515.0699.0699 0 0 0-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 0 0 .0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 0 0 .0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 0 0-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 0 1-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 0 1 .0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 0 1 .0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 0 1-.0066.1276 12.2986 12.2986 0 0 1-1.873.8914.0766.0766 0 0 0-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 0 0 .0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 0 0 .0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 0 0-.0312-.0286ZM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189Zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"
|
|
/>
|
|
</svg>
|
|
</a>
|
|
<a
|
|
class="nav-x"
|
|
href="https://x.com/reatools"
|
|
aria-label="Follow REA on X"
|
|
title="Follow REA on X"
|
|
>
|
|
<svg
|
|
width="18"
|
|
height="18"
|
|
viewBox="0 0 24 24"
|
|
aria-hidden="true"
|
|
focusable="false"
|
|
>
|
|
<path
|
|
fill="currentColor"
|
|
d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"
|
|
/>
|
|
</svg>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<!-- website:header:end -->
|
|
<main id="main" class="container">
|
|
<div class="page-heading">
|
|
<p class="breadcrumb"><a href="../">Home</a> / Showcases</p>
|
|
<h1>REA case studies.</h1>
|
|
<p class="lede">
|
|
Android, games, Electron and a CTF challenge, with code, figures and
|
|
checked results.
|
|
</p>
|
|
</div>
|
|
<div class="guide-index">
|
|
<section class="guide-entry">
|
|
<p class="eyebrow">Android · APK analysis</p>
|
|
<div>
|
|
<h2>How an authenticator generates a login code</h2>
|
|
<p>
|
|
Find Aegis's six-digit code calculation in its released APK. Trace
|
|
the generating methods with REA, then move a demo clock to see why
|
|
the code changes every 30 seconds.
|
|
</p>
|
|
<div class="guide-route">
|
|
<span>APK</span> <b aria-hidden="true">→</b>
|
|
<span>Generating code</span> <b aria-hidden="true">→</b>
|
|
<span>Recovered rule</span> <b aria-hidden="true">→</b>
|
|
<span>Adjustable clock</span>
|
|
</div>
|
|
<a class="text-link" href="aegis/">Read the Android case study</a>
|
|
</div>
|
|
</section>
|
|
<section class="guide-entry">
|
|
<p class="eyebrow">CTF · Native analysis</p>
|
|
<div>
|
|
<h2>Solve a CTF flag checker</h2>
|
|
<p>
|
|
Inspect an easy DownUnderCTF challenge with REA. Find its checking
|
|
functions, turn masks and sums into equations, then verify the
|
|
solved flag with the original program.
|
|
</p>
|
|
<div class="guide-route">
|
|
<span>Binary</span> <b aria-hidden="true">→</b>
|
|
<span>Checking code</span> <b aria-hidden="true">→</b>
|
|
<span>Equations</span> <b aria-hidden="true">→</b>
|
|
<span>Correct!</span>
|
|
</div>
|
|
<a class="text-link" href="ctf/">Read the CTF case study</a>
|
|
</div>
|
|
</section>
|
|
<section class="guide-entry">
|
|
<p class="eyebrow">Native · Reconstruction</p>
|
|
<div>
|
|
<h2>DX-Ball's sound-pan calculation</h2>
|
|
<p>
|
|
Recover a sound-pan calculation from a 1996 Windows game. REA's
|
|
instructions, caller references and numeric constants lead to a
|
|
small C function, checked against the original behavior and all 63
|
|
compiled bytes.
|
|
</p>
|
|
<div class="guide-route">
|
|
<span>Executable</span> <b aria-hidden="true">→</b>
|
|
<span>REA findings</span> <b aria-hidden="true">→</b>
|
|
<span>Recovered C</span> <b aria-hidden="true">→</b>
|
|
<span>Validation</span>
|
|
</div>
|
|
<a class="text-link" href="dx-ball/">Read the DX-Ball case study</a>
|
|
</div>
|
|
</section>
|
|
<section class="guide-entry">
|
|
<p class="eyebrow">Electron · Feature tracing</p>
|
|
<div>
|
|
<h2>How Notion copies text and HTML</h2>
|
|
<p>
|
|
Trace a page-facing API through Notion's packaged JavaScript.
|
|
Follow its IPC wrappers to the system clipboard, then see how a
|
|
small HTML marker keeps rich block data connected to a copy.
|
|
</p>
|
|
<div class="guide-route">
|
|
<span>Packaged app</span> <b aria-hidden="true">→</b>
|
|
<span>Exposed API</span> <b aria-hidden="true">→</b>
|
|
<span>IPC wrappers</span> <b aria-hidden="true">→</b>
|
|
<span>Clipboard</span>
|
|
</div>
|
|
<a class="text-link" href="notion/">Read the Notion case study</a>
|
|
</div>
|
|
</section>
|
|
<section class="guide-entry">
|
|
<p class="eyebrow">PC-98 DOS · Reconstruction</p>
|
|
<div>
|
|
<h2>How TH04 aims a ring of bullets</h2>
|
|
<p>
|
|
Inspect the original 16-bit angle helper with REA. Match its
|
|
multiply, divide and coordinate operations to readable C++, then
|
|
see how they produce a ring aimed at the player.
|
|
</p>
|
|
<div class="guide-route">
|
|
<span>Original DOS code</span> <b aria-hidden="true">→</b>
|
|
<span>REA instructions</span> <b aria-hidden="true">→</b>
|
|
<span>Angle calculation</span> <b aria-hidden="true">→</b>
|
|
<span>Bullet ring</span>
|
|
</div>
|
|
<a class="text-link" href="th04/">Read the TH04 case study</a>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<section class="article-section">
|
|
<h2>Step-by-step guides</h2>
|
|
<p>
|
|
The guides walk through a native calculation, an Electron export and a
|
|
browser request. Each starts with a prompt and a concrete target.
|
|
</p>
|
|
<a class="text-link" href="../guides/">Read the guides</a>
|
|
</section>
|
|
</main>
|
|
<!-- website:footer:start -->
|
|
<!-- prettier-ignore -->
|
|
<footer class="site-footer">
|
|
<div class="container footer-inner">
|
|
<p>REA · Reverse Engineer Anything</p>
|
|
<div class="footer-links">
|
|
<a href="https://github.com/morluto/rea">Source</a
|
|
><a href="https://github.com/morluto/rea/blob/main/LICENSE">MIT license</a
|
|
><a href="https://discord.gg/GkcryMnJDM">Join the community</a
|
|
><a href="https://x.com/reatools">Follow us on X</a>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<p class="sr-only" id="copy-status" role="status" aria-live="polite"></p>
|
|
<a class="back-to-top" href="#top" aria-label="Back to top">
|
|
<span aria-hidden="true">↑</span> Top
|
|
</a>
|
|
<!-- website:footer:end -->
|
|
</body>
|
|
</html>
|