Main > Free Download Search >

Free arthritis more condition symptoms software for linux

arthritis more condition symptoms

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 322
Causes and Symptoms 2007-08-14

Causes and Symptoms 2007-08-14


Causes and Symptoms program helps you deduce the causes causes of your medical symptoms. more>>
Causes and Symptoms program helps you deduce the causes causes of your medical symptoms that may be related to nutritional deficiencies.

<<less
Download (0.20MB)
Added: 2007-08-21 License: Public Domain Price:
794 downloads
Snow Path Formation Simulator 0.5.3

Snow Path Formation Simulator 0.5.3


Snow Path Formation Simulator it graphically displays the formation of paths in the snow formed by people. more>>
Snow Path Formation Simulator is a program that models the process of people forming very distinct, and yet not always altogether logical looking, paths in the snow as they walk across open spaces.

The evolving condition of the snow is displayed graphically. This project may eventually mature into a screensaver.
<<less
Download (0.10MB)
Added: 2005-04-25 License: GPL (GNU General Public License) Price:
1646 downloads
CSS::SAC::ConditionFactory 0.06

CSS::SAC::ConditionFactory 0.06


CSS::SAC::ConditionFactory Perl module contains the default ConditionFactory. more>>
CSS::SAC::ConditionFactory Perl module contains the default ConditionFactory.

SYNOPSIS

my $cf = CSS::SAC::ConditionFactory->new;
my $cond1 = $cf->create_foo_condition;
my $cond2 = $cf->create_bar_condition;

This is the default ConditionFactory for CSS::SAC. It creates conditions of all types defined in SAC. You may wish to subclass or replace the default ConditionFactory in order to get your own condition objects.

I plan on adding more flexibility to this factory so that one could tell it the classes to use for various conditions, that would avoid enforcing subclassing/recoding for people that only want to replace a family of factory methods.

I know that some of the method names are quite lengthy, but given the great number of possible conditions it helps to have descriptive names.

METHODS

These define the interface that must be adhered to by ConditionFactories. The Java names (given in parens) work too, though the Perl ones are recommended.

CSS::SAC::ConditionFactory->new or $cf->new
Creates a new condition factory object.
$cf->create_and_condition($first,$second) (createAndCondition)
creates a combinator condition of type and
$cf->create_attribute_condition($lname,$ns,$specified,$value) (createAttributeCondition)
creates an attr condition
$cf->create_begin_hyphen_attribute_condition($lname,$ns,$specified,$value) (createBeginHyphenAttributeCondition)
creates a attr condition of type bh
$cf->create_class_condition($ns,$value) (createClassCondition)
creates a attr condition of type class
$cf->create_content_condition($data) (createContentCondition)
creates a content condition
$cf->create_id_condition($value) (createIdCondition)
creates a attr condition of type id
$cf->create_lang_condition($lang) (createLangCondition)
creates a lang condition
$cf->create_negative_condition($cond) (createNegativeCondition)
creates a negative condition
$cf->create_one_of_attribute_condition($lname,$ns,$specified,$value) (createOneOfAttributeCondition)
creates a attr condition of type id
$cf->create_only_child_condition() (createOnlyChildCondition)
creates a only-child condition
$cf->create_only_type_condition() (createOnlyTypeCondition)
creates a only-type condition
$cf->create_or_condition($first,$second) (createOrCondition)
creates a combinator condition of type or
$cf->create_positional_condition($position,$type_node,$same_type) (createPositionalCondition)
creates a positional condition
$cf->create_pseudo_class_condition($ns,$value) (createPseudoClassCondition)
creates a attr condition of type pseudo class

<<less
Download (0.037MB)
Added: 2007-06-20 License: Perl Artistic License Price:
856 downloads
Arguvision R0

Arguvision R0


Arguvision is an enterprise class video surveillance system. more>>
Arguvision project is an enterprise class video surveillance system.
Arguvision is based on a distributed Linux or Unix cluster architecture, with up to 1000 cameras per single cluster with aggregation capability and instant access to recorded or live video.
Main features:
- Up to 1000 video channels per cluster - unlimited clusters
- 6 channels at 720x480 at 30 frames/sec per video grabber unit
- NTSC or PAL video input
- M-JPEG compression 1:15
- 1TB of storage for 10 days per camera at full resolution in high motion area
- Export video using AVI format , or single images using JPEG format
- Real-time view from any camera using client software
- Secure authenticated user access (SSL) based on user role
- Instant browse and archive search by date/time or alarm condition
- Alarm event notification by e-mail or pager
- Record on pre-programmed schedule, or on alarming condition
- Alarm events generated on motion, on video loss, or by activation of an external sensor
- NTP synchronization with time standards (like US Governments NIST)
- Data storage on internal/external network devices managed by SQL RDBMS
- RDBMS capacity monitoring
- Purge obsolete video data automatically
<<less
Download (9.0MB)
Added: 2006-02-21 License: GPL (GNU General Public License) Price:
1346 downloads
The amaroK bindings for Python 0.1.0

The amaroK bindings for Python 0.1.0


The amaroK bindings for Python is a fairly complete amaroK remote control class. more>>
The amaroK bindings for Python is a fairly complete amaroK remote control class. It is extremely useful for amaroK scripts and other applications. Basically, you can remote control amaroK by calling methods from an amaroKProxy instance.

In addition, it implements the Observer/Observable pattern so you can deal with events in an object-oriented, loosely coupled fashion. Even better, you can call an amaroKProxy instances collection.getSong(filename) method to get a Song object, with track, artist, album name, and elegant "Artist - Track name" strings.

Nearly all DCOP functions for communication with amaroK are implemented.

It will use KDE bindings DCOP module if available, otherwise it will default to the command-line DCOP dcop command, through python-commandsplus. If using KDE bindings, a slave process is spawned, and IPC is used to marshal and unmarshal function calls, so as to not contaminate your applications sys.modules with KDEs Python modules. This all happens automatically in the background.

To use it, you import the module in your script and instantiate an amaroKProxy instance, then call your instances startMonitoring() method, which will start reading from standard input, monitoring for amaroKs events. You can then sleep(1) until your instances .isAlive() method returns False (which means amaroK is now gone.

amaroKProxy is an Observable class, and so are its members:

- player
- contextBrowser

This means that you can implement Observer objects or Threads in your amaroK script, and have them be notified of amaroK events, instead of having to read standard input and act accordingly (plus error-prone exceptional condition handling).

<<less
Download (0.033MB)
Added: 2005-12-29 License: GPL (GNU General Public License) Price:
1395 downloads
libcontain 0.2 Alpha1

libcontain 0.2 Alpha1


libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++. more>>
libcontain library provides a large and growing number of fast and thread-safe containter objects written in C and C++.
The libcontain library now provides the following container types:
- a series of hash tables libcontain includes the hash table implementation from GNU glib and a hash implementation in C++ it inherited from the libhash library it originates from. This latter has been rendered thread-safe in the 0.2 release and implements a linear hashing algorithm. A single hash table implementation that will replace them both is on the drawing boards and is intended to be thread-safe and non-blocking.
- an array (vector) implementation
libcontain currently includes a non-blocking array implementation. However, this implementation presents a race-condition in concurrent calls to any of its writing functions if the array is in the process of being resized. There is currently no known non-blocking way to solve this race condition. Help is welcome in this area.
- a binomial tree
The binomial tree provided by libcontain does not provide any algorithmic logic in its implementation: it is a generic container that can be used as the basis for other container implementations, such as a heap or a map (as a matter of fact, the heap and the map are both based on this binomial tree)
- a heap
libcontain provides an automatically sorting heap implementation that (obviously) uses a heap sort to sort the elements it contains. Unfortunately, the heap implementation is not non-blocking (although bases on a non-blocking binomial tree implementation). It contains four levels of locks: a reader count and a write lock at the level of the nodes, and a reader count and a write lock at the level of the container. The locks are posed on the container for as short a time as possible so at to prevent the progress of the algorithm to block too long. If anyone knows of a non-blocking heap algorithm, input is more than welcome.
- a list
libcontain provides a non-blocking list implementation based on an algorithm by M.M. Micheal (also the inventor of Safe Memory Reclamation on which libmemory is based).
a map
The map implementation included in libcontain is based on the binomial tree implementation. Unlike some implementations based on binary trees, this implementation stores values in each node of the tree (not just the leaf nodes) and therefore allows a more memory-efficient way to store information than hashes and other map implementations. Also, the map implementation does not use a "less" function but uses a three-way comparison to compare keys (much like the helper function used by qsort). The implementation is almost (but not quite) non-blocking: for most intents and purposes, there are no real locks: read and write operations may be re-directed along a branch of the binomial tree if a node that they traverse is being deleted, but will not block for that. However, a remove operation will wait for another remove operation to finish if it traverses a node being removed.
- a queue
a non-blocking queue implementation is provided
- a stack
a non-blocking stack implementation is also provided
In future versions, the hash implementation will be replaced by a non-blocking one and the remaining problems with the existing containers will (hopefully) be solved. Help is also needed to write the architecture-dependant code for non-IA32 platforms such as Sparc.
Enhancements:
- The 0.2 release introduces number of important new features including a heap and a map, both based on a lock-free binomial tree. It also includes the required memory management to make the containters impervious to the ABA problem and thus truly thread-safe.
<<less
Download (0.37MB)
Added: 2006-01-19 License: GPL (GNU General Public License) Price:
1373 downloads
The Hunted Chronicle 2

The Hunted Chronicle 2


The Hunted is a single player FPS game based off of the Darkplaces engine. more>>
The Hunted is a single player FPS game based off of the Darkplaces engine. It is completely standalone, meaning that you do not need any prior files to run it, and it comes in a series called chronicles.
These chronicles are used for having a continuously flowing story and a difference in weaponry and in other things found in-game.
Each chronicle tells the story of a lone survivor escaping the city that has been overcome by the infected.
The symptoms of the infected at the time of the survivors adventure are not clear but as the chronicles are released, the story unfolds to make it quite clear as to why, where, when, and how this survivor came to be in a horror show such as this.
Main features:
- Completely recreated zombie and zombie code. Much more "realistic" in attack, range, and response time.
- Added random skin generator so zombies will be wearing different attire no matter how many times you play a map
- Added "Use" key, used to pick up boxes and move them to get to previously unattainable areas
- Added "story driven comics" used to help further the story and gives hints on puzzles
- Added all new weapon models
- Added fully functionable "secondary attack" (zoom with Mercs Gun, large swing with meathook)
- Added zombie footsteps
- FIXED**bug where zombies faking dead on ground would still block a players way
- FIXED**HUD/glock-pistol ammo malfunctions
- Added place_model attributes to have spatialization options and other effects to create global audio ambience and better effects using DarkPlaces extensions
- Added muzzleflash
- Added flashlight
- Added multiple new enemies
<<less
Download (MB)
Added: 2005-09-19 License: Freeware Price:
1527 downloads
AI::Prolog::Introduction 0.739

AI::Prolog::Introduction 0.739


AI::Prolog::Introduction Perl module contains the what and the why of logic programming. more>>
AI::Prolog::Introduction Perl module contains the what and the why of logic programming.

You can skip this if you already know logic programming.

Note that most of this was pulled from my write-up about logic programming in Perl at http://www.perlmonks.org/?node_id=424075.

In Perl, generally you can append one list to another with this:

my @Z = (@X, @Y);

However, thats telling the language what to do. As sentient beings, we can look at that and infer more information. Given @Z and @X, we could infer @Y. Given just @Z, we could infer all combinations of @X and @Y that can be combined to form @Z.

Perl cannot do that. In logic programming, however, by defining what append() looks like, we get all of that other information.

In Prolog, it looks like this:

append([], X, X).
append([W|X],Y,[W|Z]) :- append(X,Y,Z).

(Theres actually often something called a "cut" after the first definition, but well keep this simple.)

What the above code says is "appending an empty list to a non-empty list yields the non-empty list." This is a boundary condition. Logic programs frequently require a careful analysis of boundary conditions to avoid infinite loops (similar to how recursive functions in Perl generally should have a terminating condition defined in them.)

The second line is where the bulk of the work gets done. In Prolog, to identify the head (first element) of a list and its tail (all elements except the first), we use the syntax [head|tail]. Since ":-" is read as "if" in Prolog, what this says if we want to concatenate (a,b,c) and (d,e,f):

Given a list with a head of W and a tail of X:

@list1 = qw/a b c/; (qw/a/ is W, the head, and qw/b c/ is X, the tail)

If its appended to list Y:

@Y = qw/d e f/;

We get a list with a head of W and a tail of Z:

@list2 = qw/a b c d e f/;

Only if X appended to Y forms Z:

X is qw/b c/. Y is qw/d e f/. Z is qw/b c d e f/.

<<less
Download (0.068MB)
Added: 2007-07-04 License: Perl Artistic License Price:
842 downloads
DBIx::Timeout 1.01

DBIx::Timeout 1.01


DBIx::Timeout is a Perl module that provides a safe method of timing out DBI requests. more>>
DBIx::Timeout is a Perl module that provides a safe method of timing out DBI requests.

The method described in the DBI documentation uses unsafe signals, which may cause memory corruption. DBIx::Timeout instead uses a separate timeout process.

The problem with using POSIX sigaction() is that it relies on unsafe signals to work. Unsafe signals are well known to cause instability. For example, imagine your DB client code is in the middle of updating some global state when the signal arrives. That global state could be left in an inconsitent state, just wait for the next time it is needed to cause problems. Since this will likely occur far from the cause, and only ocur rarely, it can be a very difficult problem to track down.

Instead, this module:

- Forks a child process which sleeps for $timeout seconds.
- Runs your long-running query in the parent process.
- If the parent process finishes first it kills the child and returns.
- If the child process wakes up it kills the parents DB thread and exits with a code so the parent knows it was timed out.

NOTE: After this call your database connection may be killed even if no timeout occurred. This is due to a race condition - the child may wake up just as parent process finishes. Patches addressing this bug are welcome. Until this is fixed you should be ready to reconnect after call_with_timeout().

<<less
Download (0.006MB)
Added: 2006-09-22 License: Perl Artistic License Price:
1127 downloads
lm-monitor 1.0

lm-monitor 1.0


lm-monitor is a daemon that run sensors at a defined interval (15 seconds by default) and checks the output. more>>
lm-monitor is a daemon that run sensors at a defined interval (15 seconds by default) and checks the output
If a sensor value has gone outside the defined limit since the last reading, an email message is sent to one or more administrators, alerting them about the condition so they can take appropriate action.
lm-monitor requires the lm-sensors package and a working email configuration, including the "mail" command.
Enhancements:
- Found and corrected a bug in MailText() that generated unvalid indices into SData member arrays.
- Wrote a script to create an unprivileged system account.
- Added code to drop root privilegies and run as the system account mentioned above.
- The install target creates a separate directory for lm-monitor in $(PIDDIR) (normally /var/run), and sets owner and group to lm-monitor. This is neccesary for lm-monitor to be able to remove the pidfile on exit, after having dropped root privilegies.
- Corrected the manpage regarding the --verify-config option.
- Added --help and --version as valid options (previously only -h and -v was accepted).
- Found and corrected a bug in EvaluateAlarm() where newBits was used instead of oldBits when composing mail messages for restored alarms.
<<less
Download (0.021MB)
Added: 2006-09-26 License: GPL (GNU General Public License) Price:
1130 downloads
Apache Portable Runtime 1.2.8

Apache Portable Runtime 1.2.8


The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries. more>>
Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
Main features:
- Atomic operations
- Dynamic Shared Object loading
- File I/O
- Locks (mutexes, condition variables, etc)
- Memory management (high performance allocators)
- Memory-mapped files
- Multicast Sockets
- Network I/O
- Shared memory
- Thread and Process management
- Various data structures (tables, hashes, priority queues, etc)
Enhancements:
- Various bugs were fixed.
- The API compatible with version 1.2.7.
<<less
Download (1.0MB)
Added: 2007-06-21 License: The Apache License 2.0 Price:
870 downloads
Fenris 0.07-m2 build 3245

Fenris 0.07-m2 build 3245


Fenris is a multipurpose tracer, debugger, and code analysis tool. more>>
Fenris is a suite of tools suitable for code analysis, debugging, protocol analysis, reverse engineering, forensics, diagnostics, security audits, vulnerability research and many other purposes.
The main logical components are:
- Fenris: high-level tracer, a tool that detects the logic used in C programs to find and classify functions, logic program structure, calls, buffers, interaction with system and libraries, I/O and many other structures. Fenris is mostly a "whats inside" tracer, as opposed to ltrace or strace, tracers intended to inspect external "symptoms" of the internal program structure. Fenris does not depend on libbfd for accessing ELF structures, and thus is much more robust when dealing with "anti-debugging" code.
- libfnprints and dress: fingerprinting code that can be used to detect library functions embedded inside a static application, even without symbols, to make code analysis simplier; this functionality is both embedded in other components and available as a standalone tool that adds symtab to ELF binaries and can be used with any debugger or disassembler.
- Aegir: an interactive gdb-alike debugger with modular capabilities, instruction by instruction and breakpoint to breakpoint execution, and real-time access to all the goods offered by Fenris, such as high-level information about memory objects or logical code structure.
- nc-aegir: a SoftICE-alike GUI for Aegir, with automatic register, memory and code views, integrated Fenris output, and automatic Fenris control (now under development).
- Ragnarok: a visualisation tool for Fenris that delivers browsable information about many different aspects of program execution - code flow, function calls, memory object life, I/O, etc (to be redesigned using OpenDX or a similar data exploration interface).
- ...and some other companion utilities.
Code analysis is not limited to debugging, quality assurance or security audits. Understanding and handling file formats or communication protocols used by proprietary solutions, a problem that many corporations face when they decide to change their base software platform from one, obsolete or insufficient solution to another, perhaps more suitable, is a task that can consume long months and millions of dollars, especially when any misjudgment or misinterpretation is made.
Because of that, accurate and complete information about existing solutions has to be obtained and evaluated in a timely manner. This project is an attempt to fill the gap between currently used tools by providing a freely available program analysis utility, suitable for black-box code audits, algorithm analysis,
rapid reconnaissance in open-source projects, tracking down bugs, evaluating security subsystems, performing computer forensics, etc.
This program does not automate the process of auditing, and does not favor any particular use. Instead of that, it is intended to be a flexible and universal application that will be a valuable solution for many advanced users. While functional, it is probably not tested sufficiently, there are many issues to fix, several known bugs, some portability problems.
It is being released primarily to get user feedback, comments, and, most important, to request development support, as my resources are very limited, both in terms of available time and development platforms. This project is and will be distributed as a free software, regardless of projected use, accompanied by complete sources, under the terms and
conditions of GPL. Why do you might need this code? Well, there are few reasons...
Human beings are, so far, the best code analysts. Unlike computer programs, they have imagination, ability to build synthetic abstract models, and yet to observe and analyze smallest details at the same time. Functionality is often being described as "doing what the program is supposed to do", security as "doing what the program is supposed to do and
nothing more". While it might sound funny, that is the most general and complete definition we have. In most real-life scenarios only humans really know what are their expectations. Building strict formal models of our expectations does not necessarily mean that models themselves are flawless, and is very time-consuming. Then, even with such models,
validating the code is not always possible, due to its computational complexity. That is why real, live programs (not including some critical developments) do not have such models, do not follow any particular coding guidelines, and cannot be formally examined without human judgment.
Unfortunately, humans are also highly inaccurate and very expensive. They work slowly, and better results can be achieved by hiring better specialists and performing more careful audit. And after all, even the best expert can overlook something in complex, hard to read code. It is almost impossible for human to perform an accurate audit of a large, complex, heterogeneous project written e.g. in C - like Sendmail, BIND, Apache - and provide results in reasonable time.
Things get even worse when humans try to understand algorithms and protocols used by complex closed-source black box solutions. They are simply too slow, and not always able to make accurate guesses about dozens of complicated, conditional parameter passes and function calls before final action is taken.
While it might sound surprising, human-driven code audit is very similar to playing chess - it is a general analysis of possible states, way too many to be implicitly projected by our conscience, a result of experience, knowledge, some unparalleled capabilities of human brain, and luck. It is also a subject to false moves and misjudgment. And there are maybe just a few hundred excellent players.
As for today, freely and commercially available audit tools both use two opposite approaches. First approach tends to minimize human role by automating the review of source code. Source code analysis methods are good in spotting known, repeatable static errors in the code - such as format string vulnerabilities. On the other hand, static tools are not able to trace and analyze all possible execution paths of complex application by
simply looking at its source.
The reason for inability to follow all execution paths lies deeply in the foundations of modern computation theory, and one of its aspects is known as "the halting problem". Speaking in more general terms, in many cases (such as complex software, or even underlying operating system), the amount of medium needed to store all possible states of a complex program exceeds significantly the number of particles in the
universe; and the amount of time needed to generate and process them sequentially is greater than the lifetime of our universe, even having a machine that works with the speed of light.
This might be changed by the development of new computation models, such as quantum computing, or by creating mathematical models that allow us to make such problems non-polynomial - but for now, we are far from this point, and static analysis is restrained in many very serious ways, even though many software suppliers tend to market their products as the ultimate, 100% solutions. Subtle, complex, conditional dynamic errors, such as privilege dropping problems, input-dependent table overflows in C and many other issues usually cannot be detected without generating a completely unacceptable number of false positives.
This kind of software is highly dependent on coding style, and specific notation or development practices might render them less efficient - for example, automated audit utilities can usually detect problems like insecure call to strcpy() function, but will very likely not notice insecure manual copy in do-while
loop. The truth is, for programs that do not have previously built formal models, static auditing utilities look for known, common problems in known, common types of code in a very limited scope.
Another issue is the applicability of this approach to algorithm analysis tasks. In the domain of automated audit tools, this problem is "reduced" to building a formal model of program behavior, or, more appropriately, generating certain predictive statements about the code. While there are very interesting developments in this direction, such as the work of professor Patrick Cousot, it is very difficult to make any detailed, accurate and abstract enough run-time predictions for complex source code that has any immediate value in the analysis of unknown algorithm.
Last but not least, static analysis of sources can be deployed only when the source code is available, which does not have to be the case. This approach is a subject to many shortcomings, tricky assertions, and is a technique of strictly limited capabilities. This is, of course, not to dismiss this method - but to demonstrate that this much favored approach is not flawless and how much it needs to be accompanied with auxiliary methods.
The second approach to be discussed here is based on a dynamic run-time program analysis. This method is usually used to provide the user with information about actual program execution path, letting him make decisions on which path to follow and giving him free will to draw any conclusions and perform all the synthetic reasoning.
This method is
applied to a live binary executed in real-time and is based on monitoring syscalls (strace), libcalls (ltrace) or functions (xtrace); in certain cases, breakpoint debuggers, such as gdb, can be used, however it is usually not feasible to use them to perform anything more than in-depth analysis of a very small portion of program functionality. Usually, such analysis provides a very useful information on what is happening, and this information is provided in uniform, reduced-output form.
A careful auditor can analyze program behavior and find interesting or potentially dangerous run-time conditions. By monitoring how a given application interacts with external world, he (or she) can determine whether some other
conditions can be triggered and eventually explore them by examining sources or re-running the program. Advantages are enormous, as such software enables the auditor to spot very subtle errors in code that "looked good", to observe actual execution, not to try to figure it out, and to find or trace down not obvious or non-schematic vulnerabilities. Run-time trace tools are primarily used for fast reconnaissance tasks and for tracing down notorious errors that are not clearly visible in the source, significantly reducing the time of such operations.
There are, however, serious drawbacks related to this method. First of all, known tracing tools do not provide the complete information. They will detect strcpy() call, but wont report if exactly the same functionality has been implemented from scratch by the author of given program. And, in some cases, the amount of produced data
can be enormous, and because of its completely unstructured character, it makes the observation of overall execution vector almost impossible. Two most important problems are: correlating trace data with actual code, and determining what occurred in the "dark matter" between two lines of trace output.
There are some attempts to combine both approaches - run-time evaluation and source code analysis - such as Purify or many other commercial development support products. Unfortunately, they all feature a limited set of capabilities that need development-side or compilation-time support and are not really suitable for comprehending black box solutions or performing a general analysis. Most of them are targeted for dynamic memory debugging and code / memory profiling.
While not mentioned above, there is also another approach to black-box code - high-level decompiler. However, the complexity of modern compilers makes it very difficult to develop an effective C decompiler or similar utility, and there are only a few (two?) projects available to accomplish it, all of them not able to deal with too complex or optimized code. Finally, there is no guarantee that generated output code will be any help in comprehending the program. For now, this approach remains almost purely theoretical,
and I am not aware of any auditors using it extensively. Why? Well, heres an example of decompiled, mildly optimized code *with* some symbolic information: http://www.backerstreet.com/rec/ex386/hdgO.rec . One may argue it is less readable than cross-referenced disassembly.
This project, Fenris, is named after the monstrous wolf, son of the Norse god Loki. It is not the ultimate answer to all questions, not a solution for all problems, and under no circumstances is intended to replace other tools and techniques. On the other hand, it makes one step forward compared to other tools, trying to support the auditor and to make his work much more effective. This is accomplished by combining a number of techniques, including partial run-time decompiler, stateful analysis, code fingerprinting, I/O analysis, high-level visualization layer, traditional interactive debugger features and run-time code modification capabilities. The goal is to provide a very detailed trace information, and, at the same time, to provide data suitable to build a model of program behavior more quickly and in more convenient way.
Fenris is not supposed to find vulnerabilities or bugs, or to guess algorithms or describe protocols. It is supposed to report and analyze the execution path - detect and describe functional blocks, monitor data flow in the program, marking its lifetime, source, migration and destination, analyze how functions work and what conditions are evaluated.
At the end, it can deliver you an execution model of traced program (or arbitrarily chosen portion of it, if complete trace results in too much noise or irrelevant information), and hint you how this model can change in different conditions. Fenris does not need source codes of analyzed application, but obviously does not keep the auditor from using them.
For many users, Fenris might be a new tool or tools, for others - just a command-line replacement or addition to strace, ltrace, gdb or similar applications (theres a brief list of other nice tools in doc/other.txt). And thats the idea - to build a tool that is simple, reusable, but also precise and smart. It is supposed to have advantages over other tools, but not to be an ultimate replacement or the final solution. Some users can just use very specific features, such as automated function fingerprinting, and use companion tools instead of the main program.
<<less
Download (1.1MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
1657 downloads
Test::Version 0.02

Test::Version 0.02


Test::Version is a Perl module that has the role to check for VERSION information in modules. more>>
Test::Version is a Perl module that has the role to check for VERSION information in modules.

SYNOPSIS

use Test::Version;
plan tests => $num_tests;
version_ok( $file );

FUNCTIONS

version_ok( FILENAME, [EXPECTED, [NAME] ] )
version_ok requires a filename and returns one of the three values:

NO_FILE Could not find the file
NO_VERSION File had no VERSION information
VERSION_OK VERSION information exists

version_ok okays a test without an expected result if it finds VERSION information, or if an expected result is specified and it finds that condition. For instance, if you know there is no VERSION information,

version_ok( $file, NO_VERSION );

When it fails, version_ok will show error information.

The optional third argument NAME is the name of the test which version_ok passes through to Test::Builder. Otherwise, it choose a default test name "VERSION test for FILENAME".

<<less
Download (0.005MB)
Added: 2007-05-07 License: Perl Artistic License Price:
902 downloads
Parse::RandGen::Regexp 0.202

Parse::RandGen::Regexp 0.202


Parse::RandGen::Regexp is a Perl module for regular expression Condition element. more>>
Parse::RandGen::Regexp is a Perl module for regular expression Condition element.

Regexp is a Condition element that matches the given compiled regular expression. For picking random data, the regular expression is parsed into its component Subrules, Literals, CharClasses, etc.... Therefore, the pick functionality for a regular expression is ultimately the same as the pick functionality of a Rule (including the limitations w/r to greediness - see Rule).

Regexp is also useful as a standalone class. It supports captures (named and indexed), which can be referenced in a call to the pick() function to force the captures to match the specified data, while leaving the rest of the data to be generated randomly.

METHODS

new

Creates a new Regexp. The first argument (required) is the regular expression element (e.g. qr/foo(bar|baz)+d{1,10}/). All other arguments are named pairs.

element

Returns the Regexp element (i.e. the compiled regular expression itself).

numCaptures

Returns the number of captures (e.g. $1, $2, ...$n) in the regular expression.

nameCapture

Give names to capture numbers for the regular expression. The arguments to this function are capture# => "name" pairs (e.g. nameCapture(1=>"directory", 2=>"file", 3=>"extension")).

capture

Returns the Rule object that represents the specified capture. The capture can be specified by number or by name (the name is set by the nameCapture() function).

pick

Randomly generate data (text) that matches (or does not) this regular expression.
Takes a "match" boolean argument that specifies whether to match the regular expression or deliberately not match it.

Also takes a "captures" hash argument that has pairs of capture numbers (or names) and their desired value. This allows the generated data to have user-specified constraints while allowing the rest of the regular expression to choose random data. If "match" is false, the user-specified "captures" values are still used (which may cause the data to match even though it was not supposed to).

Example:
$re->pick(match=>1,
captures=>{ 1=>"http", 2=>"www", 3=>"yahoo", 4=>"com" });

<<less
Download (0.025MB)
Added: 2006-12-19 License: Perl Artistic License Price:
1039 downloads
bzr-hudson 1.0 Beta 1

bzr-hudson 1.0 Beta 1


Bazaar plugin for Hudson more>>
bzr-hudson 1.0 Beta 1 offers you a perfect and helpful plugin which can allow the use of Bazaar as a build SCM in Hudson. With this plugin, you can designate a Bazaar branch as the "upstream" repository. Every build will update the local branch. Polling is also supported, it'll check if the upstream branch have any new revision and use this as the build triggering condition.

Requirements:

  • Bazaar Revision Control System: bzr >= 1.9
  • xmloutput >= 0.8.2
<<less
Added: 2009-01-28 License: GPL Price: FREE
14 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5