Главная
Study mode:
on
1
About the Speaker
2
Android Build Process
3
Android Software Stack
4
Java Native Interface (JNI)
5
Why JNI?
6
Why Obfuscate Code?
7
Proguard Configuration
8
JNI EXAMPLE CODE
9
RE Time: Static Analysis!!
10
All eyes on the JNI Class!!
11
Make sure device is rooted
12
Step O: Make sure the application is debuggable.
13
Verify device is listed
14
List Debugable Processes
15
Verify that it is the correct PID
16
Forward Connection
17
Launch JDB
18
List Methods
19
Step 6: Break on method
20
RE Time: Dynamic Analysis!!
21
Retrieve APK and unzip its contents.
22
Create Directories
23
Pull System Libraries
24
Find the Applications Process ID
25
Move gdbserver on to the device.
26
Launch gdbserver on to the device.
27
Port Forward from computer to the device.
28
Launch arm-linux-androideabi gdb
29
Load Libraries and set target
30
RE Time: Dynamic Analysis Step 11: Set Remote Target
31
Set Breakpoints
32
Step Through and get results.
33
Why did obfuscation fail?
34
How do we solve this problem?
35
Solution 1: Register Natives
36
Problems with Solution 1?
37
Classes
38
Problems with Solution 2?
39
Suggestions
Description:
Explore the challenges of JNI obfuscation in the Android Operating System through this informative conference talk from Derbycon 2015. Delve into the Android build process, software stack, and Java Native Interface (JNI) fundamentals. Understand the motivations behind code obfuscation and examine Proguard configuration. Follow along with static and dynamic analysis techniques, including device rooting, debugging processes, and using gdbserver. Investigate why obfuscation fails and consider potential solutions, such as registering natives. Gain insights into the complexities of Android security and learn practical approaches to address JNI obfuscation issues.

The Problems with JNI Obfuscation in the Android Operating System

Add to list
0:00 / 0:00