Access the full text.
Sign up today, get DeepDyve free for 14 days.
Aatira Ahmad, Abdul Noor, Hashim Sharif, Usama Hameed, Shoaib Asif, Mubashir Anwar, Ashish Gehani, Fareed Zaffar, J. Siddiqui (2021)
Trimmer: An Automated System for Configuration-Based Software DebloatingIEEE Transactions on Software Engineering, 48
Cousot, P., Cousot, R. (1977)
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpointsProceedings of the 4th ACM Symposium on Principles of Programming Languages
A. Miné (2001)
The octagon abstract domainHigher-Order and Symbolic Computation, 19
Sharif, H., Abubakar, M., Gehani, A., Zaffar, F. (2018)
Trimmer: application specialization for code debloatingProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
Hashim Sharif, Muhammad Abubakar, Ashish Gehani, Fareed Zaffar (2018)
Trimmer: Application Specialization for Code Debloating2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE)
(2006)
OCCAM: Object Culling and Concretization for Assurance Maximization
Crab: A C++ library for building program static analyses
Christopher Smowton (2014)
I/O optimisation and elimination via partial evaluation
P. Cousot, R. Cousot (1977)
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpointsProceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Malecha, G., Gehani, A., Shankar, N. (2015)
Automated software winnowingProceedings of the 30th ACM Symposium on Applied Computing
Miné, A. (2006)
The octagon abstract domainHigher Order Symbolic Computation 19(1), 19
Kuderski, J., Navas, J., Gurfinkel, A. (2019)
Unification-based pointer analysis without oversharingProceedings of the 19th Conference on Formal Methods in Computer Aided Design; https://ieeexplore.ieee.org/document/8894275.
Hong Hu, Shweta Shinde, Sendroiu Adrian, Zheng Chua, P. Saxena, Zhenkai Liang (2016)
Data-Oriented Programming: On the Expressiveness of Non-control Data Attacks2016 IEEE Symposium on Security and Privacy (SP)
G. Malecha, Ashish Gehani, N. Shankar (2015)
Automated software winnowingProceedings of the 30th Annual ACM Symposium on Applied Computing
Miné, A. (2001)
A new numerical abstract domain based on difference-bound matricesProceedings of the Second Symposium on Programs as Data Objects
Louis Gellé, Hassen Saïdi, Ashish Gehani (2018)
Wholly!: A Build System For The Modern Software Stack
(1978)
Automatic discovery of linear restraints among variables of a programProceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Cousot, P., Halbwachs, N. (1978)
Automatic discovery of linear restraints among variables of a programProceedings of the 5th ACM Symposium on Principles of Programming Languages
Shacham, H. (2007)
The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)Proceedings of the 14th ACM Conference on Computer and Communications Security
AliAkbar Sadeghi, Salman Niksefat, Maryam Rostamipour (2018)
Pure-Call Oriented Programming (PCOP): chaining the gadgets using call instructionsJournal of Computer Virology and Hacking Techniques, 14
Steensgaard, B. (1996)
Points-to analysis in almost linear timeProceedings of the 23rd ACM Symposium on Principles of Programming Languages
Sadeghi, A., Niksefat, S., Rostamipour, M. (2018)
Pure-call oriented programming: chaining the gadgets using call instructionsJournal of Computer Virology and Hacking Techniques 14(2), 14
Yulei Sui, Jingling Xue (2016)
SVF: interprocedural static value-flow analysis in LLVMProceedings of the 25th International Conference on Compiler Construction
A. Gurfinkel, J. Navas (2021)
Abstract Interpretation of LLVM with a Region-Based Memory Model
Bletsch, T., Jiang, X., Freeh, V., Liang, Z. (2011)
Jump-oriented programming: a new class of code-reuse attackProceedings of the 6th ACM Symposium on Information
A. Miné (2001)
A New Numerical Abstract Domain Based on Difference-Bound Matrices
Jakub Kuderski, J. Navas, A. Gurfinkel (2019)
Unification-based Pointer Analysis without Oversharing2019 Formal Methods in Computer Aided Design (FMCAD)
L. Andersen, Peter Lee (2005)
Program Analysis and Specialization for the C Programming Language
T. Bletsch, Xuxian Jiang, V. Freeh, Zhenkai Liang (2011)
Jump-oriented programming: a new class of code-reuse attack
OCCAM: Object Culling, Concretization for Assurance Maximization
GitHub; https://github
Sui, Y., Xue, J. (2016)
SVF: Interprocedural static value-flow analysis in LLVMProceedings of the 25th ACM Conference on Compiler Construction
Clam: LLVM front end for Crab
Gurfinkel, A., Navas, J. (2021)
Abstract interpretation of LLVM with a region-based memory model13th International Conference on Verified Software: Theories
B. Steensgaard (1996)
Points-to analysis in almost linear time
H. Shacham (2007)
The geometry of innocent flesh on the bone: return-into-libc without function calls (on the x86)
OCCAM-v2 leverages scalable pointer analysis, value analysis, and dynamic analysis to create an effective and efficient tool for specializing LLVM bitcode. The extent of the code-size reduction achieved depends on the specific deployment configuration. Each application that is to be specialized is accompanied by a manifest that specifies concrete arguments that are known a priori, as well as a count of residual arguments that will be provided at runtime. The best case for partial evaluation occurs when the arguments are completely concretely specified. OCCAM-v2 uses a pointer analysis to devirtualize calls, allowing it to eliminate the entire body of functions that are not reachable by any direct calls. The hybrid analysis feature can handle cases that are challenging for static analysis, such as input loops, string processing, and external data (in files, for example). On the suite of evaluated programs, OCCAM-v2 was able to reduce the instruction count by 40.6 percent on average, taking a median of 2.4 seconds.
Queue – Association for Computing Machinery
Published: Oct 31, 2022
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
Copy and paste the desired citation format or use the link below to download a file formatted for EndNote
Access the full text.
Sign up today, get DeepDyve free for 14 days.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.