Dvm internals intro

Preview:

Citation preview

Inside DVMIntro

Nick Bova@mykola_bova

Nov 23 2013

About myself

• In IT since 2000• 6 years with mainframes• Refactoring FinExpert virtual machine and

finex programming language• Many assemblers in institute

• Twitter – @mykola_bova

Who am I?

Android developer? – NOJava System Architect? - YES

Who are you?

Who are you?

Android development?Java development?Reverse engineering?JVM/DVM internals?JVM/DVM assembler development?

Ground rules

Ground rules

- Please keep your questions until Q&A section- Or let’s put your questions to flipchart- Some small presents for good questions /

answers from Levi9 Ukraine- Small presents will be just passed to winner (no

much time for ceremonies, sorry)- Please feel free to help if you have what to add

during Q&A section

Why do we need reverse engineering?

Why do we need reverse engineering?

0 – understanding virtual machine internals1 – investigate existing solutions2 – protect your application in case of using

sensitive information

Why do we need reverse engineering?

0 – understanding virtual machine internals

I have a dream.

I have a dream.

Educational JVM- Clear and simple- Written on java- Accomplished with book

What do you want to hear?

What we can discuss

1. basics2. tools3. *.dex file format4. DVM byte code (inside DVM)5. "real life" android hacking6. obfuscation (just very very begining)

What is out of scope?

1. Detailed trip to obfuscation2. Debugging NDK calls3. Hacking .Net code (xamarin)4. All existing DVM related tools (too much)

Sources

- Book “Decompiling Android” Godfrey Nolan- Video “Dalvik VM Internals” https://sites.google.com/site/io/dalvik-vm-internals

Q&A