pr progr gram t am trans ansforma o rma on f n for a r
play

Pr Progr gram T am Trans ansforma,o rma,on f n for A r Aiding - PowerPoint PPT Presentation

Pr Progr gram T am Trans ansforma,o rma,on f n for A r Aiding iding St Sta,c a,c A Analy nalysis sis in A in Andr ndroid A id Applic pplica,o a,ons ns Presented by Zhenyu Ning 1 Outline 1. Background 2. Mo:va:on 3.


  1. Pr Progr gram T am Trans ansforma,o rma,on f n for A r Aiding iding St Sta,c a,c A Analy nalysis sis in A in Andr ndroid A id Applic pplica,o a,ons ns Presented by Zhenyu Ning 1

  2. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 2

  3. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 3

  4. Android JVM Figure from: hJps:// en.wikipedia.org/wiki/ Dalvik_(soOware) 4

  5. Applica,on Analysis • Sta:c Analysis Decompile the applica:on, and analyze its byte codes. tools: dex2jar, jd-gui, etc. • Dynamic Analysis Execute the applica:on in an isolated execu:on environment, and analyze the execu:on. tools: Android emulator, QEMU, etc. 5

  6. Background • Sta:c analysis FlowDroid, DroidSafe, HornDroid • Dynamic analysis DroidScope, TaintDroid, TaintART • Hybrid analysis Harvester 6

  7. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 7

  8. Mo,va,on • Sta:c analysis tools suffer from • Code obscura:on and packing • Self-modifying code • Dynamic analysis tools suffer from • Implicit taint flows • Performance vs. accuracy • Large-scale analysis 8

  9. Mo,va,on • Use dynamic analysis to solve packed and self-modifying code. • Use sta:c analysis to detect implicit flows • Make the analysis applicable in large-scale analysis. 9

  10. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 10

  11. Rela,ve Work • DexHunter • Dump Dex file from memory • AppSpear • Use run:me data structure to rebuild Dex file Assume there exists a clear boundary between packer’s code and the applica8on’s code 11

  12. 12

  13. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 13

  14. Implementa,on • Just-In-Time instruc:on-level collec:on • Offline reassembling 14

  15. Implementa,on • Code scale • Loops • Self-modifying code 15

  16. Implementa,on • The bytecode of a method is organized in an 16-bit array • A variable dex_pc indicates the index of the execu:ng instruc:on • Solu8on : Compare instruc:ons with same dex_pc 16

  17. Implementa,on 17

  18. Implementa,on 18

  19. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 19

  20. Evalua,on on DroidBench 20

  21. Evalua,on on DroidBench 21

  22. Evalua,on on real-world apps 22

  23. Outline 1. Background 2. Mo:va:on 3. Related work 4. Implementa:on 5. Evalua:on 6. Future work 23

  24. Future work • Code coverage • Na:ve code • Regular JVM in x86 24

  25. Thank you! 25

Recommend


More recommend