obfuscation define
B::Deobfuscate 0.18
B::Deobfuscate Perl module contains the deobfuscate source code. more>>
SYNOPSIS
perl -MO=Deobfuscate,-csynthetic.yml,-y synthetic.pl
B::Deobfuscate is a backend module for the Perl compiler that generates perl source code, based on the internal compiled structure that perl itself creates after parsing a program. It adds symbol renaming functions to the B::Deparse module. An obfuscated program is already parsed and interpreted correctly by the B::Deparse program. Unfortunately, if the obfuscation involved variable renaming then the resulting program also has obfuscated symbols.
This module takes the last step and fixes names like $z5223ed336 to be a word from a dictionary. While the name still isnt meaningful it is at least easier to distinguish and read. Here are two examples - one from B::Deparse and one from B::Deobfuscate.
Initial input
if(@z6a703c020a){(my($z5a5fa8125d,$zcc158ad3e0)=File::Temp::tempfile(
UNLINK,1));print($z5a5fa8125d "=over 8nn");(print($z5a5fa8125d
@z6a703c020a)or die(((("Cant print $zcc158ad3e0: $!"))); print($z5a5fa8125d
"=backn");(close(*$z5a5fa8125d)or die(((("Cant close ".*$za5fa8125d.": $!")
));(@z8374cc586e=$zcc158ad3e0);($z9e5935eea4=1);}
After B::Deparse:
if (@z6a703c020a) {
(my($z5a5fa8125d, $zcc158ad3e0) = File::Temp::tempfile(UNLINK, 1));
print($z5a5fa8125d "=over 8nn");
(print($z5a5fa8125d @z6a703c020a)
or die((((q[Cant print ] . $zcc158ad3e0) . : ) . $!)));
print($z5a5fa8125d "=backn");
(close(*$z5a5fa8125d)
or die((((q[Cant close ] . *$za5fa8125d) . : . $!)));
(@z8374cc586e = $zcc158ad3e0);
($z9e5935eea4 = 1);
}
After B::Deobfuscate:
if (@parenthesises) {
(my($scrupulousity, $postprocesser) = File::Temp::tempfile(UNLINK, 1));
print($scrupulousity "=over 8nn");
(print($scrupulousity @parenthesises)
or die((((q[Cant print ] . $postprocesser) . : ) . $!)));
print($scrupulousity "=backn");
(close(*$scrupulousity)
or die((((q[Cant close ] . *$postprocesser) . : ) . $!)));
(@interruptable = $postprocesser);
($propagandaist = 1);
}
Youll note that the only real difference is that instead of variable names like $z9e5935eea4 you get $propagandist.
Speegle Define 1.1
Speegle Define is a Firefox extension that gives a spoken definition of a word using Speegle Speech Technology. more>>
Right click and choose "Audio Definition" from the pop up menu and its definition will be read back to you in English through your speakers or headphones.
Natrium Engine Beta01
Natrium Engine tracks groups of parts by letting users define the relationships between parts. more>>
These are joined together to form a rule for parts in configurations. When a part is removed from or added to a configuration, all children of that part are also transferred. This has special applications to "living" inventory, or groups of disparate parts that need to be tracked as a group rather than individually.
For example, if a carburetor is made a separate configuration from an engine, then when removing it all parts associated with the carburetor are also removed. A facility is provided for tracking user-defined line-item costs of each part.
Blackdown Java3D for Linux 1.3.1
Blackdown Java3D for Linux is Java3D for Linux. more>>
It provides high-level constructs for creating and manipulating 3D geometry and building the structures used in rendering that geometry.
With this software, you can efficiently define and render very large virtual worlds.
Blackdowns version of Java 3D uses the OpenGL low-level API to take advantage of 3D hardware acceleration.
Data::Region 1.0
Data::Region Perl module can define hierarchical areas with behaviors. more>>
SYNOPSIS
use Data::Region;
$r = Data::Region->new( 8.5, 11, { data => PageObj->new() } );
$r->data( PageObj->new() );
foreach my $c ( $r->subdivide(2.5,3) ) {
$a = $c->area(0.25,0.25, 2.25,2.75);
$a2 = $c->area(0.25,0.25, -0.25,-0.25); # as offset from lower right
($t,$m,$b) = $a->split_vertical(2,5,1); # sequential heights
($t,$m,$b) = $a->split_vertical_abs(0,2,7); # absolute offsets
($l,$r) = $a->split_horizontal(2); # $l gets width of 2, $r gets the rest
my($x1,$y1,$x2,$y2) = $a->coords();
my $data = $a->data(); # data inherits from parent, if not set
$a->action( sub { $data->setfont("Times-Bold", 10);
$data->text($x1,$y1, "Some Text");
$data->line( $_[0]->coords() ); # the non-closure way
} );
}
$r->render(); # heirarchically perform all the actions
# Get some info about a region:
($w,$h) = ( $a->width(), $a->height() );
($x1,$y1, $x2,$y2) = $a->coords();
($x1,$y1) = $a->top_left();
($x2,$y1) = $a->top_right();
($x1,$y2) = $a->bottom_left();
($x2,$y2) = $a->bottom_right();
Data::Region allows you to easily define a set of nested (2-dimensional) areas, defined by related coordinates, and to associate actions with them. The actions can then be performed hierarchically from any root of the tree.
Data::Region was written to provide an easy way to do simple page layout, but has, perhaps, more general uses.
Auto Project Planner 1.1.0
Auto Project Planner software automatically calculates a proper project plan based on your effort estimations. more>>
The project is also possible to define a maximum percentage value an employee can/should work on a task.
Public holidays, leaves, weekly working hours and some more parameters can be specified and are considered in the calculation.
According to this input the software compute time plans by minimizing the MSE (mean squared error) between expected and computed end dates.
Main features:
- Add/Remove/Edit/Arrange Tasks
- Estimated/Remaining Time
- Expected End Date
- Predecessors
- Add/Remove/Edit Staff Members
- Hours per week
- Assign (multiple) Staff Members to Tasks
- Define max. percentage a Staff Member could/should work on a Task
- Define Sick/Personal Leaves & Public Holidays
- Set Start Date of Calculation
- Output: Phase Plan (printable)
- Output: General & Weekly Overview of calculated plan
- Calculation
- Minimizes MSE between Expected and Calculated End Dates of Tasks
- New/Open/Save APP Projects
- Export to GanttProject
Sound 1.4
Sound lets you mathematically create sounds in Java. You define your sounds in terms of 16-bit linear code for the waveform, -- an array of samplings. The U_Law.class will then convert that to (or from) *.AU mu-law 8-bit encoding format which you can then play with AudioPlayer.player.start(bis) in an application or with Applet.getAudioClip in an Applet. This is just a sample program. You would insert your own mathematical functions. more>>
Sound - Sound lets you mathematically create sounds in Java.
You define your sounds in terms of 16-bit linear code for
the waveform, -- an array of samplings. The U_Law.class will
then convert that to (or from) *.AU mu-law 8-bit encoding
format which you can then play with
AudioPlayer.player.start(bis) in an application or with
Applet.getAudioClip in an Applet.
This is just a sample program. You would insert your own mathematical
functions or cannibalise parts of the code.
Use winzip to extract U_Law.java and Sound.java with
folder names into the commindprodsound directory.
java com.mindprod.sound.Sound
Enhancements:
Version 1.4
add pad and icon
System Requirements:<<less
cid-compiler 0.1
cid-compiler is a language tool to easily create C code with object oriented features. more>>
The generated C code consists of a struct, a opaque pointer to it (in the header file) and rewritten functions. The defined functions will get prefixed with the class name, they will also get a new first argument that is a pointer to the newly defined struct.
Functions that do not have a return value are considered constructors and will not get a new 1st argument but will automatically get a return value of pointer to the struct. The place between @class "name" and @attributes is e. g. for include statements and will make it into the header file.
To ease renaming the class, you can use the define CLASS, which will always be a define to a pointer of the new struct type.
Interface example
@class cstring
#include < stdio.h >
#include < string.h >
@attributes
char *c;
@methods
new(char *n) {
CLASS i = NEWCLASS;
i->c = strdup(n);
return i;
}
int length() {
return strlen(this->c);
}
@end
will yield a cstring.h file:
#ifndef _CSTRING_H_
#define _CSTRING_H_
#include < stdio.h >
#include < string.h >
typedef struct cstring *cstring;
cstring cstring_new(char *n);
int cstring_length(cstring this);
#endif
and a cstring.c file:
#include "cstring.h"
#define CLASS cstring
#define NEWCLASS malloc(sizeof(struct cstring));
#define NEWCLASS_M malloc(sizeof(struct cstring));
#define NEWCLASS_C calloc(1,sizeof(struct cstring));
struct cstring {
char *c;
};
cstring cstring_new(char *n) {
CLASS i = NEWCLASS;
i->c = strdup(n);
return i;
}
int cstring_length(cstring this) {
return strlen(this->c);
}
Issues:
The current compiler (v0.1) will reject quite some valid C code. Also the given error is not very helpful;
austhex 8-beta14
The Austhex IRCD is the irc daemon used on Austnet. more>>
The protocols described here implement TimeStamps on IRC channels and nicks. The idea of IRC TimeStamps was started on Undernet, and first implemented by Run .
The protocols used here are not exactly the same as the ones used on Undernet; the nick-kill handling is very similar and must be credited to Run, while the
"TimeStamped channel description" protocol is quite different.
TSora servers keep track of which version of the TS protocol (if any) their neighboring servers are using, and take it into account when sending messages to them. This allows for seamless integration of TS servers into a non-TS net, and for upgrades of the protocol.
Each server knows which is the lowest and the highest version of the TS protocol it can interact with; currently both of these are set to 1:
#define TS_CURRENT 1 /* the highest TS ver we can do */
#define TS_MIN 1 /* the lowest TS ver we can do */
Cameleon2 1.9.17
Cameleon aims to become an integrated development environment for Objective-Caml, and eventually other languages. more>>
Main features:
- graphical user interface,
- configuration management based on CVS,
- easy access to and browsing of documentation,
- various editors, according to customizable file types,
- use of plug-ins to define new features,
- highly customizable interface (menus, toolbar, keyboard shortcuts).
Convulsion 0.0.5
Convulsion is a drop-in CVS repository browser for PHP. more>>
You can browse directories and files, view a files revision history, compare two versions, and retrieve its ChangeLog. Convulsion also supports automatic obfuscation of e-mail addresses and syntax highlighting of most common languages.
Convulsions output is standards-compliant, accessible, and customisable by means of CSS.
Using Convulsion with Apache 2.x
Please note that in order to use Convulsion with the 2.x series of the Apache web server, you will need to set the value of the "AcceptPathInfo" directive to a value other than "Off". This can be done in the main Apache config, in the < VirtualHost > section for your site or using a .htaccess file.
PandaLex PDF Parser 0.5
PandaLex PDF Parser is a flex and bison parser for PDF documents. more>>
It is a flex and bison description of the PDF specification, which allows programmers to define callbacks to handle different document elements.
Physics::Lorentz::Transformation 0.01
Physics::Lorentz::Transformation Perl module contains representation of poincare transformations. more>>
SYNOPSIS
use Physics::Lorentz;
my $rotation = Physics::Lorentz::Transformation->rotation_euler(
$alpha, $beta, $gamma
);
my $vector = Physics::Lorentz::Vector->new([$t, $x, $y, $z]);
my $rotated = $rotation->apply($vector);
# or: $rotated = $rotation * $vector;
...
This class represents a Poincare transformation. That is a proper or improper Lorentz transformation plus a shift by some 4-vector. (x = lamda*x + a)
Yes, the class name might be misleading, but honestly, when most non-physicists talk about Lorentz transformations, they mean Poincare transformations anyway. (Pun intended.)
To sum this up, the set of Poincare transformations contains, among others
Boosts
Rotations
Space Inversions / Parity
Time Inversion
Shifts by a constant vector
Combinations thereof
OVERLOADED INTERFACE
Stringification is overloaded with the stringify method.
Multiplication (*) is overloaded with the merge method for other transformations: $t3 = $t1 * $t2 corresponds to the following application on a vector: t1 * ( t2 * vec ). (I.e. t2 first, then t1) Of course, Poincare transformations do not commute!
The assignment form of multiplication is supported for merging transformations but its use is discouraged unless youre into obfuscation.
Multiplication is also overloaded for application to vectors, but only if the vector is on the right of the transformation: $t * $v is okay, but $v * $t is not.
Stock Quote 1.2.4
Stock Quote allows getting stock quote of selected ticker from any financial site that you define in the setting page. more>>
Attribute::Handlers 0.85
Attribute::Handlers is a multi-purpose, highly customizable Linux programming tool. more>> Attribute:Handlers 0.85 is a multi-purpose, highly customizable Linux programming tool. This module, when inherited by a package, allows that package's class to define attribute handler subroutines for specific attributes. Variables and subroutines subsequently defined in that package, or in packages derived from that package may be given attributes with the same names as the attribute handler subroutines, which will then be called in one of the compilation phases (i.e. in a BEGIN, CHECK, INIT, or END block). (UNITCHECK blocks don't correspond to a global compilation phase, so they can't be specified here.)
To create a handler, define it as a subroutine with the same name as the desired attribute, and declare the subroutine itself with the attribute.