</parent>\r
<groupId>jp.sourceforge.stigmata.plugins</groupId>\r
<artifactId>cflib</artifactId>\r
- <version>1.0.1-SNAPSHOT</version>\r
+ <version>1.0.0</version>\r
<name>cflib</name>\r
<url>http://stigmata.sourceforge.jp/stigmata/plugins/cflib/</url>\r
\r
/**\r
* コントロールフローを表すクラス.\r
* @author tamada\r
- *\r
*/\r
public class ControlFlowGraph {\r
private BasicBlock[] blocks;\r
import java.util.LinkedHashMap;
import java.util.Map;
-import org.objectweb.asm.ClassAdapter;
+import jp.sourceforge.stigmata.Birthmark;
+import jp.sourceforge.stigmata.BirthmarkContext;
+
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.tree.MethodNode;
*
* @author tamada
*/
-public class ControlFlowGraphExtractVisitor extends ClassAdapter{
+public class ControlFlowGraphExtractVisitor extends BirthmarkExtractVisitor{
private Map<String, MethodNode> opcodesMap = new LinkedHashMap<String, MethodNode>();
- public ControlFlowGraphExtractVisitor(ClassVisitor visitor){
- super(visitor);
+ public ControlFlowGraphExtractVisitor(ClassVisitor visitor, Birthmark birthmark, BirthmarkContext context){
+ super(visitor, birthmark, context);
+ }
+
+ /**
+ * テストのためのコンストラクタ.
+ * @param visitor
+ */
+ ControlFlowGraphExtractVisitor(ClassVisitor visitor){
+ super(visitor, null, null);
}
public Iterator<String> getMethodNames(){
* @version $Revision$
*/
public interface OpcodeExtractListener{
- public void extractOpcodesFinished(List<Opcode> opcodes);
+ public void opcodesExtracted(List<Opcode> opcodes);
}
@Override
public void visitEnd(){
for(OpcodeExtractListener listener: listeners){
- listener.extractOpcodesFinished(opcodes);
+ listener.opcodesExtracted(opcodes);
}
}
}
import jp.sourceforge.stigmata.birthmarks.OpcodeExtractVisitor;
import jp.sourceforge.stigmata.spi.BirthmarkSpi;
-import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.Label;
/**
}
@Override
- public BirthmarkExtractVisitor createExtractVisitor(ClassWriter writer, Birthmark birthmark, BirthmarkContext context){
- return new OpcodeExtractVisitor(writer, birthmark, context, new WSPBirthmarkElementBuilder());
+ public BirthmarkExtractVisitor createExtractVisitor(ClassVisitor visitor, Birthmark birthmark, BirthmarkContext context){
+ return new OpcodeExtractVisitor(visitor, birthmark, context, new WSPBirthmarkElementBuilder());
}
@Override
/**
* Weighted Stack Pattern based birthmark.
- *
+ *
* this birthmark is proposed by LIM et al. in following papers.
* <ul>
* <li>Hyun-il Lim, Heewan Park, Seokwoo Choi, Taisook Han, ``Detecting Theft
* Birthmark Based on Operand Stack Behaviors,'' In Proc. of 2008 International
* Conference on Information Security and Assurance, pp.133-136, April 2008.</li>
* </ul>
- *
+ *
* @author Haruaki Tamada
* @version $Revision$
*/
}
@Override
- public boolean isExpert(){
- return false;
+ public boolean isExperimental(){
+ return true;
}
@Override