34 Hits in 2.7 sec

Improved Tool Support for Machine-Code Decompilation in HOL4 [chapter]

Anthony Fox
2015 Lecture Notes in Computer Science  
This paper presents improvements that have been made to our methodology for soundly decompiling machine-code programs to functions expressed in HOL logic.  ...  The HOL4 interactive theorem prover provides a sound logical environment for reasoning about machine-code programs.  ...  Decompilation of Machine-code to HOL Logic In [12] Myreen describes methods for soundly decompiling machine-code into HOL functions.  ... 
doi:10.1007/978-3-319-22102-1_12 fatcat:xrbtb3mlrzezrddt2zrci2rl54

Proof Pearl: A Verified Bignum Implementation in x86-64 Machine Code [chapter]

Magnus O. Myreen, Gregorio Curello
2013 Lecture Notes in Computer Science  
The work presented in this paper has been developed in the HOL4 theorem prover and the case study resulted in 700 lines of verified 64-bit x86 machine code.  ...  We achieve this improvement as a result of using previously developed tools, namely, a proof-producing decompiler and compiler.  ...  The second author was a summer intern supported by the University of Cambridge Computer Laboratory, UK.  ... 
doi:10.1007/978-3-319-03545-1_5 fatcat:vwdjj3wqfrdy5lwusekyndhkiu

The Guardol Language and Verification System [chapter]

David Hardin, Konrad Slind, Michael Whalen, Tuan-Hung Pham
2012 Lecture Notes in Computer Science  
The Guardol system generates Ada code from Guardol programs and also provides specification and automated verification support.  ...  Guard programs and specifications are translated to higher order logic, then deductively transformed to a form suitable for a SMT-style decision procedure for recursive functions over tree-structured data  ...  The TACAS reviewers did a well-informed and thorough job, kindly pointing out many mistakes and infelicities in the orginal submission.  ... 
doi:10.1007/978-3-642-28756-5_3 fatcat:2njrcn7ixrdbvnnma23imkcuii

A DSL for cross-domain security

David S. Hardin, Konrad L. Slind, Michael W. Whalen, Tuang-Hung Pham
2012 Proceedings of the 2012 ACM conference on High integrity language technology - HILT '12  
The Guardol system generates Ada code from Guardol programs and also provides specification and automated verification support.  ...  Guard programs and specifications are translated to higher order logic, then deductively transformed to a form suitable for a SMT-style decision procedure for recursive functions over tree-structured data  ...  Myreen's technology for decompilation of low-level code will be key in this effort.  ... 
doi:10.1145/2402676.2402697 dblp:conf/sigada/HardinSWP12 fatcat:t37yki65rjdxnctpjq7l5n6ovm

Machine code verification of a tiny ARM hypervisor

Mads Dam, Roberto Guanciale, Hamed Nemati
2013 Proceedings of the 3rd international workshop on Trustworthy embedded devices - TrustED '13  
We accomplish a detailed verification of an ARMv7 tiny hypervisor, proving its correctness at the machine code level.  ...  To enable the adoption of the BAP back-ends to compute weakest preconditions and control flow graphs, a HOL4-based tool was implemented that transforms ARMv7 assembly programs to the BAP Intermediate Language  ...  Moreover, the resulting tool chain can be used in other projects that require verification of ARM machine code.  ... 
doi:10.1145/2517300.2517302 dblp:conf/ccs/DamGN13 fatcat:2noqngkwjrdqpagf56nmrojyde

Combining ACSL Specifications and Machine Code
Совмещение ACSL спецификаций с машинным кодом

P.A. Putro, HSE, Moscow, Russia
2018 Proceedings of the Institute for System Programming of RAS  
Also in the paper the choice of logical language for building models is made and justified, the most suitable tools for implementing the approach of merging specifications are selected and the evaluation  ...  The essence of the approach is to build models, both machine code and its specifications in a single logical language, and use target processor ABI to bind machine registers with the parameters of the  ...  The use of the methods and approaches described in this paper will allow you to fully automate deductive verification of machine code without loops for compliance with the contract specification in ACSL  ... 
doi:10.15514/ispras-2018-30(4)-6 fatcat:nlz6gyfgpnd4pb6vomixlamzle

Modular Verification for Computer Security

Andrew W. Appel
2016 2016 IEEE 29th Computer Security Foundations Symposium (CSF)  
But the protection mechanisms themselves must then be verified not just for safety but for functional correctness.  ...  For many software components, it is useful and important to verify their security.  ...  This research was supported in part by DARPA agreement number FA8750-12-2-0293 and by NSF Grant CCF-1407794. The U.S.  ... 
doi:10.1109/csf.2016.8 dblp:conf/csfw/Appel16 fatcat:7667qxql2ne5dapggwi76wrryq

Verified compilation of CakeML to multiple machine-code targets

Anthony Fox, Magnus O. Myreen, Yong Kiam Tan, Ramana Kumar
2017 Proceedings of the 6th ACM SIGPLAN Conference on Certified Programs and Proofs - CPP 2017  
The entire CakeML development is formalised in the HOL4 theorem prover.  ...  This paper describes how the latest CakeML compiler supports verified compilation down to multiple realistically modelled target architectures.  ...  Acknowledgments The first author was partially supported by EPSRC Programme Grant EP/K008528/1, UK. The second author was partially supported by the Swedish Research Council, Sweden.  ... 
doi:10.1145/3018610.3018621 dblp:conf/cpp/FoxMTK17 fatcat:247jjf4zkbd4tmdwt5nfirn65m

Proving LTL Properties of Bitvector Programs and Decompiled Binaries (Extended) [article]

Yuandong Cyrus Liu
2021 arXiv   pre-print
SMT solvers, which serve as a foundation for these tools, have thus increased support for bitvector reasoning through bit-blasting and linear arithmetic approximations.  ...  Finally, we provide an in-depth case study of decompiled ("lifted") binary programs, which emulate X86 execution through frequent use of bitvector operations.  ...  In the following, we describe how decompilation tools (e.g., Mc-Sema) target re-compilation and the challenges this poses for existing verification techniques and tools.  ... 
arXiv:2105.05159v2 fatcat:nm55kcsplvekxmona4tc6ckoaq

Provably secure memory isolation for Linux on ARM

Roberto Guanciale, Hamed Nemati, Mads Dam, Christoph Baumann
2016 Journal of Computer Security  
Work partially supported by framework grant "IT 2010" from the Swedish Foundation for Strategic Research, and the CERCES grant from the Swedish Civil Contingencies Agency.  ...  We thank the anonymous reviewers for their extensive comments.  ...  of the machine code.  ... 
doi:10.3233/jcs-160558 fatcat:ugvovbh3brbcbahkgi5flgigrm

Towards Safer Smart Contracts: A Survey of Languages and Verification Methods [article]

Dominik Harz, William Knottenbelt
2018 arXiv   pre-print
Second, we examine verification tools and methods for smart contract and distributed ledgers.  ...  Significant efforts are taken to improve their security by introducing new programming languages and advance verification methods. We provide a survey of those efforts in two parts.  ...  This research is funded by the Outlier Ventures research grant for the Imperial Centre for Cryptocurrency Research and Engineering.  ... 
arXiv:1809.09805v4 fatcat:qgkoagaifvegjivy2vmu4tjfjy

Scalable validation of binary lifters

Sandeep Dasgupta, Sushant Dinesh, Deepan Venkatesh, Vikram S. Adve, Christopher W. Fletcher
2020 Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation  
Binary analysis is generally performed by existing decompiler projects by (1) converting raw bytes from the binary into a stream of assembly instructions through disassembly, (2) translating machine code  ...  The ability to directly reason about binary machine code is desirable, not only because it allows analyzing binaries even when the source code is not available (e.g., legacy code, closed-source software  ...  [103, 104, 118] (and later improved by Fox [119] w.r.t. the tool support) presented "decompilation into logic" -a framework for verified decompilation, where machine code is decompiled into tail-recursive  ... 
doi:10.1145/3385412.3385964 dblp:conf/pldi/DasguptaDVAF20 fatcat:3khjl5gbmnetjay23fk3sc2ktu

Metamath Zero: The Cartesian Theorem Prover [article]

Mario Carneiro
2020 arXiv   pre-print
It is formally specified in its own language, and supports a number of translations to and from other proof languages.  ...  As the usage of theorem prover technology expands, so too does the reliance on correctness of the tools.  ...  This work was supported in part by AFOSR grant FA9550-18-1-0120 and a grant from the Sloan Foundation.  ... 
arXiv:1910.10703v3 fatcat:7chlzmh6hzbmxntpo2q3nyha5m

Proof-producing translation of higher-order logic into pure and stateful ML

2014 Journal of functional programming  
The higher-order logic found in proof assistants such as Coq and various HOL systems provides a convenient setting for the development and verification of functional programs.  ...  This paper extends our previous conference publication with new material that shows how functions defined in terms of a state-and-exception monad can be translated, with proofs, into stateful ML code.  ...  Many thanks to the JFP and ICFP reviewers for their detailed and helpful comments.  ... 
doi:10.1017/s0956796813000282 fatcat:uy65m3bx3ngonhz75rjlxjsixi

A Verified Runtime for a Verified Theorem Prover [chapter]

Magnus O. Myreen, Jared Davis
2011 Lecture Notes in Computer Science  
We make heavy use of our previously developed tools for machine-code verification. This work demonstrates that our approach to machine-code verification scales to non-trivial applications.  ...  Our runtime includes a just-in-time compiler, a copying garbage collector, a parser and a printer, all of which are HOL4-verified down to the concrete x86 code.  ...  We thank Mike Gordon, Warren Hunt, Scott Owens, Anna Slobadová and Sol Swords for commenting on drafts of this paper. This work was partially supported by EPSRC Research Grant EP/G007411/1.  ... 
doi:10.1007/978-3-642-22863-6_20 fatcat:nsjhxkoq3zabla3kec4rcyomya
« Previous Showing results 1 — 15 out of 34 results