Linux System Call Level Dynamic Analysis Towards Programming Language Translation
摘要
In this study, we propose a methodology that utilizes data from system call level dynamic analysis (DA) to select better code translation candidates. For the DA data, we recorded the history of system call invocations to understand the program’s actions during execution, providing insights independent of the programming language. We implemented and released a DA system that enables fully automated analysis. Our method generates multiple translation candidates using TransCoder. We then performed DA on all the generated candidates as well as the original code. To select the optimal candidate, we compared the DA data of the original code with that of the generated candidates and calculated their similarities. We employed natural language processing techniques to normalize the sequence length of the DA data for comparison. Additionally, we explored direct comparisons of variable-length system call sequences. We found that DA data for the same code can exhibit significant variation in sequence length and that the initialization process for the modules can significantly influence the DA data. To address these issues, we developed an extended version of our DA system. We also present methods to reduce the variation in sequence length and obtain only the system call information invoked by specific lines of the program under analysis.