Clang __usercall: towards native support for user defined calling conventions. Widberg, J., Narain, S., & Chen, Y. In Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, of ESEC/FSE 2022, pages 1746–1750, New York, NY, USA, November, 2022. Association for Computing Machinery.
Clang __usercall: towards native support for user defined calling conventions [link]Paper  doi  abstract   bibtex   
In reverse engineering interfacing with C/C++ functions is of great interest because it provides much more flexibility for product development and security purpose. However, it has been a great challenge when interfacing functions with user defined calling conventions due to the lack of sufficient and user-friendly tooling. In this work, we design and implement Clang __usercall, which aims to provide programmers with an elegant and familiar syntax to specify user defined calling conventions on functions in C/C++ source code. Our key novelties lie in mimicing the most popular syntax and adapting Clang for interfacing purpose. Our preliminary user study shows that our solution outperforms the existing ones in multiple key aspects including user experience and required lines of code. Clang __usercall is already added to the Compiler Explorer website as well.
@inproceedings{widberg_clang_2022,
	address = {New York, NY, USA},
	series = {{ESEC}/{FSE} 2022},
	title = {Clang \_\_usercall: towards native support for user defined calling conventions},
	isbn = {9781450394130},
	shorttitle = {Clang \_\_usercall},
	url = {https://doi.org/10.1145/3540250.3558921},
	doi = {10.1145/3540250.3558921},
	abstract = {In reverse engineering interfacing with C/C++ functions is of great interest because it provides much more flexibility for product development and security purpose. However, it has been a great challenge when interfacing functions with user defined calling conventions due to the lack of sufficient and user-friendly tooling. In this work, we design and implement Clang \_\_usercall, which aims to provide programmers with an elegant and familiar syntax to specify user defined calling conventions on functions in C/C++ source code. Our key novelties lie in mimicing the most popular syntax and adapting Clang for interfacing purpose. Our preliminary user study shows that our solution outperforms the existing ones in multiple key aspects including user experience and required lines of code. Clang \_\_usercall is already added to the Compiler Explorer website as well.},
	urldate = {2024-02-08},
	booktitle = {Proceedings of the 30th {ACM} {Joint} {European} {Software} {Engineering} {Conference} and {Symposium} on the {Foundations} of {Software} {Engineering}},
	publisher = {Association for Computing Machinery},
	author = {Widberg, Jared and Narain, Sashank and Chen, Yimin},
	month = nov,
	year = {2022},
	keywords = {Calling Convention, Clang, Compiler, LLVM, Reverse engineering},
	pages = {1746--1750},
}

Downloads: 0