Xinran Wang, Yoon-Chan Jhi, Sencun Zhu, Peng Liu@PSU
背景:
Behavior Based Software Theft Detection的系统包含四个步骤:
1、Dynamic Analysis - 产生System Call, Call Stack, Dependences
2、Noise Filtering
3、Extract SCDG Birthmarks
4、Compare SCDG Birthmarks
Dynamic Analysis的架构:
Valgrind[23] 和Hawk之间的关系
[23] Valgrind: a framework for heavyweight dynamic binary instrumentation. SIGPLAN 2007.
Hawk是作为对Valgrind的plugin-tool。
Dynamic Analysis的流程:
1、输入binary program到Valgrind
2、Valgrind Just-in-time地反编译机器码为IR
3、Hawk在IR上进行analysis code instrument (dependence)
问题:什么叫memory byte和register有dependence set来shadow?
4、将instrument之后的代码重新转化为机器码
关于Hawk的细节问题:
1、做两个instrumentation - IR instrumentation & system call instrumentation
2、intermediate dependence set的清理 - 有三种方法,使用其中一种
reference counting[6]; mark-sweep; copy collection
3、出于性能考虑,没有跟踪control dependence,只跟踪data dependence
寻找源码