OSDN Git Service

ea003381ac7b45c1af7263c9fad87354ae580b78
[stigmata/stigmata-plugins.git] / wsp / src / main / java / jp / sourceforge / stigmata / birthmarks / wsp / StackPatternBasedBirthmarkService.java
1 package jp.sourceforge.stigmata.birthmarks.wsp;
2
3 /*
4  * $Id$
5  */
6
7 import jp.sourceforge.stigmata.BirthmarkComparator;
8 import jp.sourceforge.stigmata.BirthmarkExtractor;
9 import jp.sourceforge.stigmata.BirthmarkPreprocessor;
10 import jp.sourceforge.stigmata.birthmarks.AbstractBirthmarkService;
11
12 /**
13  * Weighted Stack Pattern based birthmark.
14  * 
15  * this birthmark is proposed by LIM et al. in following papers.
16  * <ul>
17  * <li>Hyun-il Lim, Heewan Park, Seokwoo Choi, Taisook Han, ``Detecting Theft
18  * of Java Applications via a Static Birthmark Based on Weighted Stack
19  * Patterns,'' IEICE Transactions on Information and Systems, Vol.E91-D No.9
20  * pp.2323-2332, September 2008.</li>
21  * <li>Heewan Park, Hyun-il Lim, Seokwoo Choi and Taisook Han, ``A Static Java
22  * Birthmark Based on Operand Stack Behaviors,'' In Proc. of 2008 International
23  * Conference on Information Security and Assurance, pp.133-136, April 2008.</li>
24  * </ul>
25  * 
26  * @author Haruaki Tamada
27  * @version $Revision$
28  */
29 public class StackPatternBasedBirthmarkService extends AbstractBirthmarkService{
30     private BirthmarkComparator comparator = new StackPatternBasedBirthmarkComparator(this);
31     private BirthmarkExtractor extractor = new StackPatternBasedBirthmarkExtractor(this);
32     private BirthmarkPreprocessor preprocessor = new StackPatternBasedBirthmarkPreprocessor(this);
33
34     @Override
35     public String getDefaultDescription(){
36         return "Weighted stack pattern based birthmark";
37     }
38
39     @Override
40     public String getType(){
41         return "wsp";
42     }
43
44     @Override
45     public BirthmarkComparator getComparator(){
46         return comparator;
47     }
48
49     @Override
50     public BirthmarkExtractor getExtractor(){
51         return extractor;
52     }
53
54     @Override
55     public BirthmarkPreprocessor getPreprocessor(){
56         return preprocessor;
57     }
58 }