org.kit.furia
Class FuriaChan

java.lang.Object
  extended by org.kit.furia.AbstractFuriaChanCommandLine
      extended by org.kit.furia.FuriaChan

public class FuriaChan
extends AbstractFuriaChanCommandLine

FuriaChan This class wraps IRIndex and OBSearch to perform matches on binary programs. This class contains the ideas presented in the paper:

  Fast Approximate Matching of Programs for Protecting
  Libre/Open Source Software by Using Spatial Indexes 
  Arnoldo Jose Muller Molina and Shinohara, Takeshi 
  Kyushu Institute of Technology, Japan.
  In: Source Code Analysis and Manipulation, 2007. SCAM 2007.
 
The only difference is that instead of a spatial index, we use an asymmetric P+Tree (OBSearch). This class operates on folders of folders that contain fragment files, or with fragment files directly. In any case, it can load applications or search fragment multi-sets The class can be invoked from the command line. Each method will explains the command line parameters required to invoke the method. In general, it is faster to operate on folders of folders of fragment files. This is because the databases have to be loaded each time the program is started. Additionally, OBsearch takes advantage of frequently accessed objects that are kept in a cache. Since we are dealing with trees, it makes a huge difference to use this cache. This program has two modes, insert mode and search mode. - In insert mode, one or more fragmented applications are added to the database. - In search mode, queries of fragments searched in the database, and the corresponding binary program similarity results are returned. Before search mode can be used, a "freeze" operation must be performed so that OBSearch can efficiently search trees. It is recommended to freeze the database after many fragmented applications have been inserted. It will take some time, but it is a one time operation. Insert mode and search mode work in two modes: Single application mode: One program is inserted/searched. Directory of applications mode: A directory that contains directories with fragmented applications is inserted/searched. The second is the recommended mode. This is because in single application mode, all the database has to be loaded several times.

Author:
Arnoldo Jose Muller Molina

Constructor Summary
FuriaChan()
           
 
Method Summary
static org.apache.commons.cli.Options initCommandLine()
          Initializes the command line definition.
static void main(java.lang.String[] args)
           
 
Methods inherited from class org.kit.furia.AbstractFuriaChanCommandLine
getCommandLine, initLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FuriaChan

public FuriaChan()
Method Detail

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception

initCommandLine

public static org.apache.commons.cli.Options initCommandLine()
Initializes the command line definition. Here we define all the command line options to be received by the program.

Returns:
The options of the program.


Copyright © 2008 Arnoldo Jose Muller Molina. All Rights Reserved.