~/talk

Reverse-Engineering apps on the device - how far can we go?

Talkat droidcon NYC 2019 · 2019-08-26..08-27· [security]
name:Jeb Ware
links:none on file
slides:none on file

An app on device opens another app’s APK from PackageManager.publicSourceDir, treats it as a zip to read assets, uses Resources.getResourcesForApplication and a probing loop over resource IDs to enumerate and load strings, drawables and booleans, reads assets via assets.list, extracts classes.dex files and writes them out, loads them with DexClassLoader and Jake Wharton’s dex-member-list to enumerate classes and members, uses reflection to instantiate and invoke methods, and clones a layout inflater with CONTEXT_IGNORE_SECURITY* to inflate and display another app’s layouts — all without a desktop debugger.

AI-written summary · about

  1. 0:00Introduction to reverse engineering
  2. 0:57Understanding Android sandboxing
  3. 1:39Exploring APK contents
  4. 3:04Reading resources from APKs
  5. 7:14Extracting resource values
  6. 8:18Demo of resource extraction
  7. 9:05Accessing assets from other apps
  8. 10:29Analyzing DEX files
  9. 12:34Loading and executing code
  10. 15:43Demo of code execution
  11. 16:46Loading layouts from other apps
  12. 18:30Ignoring security restrictions
  13. 19:15Demo of layout inflation
  14. 20:20Manipulating loaded views
  15. 20:43Key takeaways and conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.