org.kit.furia
Class FuriaChan
java.lang.Object
org.kit.furia.AbstractFuriaChanCommandLine
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
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FuriaChan
public FuriaChan()
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.