The Problems with JNI Obfuscation in the Android Operating System

The Problems with JNI Obfuscation in the Android Operating System

via YouTube Direct link

About the Speaker

1 of 39

1 of 39

About the Speaker

Class Central Classrooms beta

YouTube playlists curated by Class Central.

Classroom Contents

The Problems with JNI Obfuscation in the Android Operating System

Automatically move to the next video in the Classroom when playback concludes

  1. 1 About the Speaker
  2. 2 Android Build Process
  3. 3 Android Software Stack
  4. 4 Java Native Interface (JNI)
  5. 5 Why JNI?
  6. 6 Why Obfuscate Code?
  7. 7 Proguard Configuration
  8. 8 JNI EXAMPLE CODE
  9. 9 RE Time: Static Analysis!!
  10. 10 All eyes on the JNI Class!!
  11. 11 Make sure device is rooted
  12. 12 Step O: Make sure the application is debuggable.
  13. 13 Verify device is listed
  14. 14 List Debugable Processes
  15. 15 Verify that it is the correct PID
  16. 16 Forward Connection
  17. 17 Launch JDB
  18. 18 List Methods
  19. 19 Step 6: Break on method
  20. 20 RE Time: Dynamic Analysis!!
  21. 21 Retrieve APK and unzip its contents.
  22. 22 Create Directories
  23. 23 Pull System Libraries
  24. 24 Find the Applications Process ID
  25. 25 Move gdbserver on to the device.
  26. 26 Launch gdbserver on to the device.
  27. 27 Port Forward from computer to the device.
  28. 28 Launch arm-linux-androideabi gdb
  29. 29 Load Libraries and set target
  30. 30 RE Time: Dynamic Analysis Step 11: Set Remote Target
  31. 31 Set Breakpoints
  32. 32 Step Through and get results.
  33. 33 Why did obfuscation fail?
  34. 34 How do we solve this problem?
  35. 35 Solution 1: Register Natives
  36. 36 Problems with Solution 1?
  37. 37 Classes
  38. 38 Problems with Solution 2?
  39. 39 Suggestions

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.