Gehe zu deutscher Webseite

News

Project description:

VGWhoIs is a fork of the tool GWhoIs (currently not actively developed). It allows users to find information about domains, IP addresses, ASN numbers etc by querying the best fitting WhoIs service automatically. The information about the whois services is stored in a pattern file and can be altered or extended by new pattern files.

The usage is pretty simple:

vgwhois example.com
Daniel Marschall
ViaThinkSoft Co-Founder
Download description:

This is the latest version of OIDplus 2.0!

Source code: https://github.com/danielmarschall/oidplus
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

An API written in PHP for the OID repository oid-info.com.

The majority of the functions provided by this API helps developers in creating XML files which can be uploaded to the OID repository to add multiple OIDs, but the API also contains other helpful utilities related to OIDs, UUIDs and the OID repository in general. The XML generation can be useful for Registration Authorities (RAs) that want to deliver their assignments to oid-info.com , but also for people who want to support the OID repository by adding OIDs from public sources.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

LogViewer is a small tool for Linux that reads out log files (usually from PHP) and saves them in a MySQL database.

There, the errors are categorized and summarized according to the time and number of occurrences.

The errors can be sorted and filtered via a web interface. Since the goal is to correct the problems, the error can be hidden with one click. It will then only be displayed if it appears again anyway.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

Converts OIDs in DER and vice versa.

Online demo
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

This package contains php functions for backwards compatibility, which can be included as "prepend" script - this means, that all PHP scripts (called via Apache, CLI etc.) include these scripts and therefore offer the backwards compatibility functions.

Currently, the pack contains following units:
- Replacement of mysql-functions with PHP 7
- Replacement of register_globals
- Replacement for ereg-functions and split-functions
- Small (weak) XSS WAF

If you need htmlentities(), htmlspecialchars() or html_entity_decode() with old semantics, you can download compatibility functions here
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

YouTube Downloader is a tool for Linux. It is a wrapper for youtube-dl and offers several additional functionalities.

Special features:
- Downloading of all videos of a channel or a playlist.
- Automatic searching inside channels or globally (whole YouTube)
- You can download videos and audio files.
- YouTube-IDs can be automatically written in the ID tag of downloaded mp3 files.
- An automatically managed list of already downloaded videos allows you to move away from the downloaded files without the risk of downloading the already downloaded files again.
- An automatically managed list of failed downloads will avoid that a video, which is not available anymore, is tried to be downloaded too many times.
- Creation of SFV and/or MD5 checksum files.
- The tool is fully CLI and is optimized for cronjobs.

Requirements:
- PHP CLI
- Package "youtube-dl"
- If you want to extract MP3 files: "avconv" or "ffmpeg". Optional: "id3v2"
- Ein Youtube API-Key (obtain here)
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

FastPHP is a simple, efficient, and comfortable editor/IDE for PHP. Besides syntax highlighting, a code explorer, and the execution of PHP scripts outside the browser, FastPHP offers other useful functionalities like PHP Lint, showing the PHP documentation by keystroke and automatic replacement of whitespaces into tabs.

Features:
  • Loads very fast, similar to Notepad
  • Syntax highlighting
  • Code TreeView Explorer (written in PHP!), also shows TODO-Entries
  • Running PHP files without IDE and without browser
  • Integrated PHP lint
  • Conversation from whitespaces to tabs
  • Integrated PHP help with the F1 key
  • PHP files can be executed like HTA files via double-click
  • Switch between Dark and Light theme
  • Show/Hide formatting symbols
  • Clicking on a PHP error will jump to the code line
  • Automatically removes unnecessary spaces at end of lines and the end of file
  • Integrate in Explorer as "Shell new" to quickly create new PHP files
Daniel Marschall
ViaThinkSoft Co-Founder
Download description:

The source code in Delphi.
Daniel Marschall
ViaThinkSoft Co-Founder
Download description:

StackManager für Linux, insbesondere über SSH Verbindungen.

Verwendet MySQL als Datenbank.

Eine automatisierte Migration auf StackMan for Windows 5.1 ist geplant.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

Known by the game "Brown Away", Grid Game is a game where you need to navigate through a grid of playing cards. The card suit defines the direction and the value of the card defines the distance.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

Known by the game "Brown Away", Grid Game is a game where you need to navigate through a grid of playing cards. The card suit defines the direction and the value of the card defines the distance.
Daniel Marschall
ViaThinkSoft Co-Founder

Screenshots of the projekt

  Grid Game Main Window  
Project description:



VNag (ViaThinkSoft Nagios) is a framework for PHP which allows developing plugins for Nagios-compatible systems (e.g. Icinga2), following the development guidelines.

The download package contains documentation, examples and many new plugins, e.g. to check WordPress installations.

Beside developing normal Nagios/Icinga plugins (PHP will be called via CLI), you can develop plugins which are additionally served over HTTP.

  • The plugins can be shown via a HTTP-Demon (e.g. Apache) in user's browsers. Beside the output for Nagios (Summary, Verbose information, Performance data), user-defined HTML output can be added, e.g. to complete your Nagios output with more diagrams, pictures, etc. Only one code base is required!

  • The web-output contains a hidden machine readable part, which can be read out with the "WebReader" plugin of VNag. The WebReader plugins reads the machine readable part and outputs the data in the output format which can be read by Nagios. This way, you can monitor things like WordPress version at systems where you have no shell access and/or without Nagios installed.

  • It is also possible to create websites which only have a machine readable part (i.e. you include your VNag output in your existing website). This machine readable part can be optionally signed and/or encrypted.

VNag comes with following plugins pre-installed:

  • 4images_version: Checks 4images installations for updates.
  • aastra_430_voicemail: Checks Aastra 430 phone system for new voicemails.
  • disk_running: Checks if harddisks which do not have SMART capability are online
  • file_timestamp: Warns when files are not modified withhin a specific interval/age.
  • gitlab_version: Checks GitLab install~ations for updates.
  • hp_smartarray: Checks disk and controller status of HP SmartArray RAID controllers.
  • ipfm: Checks the log files of the tool "ipfm" and warns when the measured traffic exceeds a given limit.
  • joomla_version: checks Joomla installations for updates.
  • last: Checks the output of the tool "last" and warns when logins from suspicious IP adresses are detected.
  • mdstat: Parses the output of "/proc/mdstat" and warns when drives inside a RAID array have failed.
  • mediawiki_version: Checks MediaWiki installations for updates.
  • megaraid: Checks MegaRAID (MegaCLI64) RAID arrays for degraded arrays, SMART warnings, or failing batteries.
  • minecraft_java_version: Checks the version of a local Minecraft Java server for updates.
  • net2ftp_version: Checks net2ftp installations for updates.
  • nextcloud_version: Checks Nextcloud installations for updates.
  • nocc_version: Checks NOCC webmail installations for updates.
  • openbugbounty: Checks if your domains are listed at OpenBugBounty.org.
  • open_deleted_files: Checks if there are deleted files which have open file handles (leaked disk space).
  • owncloud_version: Checks ownCloud installations for updates.
  • phpbb_version: Checks phpBB installations for updates.
  • phpmyadmin_version: Checks phpMyAdmin installations for updates.
  • ping: Pings a hostname or IP address.
  • pmwiki_version: Checks PmWiki installations for updates.
  • roundcube_version: Checks RoundCube installations for updates.
  • smart: Checks the SMART attributes of harddrives and warns when bad attributes are detected.
  • viewvc_version: Checks ViewVC installations for updates.
  • virtual_mem: Checks the amount of virtual memory (physical memory + swap).
  • webreader: Reads the output of another VNag plugin transferred over HTTP.
  • websvn_version: Checks WebSVN installations for updates.
  • wordpress_version: Checks WordPress installations for updates.
  • x509_expire: Warns when X.509 (PEM) certificate files reach a specific age.
Daniel Marschall
ViaThinkSoft Co-Founder
function Rfc3339ToDatetime(rfc: string): TDatetime;

  // convert UTC to local time
  // https://www.delphipraxis.net/207745-utc-local-time.html
  function UTCToLocalDateTime(const UTC: TDateTime): TDateTime;
  var
    TZI: TTimeZoneInformation;
    LocalTime,
    UniversalTime: TSystemTime;
  begin
    GetTimeZoneInformation(TZI);
    DateTimeToSystemTime(UTC, UniversalTime);
    SystemTimeToTzSpecificLocalTime(@TZI, UniversalTime, LocalTime);
    Result := SystemTimeToDateTime(LocalTime);
  end;

var
  jahr, monat, tag, stunde, minute, sekunde, off_h, off_m: integer;
  utc: TDateTime;
begin
  // 2020-07-27T10:03:33+0000
  // 123456789012345678901234
  jahr    := StrToInt(Copy(rfc,  1, 4));
  monat   := StrToInt(Copy(rfc,  6, 2));
  tag     := StrToInt(Copy(rfc,  9, 2));
  stunde  := StrToInt(Copy(rfc, 12, 2));
  minute  := StrToInt(Copy(rfc, 15, 2));
  sekunde := StrToInt(Copy(rfc, 18, 2));
  off_h   := StrToInt(Copy(rfc, 21, 2));
  off_m   := StrToInt(Copy(rfc, 23, 2));
  utc     := EncodeDateTime(jahr, monat, tag, stunde-off_h, minute-off_m, sekunde, 0);
  result  := UTCToLocalDateTime(utc);
end;
Daniel Marschall
ViaThinkSoft Co-Founder
Download description:

Contains:
- Recursive SFV+MD5 checker for Windows
- SFV+MD5 file editor for Windows
- Recursive SFV+MD5 checker in PHP (CLI/Linux)
- Recursive SFV+MD5 generator in PHP (CLI/Linux)
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

Filter Foundry is a compatible replacement for Adobe Filter Factory. For information about how to use the Filter Factory-compatible interface, see The Filter Factory Programming Guide. Several example effects come with Filter Factory.

Initially written by Toby Thain in 2003 - 2009, the development has been continued by Daniel Marschall / ViaThinkSoft since 2018. Several advancements and improvements have been made, and a 64-bit Windows version was created. The Macintosh version could not be taken over because Apple removed the "Carbon" API.

Filter Foundry full documentation

Here you can find a few filters by ViaThinkSoft which were created using Filter Foundry.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

Filter Foundry is a compatible replacement for Adobe Filter Factory. For information about how to use the Filter Factory-compatible interface, see The Filter Factory Programming Guide. Several example effects come with Filter Factory.

Initially written by Toby Thain in 2003 - 2009, the development has been continued by Daniel Marschall / ViaThinkSoft since 2018. Several advancements and improvements have been made, and a 64-bit Windows version was created. The Macintosh version could not be taken over because Apple removed the "Carbon" API.

Filter Foundry full documentation

Here you can find a few filters by ViaThinkSoft which were created using Filter Foundry.
Daniel Marschall
ViaThinkSoft Co-Founder
#include <iostream>

bool getIniValue(const char* fileContents, const char* section, const char* keyname, char* argOutput, size_t argMaxOutLength) {
        size_t iTmp;
        char *tmpFileContents, *tmpSection, *tmpStart, *tmpStart2, *tmpEnd, *tmpKeyname, *tmpStart3, *tmpStart4;

        // Prepare the input file contents to make it easier parse-able
        iTmp = strlen(fileContents) + strlen("\n\n[");
        tmpFileContents = (char*)malloc(iTmp + 1);
        if (tmpFileContents == NULL) return false;
        sprintf(tmpFileContents, "\n%s\n[", fileContents);
        for (iTmp = 0; iTmp < strlen(tmpFileContents); iTmp++) {
                if (tmpFileContents[iTmp] == '\r') tmpFileContents[iTmp] = '\n';
        }

        // Find the section begin
        iTmp = strlen(section) + strlen("\n[]\n");
        tmpSection = (char*)malloc(iTmp + 1);
        if (tmpSection == NULL) return false;
        sprintf(tmpSection, "\n[%s]\n", section);
        tmpStart = strstr(tmpFileContents, tmpSection);
        if (tmpStart == NULL) return false;
        tmpStart += iTmp;

        // Find the end of the section and set a NULL terminator to it
        iTmp = strlen(tmpStart) + strlen("\n");
        tmpStart2 = (char*)malloc(iTmp + 1/*NUL byte*/);
        if (tmpStart2 == NULL) return false;
        sprintf(tmpStart2, "\n%s", tmpStart);
        tmpEnd = strstr(tmpStart2, "\n[");
        if (tmpEnd == NULL) return false;
        tmpEnd[0] = '\0';

        // Find the start of the value
        iTmp = strlen(keyname) + strlen("\n=");
        tmpKeyname = (char*)malloc(iTmp + 1/*NUL byte*/);
        if (tmpKeyname == NULL) return false;
        sprintf(tmpKeyname, "\n%s=", keyname);
        tmpStart3 = strstr(tmpStart2, tmpKeyname);
        if (tmpStart3 == NULL) return false;
        tmpStart3 += strlen("\n");
        tmpStart4 = strstr(tmpStart3, "=");
        if (tmpStart4 == NULL) return false;
        tmpStart4 += strlen("=");

        // Find the end of the value
        tmpEnd = strstr(tmpStart4, "\n");
        if (tmpEnd == NULL) return false;
        tmpEnd[0] = '\0';

        // Copy to output
        if (strlen(tmpStart4) < argMaxOutLength + 1) argMaxOutLength = strlen(tmpStart4) + 1;
        memcpy(argOutput, tmpStart4, argMaxOutLength);
        argOutput[argMaxOutLength - 1] = '\0';

        // Free all temporary stuff
        //for (iTmp = 0; iTmp < strlen(tmpFileContents); iTmp++) tmpFileContents[iTmp] = '\0';
        free(tmpFileContents);
        //for (iTmp = 0; iTmp < strlen(tmpSection); iTmp++) tmpSection[iTmp] = '\0';
        free(tmpSection);
        //for (iTmp = 0; iTmp < strlen(tmpKeyname); iTmp++) tmpKeyname[iTmp] = '\0';
        free(tmpKeyname);
        //for (iTmp = 0; iTmp < strlen(tmpStart2); iTmp++) tmpStart2[iTmp] = '\0';
        free(tmpStart2);

        // Return success
        return true;
}

int main()
{
        const char* fileContents = "[xxx]\nA=aaa\nB=bbb\nC=ccc\n\r\n[yyy]\r\nD=ddd\nE=eee\nF=fff\n[zzz]\nG=ggg\n";
        const char* section = "yyy";
        const char* keyname = "E";
        size_t argMaxOutLength = 100;
        char* argOutput = (char*)malloc(argMaxOutLength);

        if (argOutput && getIniValue(fileContents, section, keyname, argOutput, argMaxOutLength)) {
                printf(argOutput);
                return 0;
        }
        else {
                printf("ERROR\n");
                return 1;
        }
}
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

- Generate an UUID (according to RFC 4122):
- ... Time based (version 1) UUID
- ... DCE Security (version 2) UUID
- ... Name-based (version 3/5) UUID
- ... Random (version 4) UUID
- Interprete ("decode") an UUID
- Interprete a MAC address
Daniel Marschall
ViaThinkSoft Co-Founder