OSDN Git Service

cflib は plugins プロジェクトから,Stigmata直下のプロジェクトに移行したため,このリポジトリからは削除した.
[stigmata/stigmata-plugins.git] / wsp / src / main / java / jp / sourceforge / stigmata / birthmarks / wsp / StackPatternBasedBirthmarkService.java
1 package jp.sourceforge.stigmata.birthmarks.wsp;
2
3 import jp.sourceforge.stigmata.BirthmarkComparator;
4 import jp.sourceforge.stigmata.BirthmarkExtractor;
5 import jp.sourceforge.stigmata.BirthmarkPreprocessor;
6 import jp.sourceforge.stigmata.spi.BirthmarkService;
7
8 /**
9  * Weighted Stack Pattern based birthmark.
10  *
11  * this birthmark is proposed by LIM et al. in following papers.
12  * <ul>
13  * <li>Hyun-il Lim, Heewan Park, Seokwoo Choi, Taisook Han, ``Detecting Theft
14  * of Java Applications via a Static Birthmark Based on Weighted Stack
15  * Patterns,'' IEICE Transactions on Information and Systems, Vol.E91-D No.9
16  * pp.2323-2332, September 2008.</li>
17  * <li>Heewan Park, Hyun-il Lim, Seokwoo Choi and Taisook Han, ``A Static Java
18  * Birthmark Based on Operand Stack Behaviors,'' In Proc. of 2008
19  * International Conference on Information Security and Assurance,
20  * pp.133-136, April 2008.</li>
21  * </ul>
22  *
23  * @author Haruaki Tamada
24  */
25 public class StackPatternBasedBirthmarkService implements BirthmarkService{
26     private BirthmarkPreprocessor preprocessor =
27         new OpcodeWeightCalculatePreprocessor(this);
28     private BirthmarkExtractor extractor =
29         new StackPatternBasedBirthmarkExtractor(this);
30     private BirthmarkComparator comparator =
31         new StackPatternBasedBirthmarkComparator(this);
32
33     @Override
34     public String getDescription(){
35         return "Weighted stack pattern based birthmark";
36     }
37
38     @Override
39     public boolean isUserDefined(){
40         return false;
41     }
42
43     public boolean isExperimental(){
44         return false;
45     }
46
47     @Override
48     public String getType(){
49         return "wsp";
50     }
51
52     @Override
53     public BirthmarkComparator getComparator(){
54         return comparator;
55     }
56
57     @Override
58     public BirthmarkExtractor getExtractor(){
59         return extractor;
60     }
61
62     @Override
63     public BirthmarkPreprocessor getPreprocessor(){
64         return preprocessor;
65     }
66 }