Data race is one of the most important concurrent anomalies in multi-threaded programs.Emerging con-straint-based techniques are leveraged into race detection,which is able to find all the races that can be found by a...Data race is one of the most important concurrent anomalies in multi-threaded programs.Emerging con-straint-based techniques are leveraged into race detection,which is able to find all the races that can be found by any oth-er sound race detector.However,this constraint-based approach has serious limitations on helping programmers analyze and understand data races.First,it may report a large number of false positives due to the unrecognized dataflow propa-gation of the program.Second,it recommends a wide range of thread context switches to schedule the reported race(in-cluding the false one)whenever this race is exposed during the constraint-solving process.This ad hoc recommendation imposes too many context switches,which complicates the data race analysis.To address these two limitations in the state-of-the-art constraint-based race detection,this paper proposes DFTracker,an improved constraint-based race detec-tor to recommend each data race with minimal thread context switches.Specifically,we reduce the false positives by ana-lyzing and tracking the dataflow in the program.By this means,DFTracker thus reduces the unnecessary analysis of false race schedules.We further propose a novel algorithm to recommend an effective race schedule with minimal thread con-text switches for each data race.Our experimental results on the real applications demonstrate that 1)without removing any true data race,DFTracker effectively prunes false positives by 68%in comparison with the state-of-the-art constraint-based race detector;2)DFTracker recommends as low as 2.6-8.3(4.7 on average)thread context switches per data race in the real world,which is 81.6%fewer context switches per data race than the state-of-the-art constraint based race detec-tor.Therefore,DFTracker can be used as an effective tool to understand the data race for programmers.展开更多
软件动态胎记技术是实现混淆对抗的软件抄袭检测的有效手段之一.然而,多线程程序中线程交织的不确定性对其造成了不可忽视的影响;极端情况下,传统动态胎记技术甚至会判定同一个程序与其自身不存在抄袭关系.对此,提出从多线程程序在同一...软件动态胎记技术是实现混淆对抗的软件抄袭检测的有效手段之一.然而,多线程程序中线程交织的不确定性对其造成了不可忽视的影响;极端情况下,传统动态胎记技术甚至会判定同一个程序与其自身不存在抄袭关系.对此,提出从多线程程序在同一输入下的多条执行轨迹中进行相似部分的识别,并从中抽象出不易受线程交织影响的行为motifs来实现多线程程序的抄袭检测.该方法捕捉程序的动态执行轨迹,经过轨迹修剪、gram匹配以及扩展和抽象,从中提取motifs胎记建模多线程程序的行为;最终,通过衡量motifs胎记的相似性实现程序间潜在抄袭的判定.在一个包含234个不同版本多线程程序的公共数据集上开展的实验表明,motifs胎记是一种可靠的线程感知胎记方法,不仅可有效对抗当下主流的代码混淆技术,相比现有的2种多线程程序抄袭检测方法TreSB(thread-related system call birthmark)和TOB(thread-oblivious birthmark),也体现出更优秀的检测能力.展开更多
基金This work is supported by the National Key Research and Development Program of China under Grant No.2023YFB4503400the National Natural Science Foundation of China under Grant Nos.62322205,62072195,and 61825202.
文摘Data race is one of the most important concurrent anomalies in multi-threaded programs.Emerging con-straint-based techniques are leveraged into race detection,which is able to find all the races that can be found by any oth-er sound race detector.However,this constraint-based approach has serious limitations on helping programmers analyze and understand data races.First,it may report a large number of false positives due to the unrecognized dataflow propa-gation of the program.Second,it recommends a wide range of thread context switches to schedule the reported race(in-cluding the false one)whenever this race is exposed during the constraint-solving process.This ad hoc recommendation imposes too many context switches,which complicates the data race analysis.To address these two limitations in the state-of-the-art constraint-based race detection,this paper proposes DFTracker,an improved constraint-based race detec-tor to recommend each data race with minimal thread context switches.Specifically,we reduce the false positives by ana-lyzing and tracking the dataflow in the program.By this means,DFTracker thus reduces the unnecessary analysis of false race schedules.We further propose a novel algorithm to recommend an effective race schedule with minimal thread con-text switches for each data race.Our experimental results on the real applications demonstrate that 1)without removing any true data race,DFTracker effectively prunes false positives by 68%in comparison with the state-of-the-art constraint-based race detector;2)DFTracker recommends as low as 2.6-8.3(4.7 on average)thread context switches per data race in the real world,which is 81.6%fewer context switches per data race than the state-of-the-art constraint based race detec-tor.Therefore,DFTracker can be used as an effective tool to understand the data race for programmers.
文摘软件动态胎记技术是实现混淆对抗的软件抄袭检测的有效手段之一.然而,多线程程序中线程交织的不确定性对其造成了不可忽视的影响;极端情况下,传统动态胎记技术甚至会判定同一个程序与其自身不存在抄袭关系.对此,提出从多线程程序在同一输入下的多条执行轨迹中进行相似部分的识别,并从中抽象出不易受线程交织影响的行为motifs来实现多线程程序的抄袭检测.该方法捕捉程序的动态执行轨迹,经过轨迹修剪、gram匹配以及扩展和抽象,从中提取motifs胎记建模多线程程序的行为;最终,通过衡量motifs胎记的相似性实现程序间潜在抄袭的判定.在一个包含234个不同版本多线程程序的公共数据集上开展的实验表明,motifs胎记是一种可靠的线程感知胎记方法,不仅可有效对抗当下主流的代码混淆技术,相比现有的2种多线程程序抄袭检测方法TreSB(thread-related system call birthmark)和TOB(thread-oblivious birthmark),也体现出更优秀的检测能力.