Filters








4,995 Hits in 5.1 sec

Verifying Low-Level Implementations of High-Level Datatypes [chapter]

Christopher L. Conway, Clark Barrett
2010 Lecture Notes in Computer Science  
For efficiency and portability, network packet processing code is typically written in low-level languages and makes use of bit-level operations to compactly represent data.  ...  We introduce a new approach to the verification problem, using a high-level definition of packet types as part of a specification rather than an implementation.  ...  Rakamaric and Hu [18] describe a variation of Burstall's memory model [4, 3] suitable for bit-precise verification of low-level code.  ... 
doi:10.1007/978-3-642-14295-6_28 fatcat:zwuin2rb7ncq3j7dnokbxqr4zy

Predator: A Shape Analyzer Based on Symbolic Memory Graphs [chapter]

Kamil Dudka, Petr Peringer, Tomáš Vojnar
2014 Lecture Notes in Computer Science  
Predator is a shape analyzer that uses the abstract domain of symbolic memory graphs in order to support various forms of low-level memory manipulation commonly used in optimized C code.  ...  This paper briefly describes the verification approach taken by Predator and its strengths and weaknesses revealed during its participation in the Software Verification Competition (SV-COMP'14).  ...  Verification Approach Predator is a shape analyzer that uses the abstract domain of symbolic memory graphs (SMGs) in order to support various forms of low-level memory manipulation commonly used in optimized  ... 
doi:10.1007/978-3-642-54862-8_33 fatcat:faqsrjlmy5apfoqdmlidpp4blm

Types, Maps and Separation Logic [chapter]

Rafal Kolanski, Gerwin Klein
2009 Lecture Notes in Computer Science  
This paper presents a separation-logic framework for reasoning about low-level C code in the presence of virtual memory.  ...  We describe our abstract, generic Isabelle/HOL framework for reasoning about virtual memory in separation logic, and we instantiate this framework to a precise, formal model of ARMv6 page tables.  ...  Acknowledgements We thank Thomas Sewell for commenting on a draft of this paper and Michael Norrish for help with integrating the C parser.  ... 
doi:10.1007/978-3-642-03359-9_20 fatcat:gdrlfgvwlrbdxfplhbtwc3rhpi

A Heap Model for Java Bytecode to Support Separation Logic

Chenguang Luo, Guanhua He, Shengchao Qin
2008 2008 15th Asia-Pacific Software Engineering Conference  
Our low-level heap model for Java bytecode would allow us to reason about the size and alignment properties of primitive values stored in the heap.  ...  Program codes running on or being downloaded into such devices are often available in low-level bytecode forms.  ...  low-level and high-level properties (such as values represented with bytes, their types and their nesting objects).  ... 
doi:10.1109/apsec.2008.72 dblp:conf/apsec/LuoHQ08 fatcat:s4owckry7jbqpnd6bsqxjb4gve

Types, bytes, and separation logic

Harvey Tuch, Gerwin Klein, Michael Norrish
2007 Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '07  
At the low level, we do not commit common oversimplifications, but correctly deal with C's model of programming language values and the heap.  ...  At the level of separation logic, we are still able to reason abstractly and efficiently. We implement this framework in the theorem prover Isabelle/HOL and demonstrate it on two case studies.  ...  Acknowledgements We thank Kai Engelhardt, Carroll Morgan, Manuel Chakravarty, and Rob van Glabbeek for discussions and for reading drafts of this paper.  ... 
doi:10.1145/1190216.1190234 dblp:conf/popl/TuchKN07 fatcat:5cus4vrylraupde6nvgydhvgsm

Types, bytes, and separation logic

Harvey Tuch, Gerwin Klein, Michael Norrish
2007 SIGPLAN notices  
At the low level, we do not commit common oversimplifications, but correctly deal with C's model of programming language values and the heap.  ...  At the level of separation logic, we are still able to reason abstractly and efficiently. We implement this framework in the theorem prover Isabelle/HOL and demonstrate it on two case studies.  ...  Acknowledgements We thank Kai Engelhardt, Carroll Morgan, Manuel Chakravarty, and Rob van Glabbeek for discussions and for reading drafts of this paper.  ... 
doi:10.1145/1190215.1190234 fatcat:w7kdptj2sndbzf4ofythgazteu

Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols [article]

François Dupressoir and Andrew D. Gordon and Jan Jürjens and David A. Naumann
2013 arXiv   pre-print
Our techniques include: use of ghost state to attach formal algebraic terms to concrete byte arrays and to detect collisions when two distinct terms map to the same byte array; decoration of a crypto API  ...  with contracts based on symbolic terms; and expression of the attacker model in terms of C programs.  ...  Low t L, while if t is data manipulated internally by principals, we must have Level High t L.  ... 
arXiv:1312.6532v1 fatcat:fxoqlmwb4ffbxchnizwxi4eyma

Applying source-code verification to a microkernel

Michael Hohmuth, Hendrik Tews, Shane G. Stephens
2002 Proceedings of the 10th workshop on ACM SIGOPS European workshop: beyond the PC - EW10  
The project's main challenges are to enable high-level reasoning about typed data starting from only low-level knowledge about the hardware, and to develop a clean semantics for the subset of C++ used  ...  Source-code verification works by reasoning about the semantics of the full source code of a program. Traditionally it is limited to small programs written in an academic programming language.  ...  The main challenge in this project is to enable high-level reasoning in terms of typed objects during the verification, yet assume only low level hardware properties.  ... 
doi:10.1145/1133373.1133405 dblp:conf/sigopsE/HohmuthTS02 fatcat:7s3rvxyaf5asvjrcwg556nvfee

A low-level memory model and an accompanying reachability predicate

Shaunak Chatterjee, Shuvendu K. Lahiri, Shaz Qadeer, Zvonimir Rakamarić
2009 International Journal on Software Tools for Technology Transfer (STTT)  
Furthermore, sound analysis that precisely models heap becomes significantly more challenging in the presence of low-level pointer manipulation that is prevalent in systems software.  ...  In this paper, we present a memory model suitable for reasoning about low-level pointer operations that is accompanied by a formalization of the reachability predicate in the presence of internal pointers  ...  Acknowledgments Our formalization of the C memory model has been deeply influenced by discussions with Madan Musuvathi.  ... 
doi:10.1007/s10009-009-0098-1 fatcat:n2ih3qh52rfodknkhtgavqixvy

Formal Memory Models for the Verification of Low-Level Operating-System Code

Hendrik Tews, Marcus Völp, Tjark Weber
2009 Journal of automated reasoning  
This article contributes to the field of operating-systems verification. It presents a formalization of virtual memory that extends to memory-mapped devices.  ...  It is a key component of our verification environment for operating-system kernels based on the interactive theorem prover PVS.  ...  The work was continued in Robin, finally building a detailed verification environment for operating-system kernels (and other low-level code) in PVS.  ... 
doi:10.1007/s10817-009-9122-0 fatcat:xahoigntl5aiddfob7mlq4to54

Structuring Interactive Correctness Proofs by Formalizing Coding Idioms

Holger Gast, Marc Herbstritt
2012 International Workshop on Systems Software Verification  
We apply this strategy to the low-level memory allocator of the L4 microkernel, a case study discussed in the literature.  ...  Rather than proceeding backwards from the generated verification conditions, we start by developing a library of the employed data structures and related coding idioms.  ...  It is developed as a conservative extension of Isabelle/HOL and permits the verification of low-level programs in a C dialect inspired by [1] .  ... 
doi:10.4230/oasics.ssv.2011.1 dblp:conf/ssv/Gast11 fatcat:yyzahv6z4nbj7hr5bt6wkfk5lq

Implementing reliable Linux device drivers in ATS

Rui Shi
2007 Proceedings of the 2007 workshop on Programming languages meets program verification - PLPV '07  
ATS is a recently developed language with its type system rooted in Applied Type System framework (Xi 2004) which combines linear and dependent type theories for enforcing safe use of resources at low-level  ...  Our preliminary experience shows that this approach can effectively enhance the reliability of device drivers and save the testing/debugging time.  ...  However, it is still rare to find convincing uses of functional programming in building operating systems.  ... 
doi:10.1145/1292597.1292605 dblp:conf/plpv/Shi07 fatcat:ckrhlp53xnd7dj76rmfqjnz3mu

Structured Types and Separation Logic

Harvey Tuch
2008 Electronical Notes in Theoretical Computer Science  
In this paper we present a generalisation of our earlier formal memory model that captured the low-level features of C's pointers and memory and formed the basis for an expressive implementation of separation  ...  applicable in verifications.  ...  Acknowledgments We thank Gerwin Klein for discussions and for reading drafts of this paper.  ... 
doi:10.1016/j.entcs.2008.06.041 fatcat:bmug7trwhzd7llqgfese6afztm

Heap $$\ldots $$ Hop! Heap Is Also Vulnerable [chapter]

Guillaume Bouffard, Michael Lackner, Jean-Louis Lanet, Johannes Loinig
2015 Lecture Notes in Computer Science  
Most of them are based on the hypothesis that the type verification was not performed, thus allowing to obtain dynamically a type confusion.  ...  We propose here a new attack path for performing a type confusion even in presence of a typed stack.  ...  Fault Model Precision Location Timing Fault Type Difficulty precise bit error bit precise control precise control BSR a , random ++ precise byte error byte loose control precise control BSR  ... 
doi:10.1007/978-3-319-16763-3_2 fatcat:6ae25rtmnvejnkcssnszbsb4oa

Verifying Implementations of Security Protocols by Refinement [chapter]

Nadia Polikarpova, Michał Moskal
2012 Lecture Notes in Computer Science  
We propose a technique for verifying high-level security properties of cryptographic protocol implementations based on stepwise refinement.  ...  Our refinement strategy supports reasoning about abstract protocol descriptions in the symbolic model of cryptography and gradually concretizing them towards executable code.  ...  Acknowledgements We appreciate the collaboration of François Dupressoir, Paul England, Cédric Fournet, Andy Gordon and David Wooten on the TPM project.  ... 
doi:10.1007/978-3-642-27705-4_5 fatcat:gwropnszwngebmle7igo7d2rg4
« Previous Showing results 1 — 15 out of 4,995 results