What's new? | Help | Directory | Sign in
Google
furia-chan
Furia-chan is an open source/libre software license violation detector.
  
  
  
  
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
___ _ _
/ __\ _ _ __(_) __ _ ___| |__ __ _ _ __
/ _\| | | | '__| |/ _` |_____ / __| '_ \ / _` | '_ \
/ / | |_| | | | | (_| |_____| (__| | | | (_| | | | |
\/ \__,_|_| |_|\__,_| \___|_| |_|\__,_|_| |_|


Version: ${version}

*********
Synopsis:
*********

Furia-chan is a state of the art Open Source/ Libre software license violation detector (a "google" for programs). If given as input a binary program p, its output is a list of the top n closest programs to p. It works even if p is control-flow obfuscated! :) It can find embedded (stolen) components of p in a database of FLOSS programs.

*********************
Information for Users
*********************

Furia-chan is a program matcher. The matching process consist of two steps. At first, you generate fragments of a program. Think of each fragment as a word of a web document. The next step uses OBSearch and Lucene to calculate the similarity of binary programs.

Check the tutorial of the program here: http://www.furiachan.org/tutorial.html

If you have any questions drop us a line here:

http://lists.furiachan.org/listinfo.cgi/users-furiachan.org

Thank you for your interest in Furia-chan!

Caveats:

Furia-chan will work fine if each query has at least 100 different
fragments. The program automatically checks for this.

If you copy the database to a computer that has different big-endianness you will break furia-chan. I am using some Java unsafe classes for performance reasons; it is much faster to re-create the database again than to wait the extra time if we don't use unsafe classes. If you want to use safe classes, the code can be easily changed.

Currently, fragments can only be generated from Java Byte-code. There are plans to implement a program fragmentation engine for x86. Stay tuned!

**************************
Information for Developers
**************************

Requirements:
-------------

* You need a recent JDK 1.5, 1.6.
* You need to have a recent version Maven and ANT installed and working
(We have tested OBSearch with Maven 2.0.8 and 2.0.7 and ANT 1.7.0).

Checkout furia-chan:

svn checkout https://furia-chan.googlecode.com/svn/trunk/ furia-chan --username <you>
or if you don't have an account:

svn checkout http://furia-chan.googlecode.com/svn/trunk/ furia-chan-read-only

The first time you checkout Furia-chan do a:
./install.sh

This will download and install all the necessary dependencies.

Whenever you do svn update and install.sh is changed please
run install.sh again.


Compiling:
----------

mvn compile



*******************************
Additional notes for developers
*******************************

Using maven with Eclipse:
-------------------------

# do this line only once
mvn -Declipse.workspace=/home/<usr>/workspace eclipse:add-maven-repo

# do this line every time you change the project's dependencies or
any major thing that could affect eclipse:

mvn eclipse:eclipse

Testing:
--------

mvn test

Note:
If you want to do the 40 hour test, then replace this line
<my.test.data.db>slices-small</my.test.data.db> in pom.xml:
by:
<my.test.data.db>slices</my.test.data.db>


Build website:
-----------
Builds the latest version of OBSearch's website.

mvn site


How to make a branch:
---------------------

svn copy https://obsearch.googlecode.com/svn/trunk/ \
https://obsearch.googlecode.com/svn/branches/mynewbranch \
-m "my new branch" --username <you>

How to make a tag (label):
--------------------------

svn copy https://obsearch.googlecode.com/svn/trunk/ \
https://obsearch.googlecode.com/svn/tags/0.7-GSOC \
-m "initial release" --username <you>

---

Packaging:
----------

mvn assembly:assembly

Deployment:
-----------

Run: mvn test
If everything is fine, then you can make a release.

perl deploy.pl

This script will generate the binary files, upload the website to
and will also generate an announce.txt file ready to
be sent to the mailing lists. The label creation is a manual process
and it must be done after this script has been completed:

Show details Hide details

Change log

r42 by arnoldomuller on Feb 21, 2008   Diff

 
Go to: 
Project members, sign in to write a code review

Older revisions

r35 by arnoldomuller on Feb 08, 2008   Diff
tutorial working, site almost ready
r32 by arnoldomuller on Feb 06, 2008   Diff
Removing some rough edges
r29 by arnoldomuller on Feb 04, 2008   Diff
found the magic numbers. ASM is
working very well 96% and Soot is
still running, Base is 100%
All revisions of this file

File info

Size: 4208 bytes, 140 lines