Dynamic Symbolic Execution of Java']Java Programs Using JNI

被引:0
|
作者
Vartanov, Sergey [1 ]
机构
[1] Lomonosov Moscow State Univ, Russian Acad Sci, Inst Syst Programming, Moscow, Russia
关键词
dynamic symbolic analysis; !text type='Java']Java[!/text] native interface; !text type='Java']Java[!/text] bytecode; path alternation;
D O I
暂无
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
For the sake of better performance, platform-specific facilities support, or the use of legacy code, Java applications may use JNI (Java Native Interface) to call native functions. We present an approach to perform dynamic symbolic execution of a Java program that tracks tainted data flow through Java bytecode and native code of shared libraries. We propose a tool based on modified virtual machine and static binary code instrumentation. This allows us to collect path constraints for both bytecode and binary code execution but avoid redundant processing of virtual machine own code. Modified path constraints are checked for their satisfiability in order to generate new inputs and execute new paths (to cover new basic blocks of target program). We describe initial experiments with our implementation based on Avian virtual machine and Dyninst.
引用
收藏
页码:83 / 86
页数:4
相关论文
共 50 条
  • [31] No Java']Java without caffeine -: A tool for dynamic analysis of Java']Java programs
    Guéhéneuc, YG
    Douence, R
    Jussien, N
    ASE 2002: 17TH IEEE INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, 2002, : 117 - 126
  • [32] An Automated Testing Tool for Java']Java Application Using Symbolic Execution based Test Case Generation
    Monpratarnchai, Supasit
    Fujiwara, Shoichiro
    Katayama, Asako
    Uehara, Tadahiro
    2013 20TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2013), VOL 2, 2013, : 93 - 98
  • [33] Benchmarking Java']Java Application Using JNI and Native C Application on Android
    Kim, Yeong-Jun
    Cho, Seong-Jin
    Kim, Kil-Jae
    Hwang, Eun-Hye
    Yoon, Seung-Hyun
    Jeon, Jae-Wook
    2012 12TH INTERNATIONAL CONFERENCE ON CONTROL, AUTOMATION AND SYSTEMS (ICCAS), 2012, : 284 - 288
  • [34] Java']JavaSplit: A runtime for execution of monolithic Java']Java programs on heterogeneous collections of commodity workstations
    Factor, M
    Schuster, A
    Shagin, K
    IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING, PROCEEDINGS, 2003, : 110 - 117
  • [35] Symbolic context-bounded analysis of multithreaded java']java programs
    Suwimonteerabuth, Dejvuth
    Esparza, Javier
    Schwoon, Stefan
    MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 270 - 287
  • [36] JBSE: A Symbolic Executor for Java']Java Programs with Complex Heap Inputs
    Braione, Pietro
    Denaro, Giovanni
    Pezze, Mauro
    FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, : 1018 - 1022
  • [37] The JAKOBI architecture -: a distributed dynamic execution environment in Java']Java
    Peschke, J
    Lüder, A
    2005 3rd IEEE International Conference on Industrial Informatics (INDIN), 2005, : 25 - 31
  • [38] A kickball game for ankle rehabilitation by JAVA']JAVA, JNI and VRML
    Choi, H
    Ryu, J
    Lee, C
    FOURTH INTERNATIONAL CONFERENCE ON VIRTUAL REALITY AND ITS APPLICATIONS IN INDUSTRY, 2004, 5444 : 439 - 444
  • [39] Explaining the Dynamic Structure and Behavior of Java']Java Programs Using a Visual Debugger
    Lessa, Demian
    Jayaraman, Bharat
    SIGCSE 12: PROCEEDINGS OF THE 43RD ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2011, : 668 - 668
  • [40] Proving programs incorrect using a sequent calculus for Java']Java dynamic logic
    Ruemmer, Philipp
    Shah, Muhammad Ali
    TESTS AND PROOFS, 2007, 4454 : 41 - +