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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend