reversing-react-native-apps

reversing-react-native-apps is a skill for Claude Code from trilwu/secskills. It costs 81 tokens per session (1,781 once invoked), scanned A, original, MIT.

A guide to examining React Native mobile apps, which are JavaScript applications packaged inside Android or iPhone shells. It covers readable JavaScript bundles and Hermes bytecode, a compiled form that needs special decompilers.

In plain words
What is it for?
Use it to inspect APK or IPA bundles, decompile Hermes bytecode, find application logic and network endpoints, or patch and hook JavaScript-level behaviour.
Why use it?
It helps when ordinary Android decompilers show only the app's wrapper and hide its real logic. It identifies the bundle format and the right approach for finding endpoints, secrets, business rules, or JavaScript behaviour.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Not installable on its own: it runs a file from its repository that does not travel with it. Clone the repository, or install whatever ships that file. The line is file ./out/index.android.bundle.

Part of the secskills-core plugin — 30 skills shipped together

Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add trilwu/secskills
Claude Code
/plugin install secskills-core

Made for: Claude Code.

Or install secskills-core, the plugin that ships this one along with the rest of its 30 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for reversing-react-native-apps

README.md
[![agentmods](https://agentmods.dev/badge/skills/trilwu/secskills/reversing-react-native-apps.svg)](https://agentmods.dev/skills/trilwu/secskills/reversing-react-native-apps)
Your own site
<a href="https://agentmods.dev/skills/trilwu/secskills/reversing-react-native-apps"><img src="https://agentmods.dev/badge/skills/trilwu/secskills/reversing-react-native-apps.svg" alt="Measured on agentmods" height="20"></a>
Per session 81 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,781 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00081 $0.01781
Opus 5 $0.00041 $0.00890
Sonnet 5 $0.00016 $0.00356
Haiku 4.5 $0.00008 $0.00178

Measured 6d ago against content hash 001fa00e24b3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

reversing-react-native-apps scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

secskills-core/skills/reversing-react-native-apps/SKILL.md · 166 lines

How it starts

The opening of the file, as written. The whole thing — 166 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Reversing React Native Apps

React Native apps are JavaScript wearing a native shell. That is good news — the application logic ships as a bundle you can read — unless the bundle was compiled to Hermes bytecode, in which case you need a decompiler and the version compatibility problem becomes the whole task.

When to Use

  • jadx shows ReactActivity, ReactNativeHost, and little application logic
  • The APK contains assets/index.android.bundle or lib/*/libhermes.so
  • The IPA contains main.jsbundle
  • You need to find API endpoints, secrets, or business logic in an RN app
  • You need to patch or hook JavaScript-level behaviour

When NOT to Use

  • Flutter (libapp.so, libflutter.so) — use reversing-flutter-apps
  • Unity (global-metadata.dat) — use reversing-unity-il2cpp
  • Native Java/Kotlin apps — use testing-mobile-applications
  • Native modules written in C/C++ — use analyzing-binaries

Identify the Bundle Format

This one check decides whether the job takes ten minutes or a day.

unzip -j target.apk 'assets/index.android.bundle' -d ./out
file ./out/index.android.bundle
xxd ./out/index.android.bundle | head -2
First bytes Format Path
Readable JS (var __BUNDLE_START, __d(function) Plain JavaScript Beautify and read directly
Binary, Hermes magic (c6 1f bc 03 little-endian) Hermes bytecode Decompile — see below
# Plain bundle: beautify, then it reads like any minified web app
npx js-beautify index.android.bundle -o bundle.js
rg -n 'https?://|api[_-]?key|Bearer |secret|token' bundle.js | head -50

A plain bundle is a gift. Module boundaries survive as __d(function(...) registrations, source maps are occasionally shipped by mistake (index.android.bundle.map — always check), and the whole application logic is in front of you.

Hermes Bytecode

Hermes compiles JS to its own bytecode (HBC). The bytecode version is embedded in the header and changes with React Native releases, which is the single biggest practical obstacle: a tool that supports HBC 74 will refuse or misparse HBC 96.

Read the full file on GitHub · 166 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 166 lines · 81 tokens per session scan A 001fa00e24b3

Subscribe to this mod's changes

reversing-react-native-apps is a skill published in the GitHub repository trilwu/secskills (135 stars, last pushed yesterday), licensed MIT. It adds 81 tokens to every session and 1,781 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

google-mobile-ads-android-migrate-to-next-gen

Migrates Android applications from the old, legacy Google Mobile Ads (GMA) SDK (com.google.android.gms:play-services-ads) to the new GMA Next-Gen SDK (com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk). Provides comprehensive mapping tables for imports, classes, and method signatures to help determine…

google/skills · 105 tokens

developer-device-platform-basics

Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP). Use when reserving remote Android devices, establishing connection tunnels, checking session status, or extending/cancelling leases. Don't use for iOS or local device/hardware inquiries.

google/skills · 57 tokens

google-mobile-ads-validate

Validates a project's Google Mobile Ads (GMA) SDK integration for iOS, Android, or Unity projects. Use when conducting a full pre-launch audit of an app that integrates GMA SDK or when validating any individual GMA SDK integration checks, such as when validating ad unit IDs and ad formats, SKAdNetwork IDs, mediation…

google/skills · 84 tokens

google-mobile-ads-interstitial

Provides instructions for implementing, integrating, or configuring Google Mobile Ads (GMA) SDK interstitial ads in Android, iOS, or Unity mobile applications. Use when the task involves setting up interstitial ads. Don't use for "rewarded interstitial" ads.

google/skills · 60 tokens

google-mobile-ads-rewarded

Provides instructions for implementing, integrating, or configuring Google Mobile Ads (GMA) SDK rewarded ads in Android, iOS, or Unity mobile applications. Use when the task involves setting up rewarded ads. Don't use for "rewarded interstitial" ads.

google/skills · 59 tokens

leanback-to-compose-tv-migration

Provides instructions and architectural patterns for migrating Android TV applications from legacy Leanback UI Toolkit, Android Views, or Support Fragments to Jetpack Compose for TV (androidx.tv). Use this skill for Leanback to Compose migrations, including browse screen, settings screen, authentication screen, login…

android/skills · 151 tokens