Gehe zu deutscher Webseite

News

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.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

OIDplus is an OpenSource database solution to manage Objekt Identifiers ("OIDs") and many other object types (e.g. COM GUIDs). With OIDplus, you can operate your own "Registration Authority" and either present your objects to the public, or manage them internally (hidden from the public). You can delegate permissions to subordinate objects to other users (RAs) in the system, so that they can work independently.

The ViaThinkSoft Registration Authority already uses OIDplus 2.0 and even gives users the possibility to gain a free OID.

We are grateful for every person that wants to install OIDplus on their systems, as we love to see our product spreading and receive feedback about the user-experience. Therefore, if we can help you with installing OIDplus and migrating your data into OIDplus, please let us know. We will support you with this, free of charge!

You can find more information at www.oidplus.com
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:

In this project, you will find various downloads about the PC version of the ancient game "Plumbers Don't Wear Ties".
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.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:

UserDetect2 is a program that allows the user to execute different programs depending on their current environment (e.g. MAC addresses, user name or computer name), so that a single executable file, e.g. shared over a network drive, a flash drive or external hard disk, can perform tasks for different work stations. The environment identifications can be extended by plugins.
Daniel Marschall
ViaThinkSoft Co-Founder
Download description:

YouTube Downloader is a tool for Linux. It is a wrapper for youtube-dl and offers several additional functionalities like the downloading and searching inside channels, or downloading of playlists. You can either download videos or audio files. YouTube-IDs can be automatically written in the ID tag of downloaded mp3 files. An automatic managed list of already downloaded videos allows you to move away the downloaded files without the risk of downloading the already downloaded files again. 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
Download description:

Beta release of ViaThinkSoft crypto chat.
Daniel Marschall
ViaThinkSoft Co-Founder
Project description:



Abstract

ViaThinkSoft Currency Converter is a library developed by Daniel Marschall which converts currencies. The latest exchange data is automatically downloaded and cached.

To use ViaThinkSoft Currency Converter, you need an API key from CurrencyLayer.com. Keys with limited access are available for free, and there are paid subscriptions available, too.

Usage for online applications, with PHP

Download framework and example script from the SVN

Try it now! Use the online tool

For Windows users

If you are not a developer, you can download the ready-to-use demo EXE file.

Download Windows demo application, written in Delphi



For Windows developers

The Currency Converter is implemented as a Windows DLL (Source code for Delphi), which can be used by most other programming languages as well as VBA (Visual Basic for Applications). Therefore, you can use Currency Calculator in Microsoft Office products.

Download compiled DLL for Win32 and Win64

Download source code for usage in ...

Before using the DLL, please place the API key in your registry:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ViaThinkSoft\CurrencyConverter]
"APIKey"="....."

Specification of the exported DLL methods
Daniel Marschall
ViaThinkSoft Co-Founder
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:

Included in this download:
- Linux binary files
- 32-Bit Windows binary files
- C source code
Daniel Marschall
ViaThinkSoft Co-Founder

Sub test()
    Dim RespArray() As String
    Dim i As Long

    Set hReq = CreateObject("MSXML2.XMLHTTP")
    With hReq
        .Open "GET", "https://www.viathinksoft.com/", False
        .send
    End With
    
    If hReq.status <> 200 Then
        MsgBox ("HTTP Request failed")
        Exit Sub
    End If

    ' split the data into larger pieces
    RespArray() = Split(hReq.responseText, Chr(10))
    x = Replace(x, Chr(13), "")

    ' loop through first array to break it down line by line
    For i = LBound(RespArray) To UBound(RespArray)
        MsgBox (RespArray(i))
    Next i
End Sub
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
//DOS .EXE header
struct image_dos_header
{
        uint16_t e_magic;                     // Magic number
        uint16_t e_cblp;                      // Bytes on last page of file
        uint16_t e_cp;                        // Pages in file
        uint16_t e_crlc;                      // Relocations
        uint16_t e_cparhdr;                   // Size of header in paragraphs
        uint16_t e_minalloc;                  // Minimum extra paragraphs needed
        uint16_t e_maxalloc;                  // Maximum extra paragraphs needed
        uint16_t e_ss;                        // Initial (relative) SS value
        uint16_t e_sp;                        // Initial SP value
        uint16_t e_csum;                      // Checksum
        uint16_t e_ip;                        // Initial IP value
        uint16_t e_cs;                        // Initial (relative) CS value
        uint16_t e_lfarlc;                    // File address of relocation table
        uint16_t e_ovno;                      // Overlay number
        uint16_t e_res[4];                    // Reserved words
        uint16_t e_oemid;                     // OEM identifier (for e_oeminfo)
        uint16_t e_oeminfo;                   // OEM information; e_oemid specific
        uint16_t e_res2[10];                  // Reserved words
        int32_t  e_lfanew;                    // File address of new exe header
};

struct image_file_header
{
        uint16_t Machine;
        uint16_t NumberOfSections;
        uint32_t TimeDateStamp;
        uint32_t PointerToSymbolTable;
        uint32_t NumberOfSymbols;
        uint16_t SizeOfOptionalHeader;
        uint16_t Characteristics;
};

#define _CRT_SECURE_NO_WARNINGS

uint32_t calculate_checksum(const char* filename) {
        //Calculate checksum of image
        // Taken from "PE Bliss" Cross-Platform Portable Executable C++ Library
        // https://github.com/mrexodia/portable-executable-library/blob/master/pe_lib/pe_checksum.cpp
        // Converted from C++ to C by Daniel Marschall

        FILE* fptr = fopen(filename, "rb");
        if (fptr == NULL) return 0x00000000;

        //Checksum value
        unsigned long long checksum = 0;

        struct image_dos_header header;

        //Read DOS header
        fseek(fptr, 0, SEEK_SET);
        fread(&header, sizeof(struct image_dos_header), 1, fptr);

        //Calculate PE checksum
        fseek(fptr, 0, SEEK_SET);
        unsigned long long top = 0xFFFFFFFF;
        top++;

        //"CheckSum" field position in optional PE headers - it's always 64 for PE and PE+
        static const unsigned long checksum_pos_in_optional_headers = 64;
        //Calculate real PE headers "CheckSum" field position
        //Sum is safe here
        unsigned long pe_checksum_pos = header.e_lfanew + sizeof(struct image_file_header) + sizeof(uint32_t) + checksum_pos_in_optional_headers;

        //Calculate checksum for each byte of file
        fseek(fptr, 0L, SEEK_END);
        size_t filesize = ftell(fptr);
        fseek(fptr, 0L, SEEK_SET);
        for (size_t i = 0; i < filesize; i += 4)
        {
                unsigned long dw = 0;

                //Read DWORD from file
                fread(&dw, sizeof(dw), 1, fptr);
                //Skip "CheckSum" DWORD
                if (i == pe_checksum_pos)
                        continue;

                //Calculate checksum
                checksum = (checksum & 0xffffffff) + dw + (checksum >> 32);
                if (checksum > top)
                        checksum = (checksum & 0xffffffff) + (checksum >> 32);
        }

        //Finish checksum
        checksum = (checksum & 0xffff) + (checksum >> 16);
        checksum = (checksum)+(checksum >> 16);
        checksum = checksum & 0xffff;

        checksum += (unsigned long)(filesize);

        fclose(fptr);

        //Return checksum
        return (uint32_t)checksum;
}

bool repair_pe_checksum(const char* filename) {
        size_t peoffset;
        FILE* fptr;

        uint32_t checksum = calculate_checksum(filename);
        //if (checksum == 0x00000000) return false;

        fptr = fopen(filename, "rb+");
        if (fptr == NULL) return false;

        fseek(fptr, 0x3C, SEEK_SET);
        fread(&peoffset, sizeof(peoffset), 1, fptr);

        fseek(fptr, (long)peoffset + 88, SEEK_SET);
        fwrite(&checksum, sizeof(uint32_t), 1, fptr);

        fclose(fptr);

        return true;
}
Daniel Marschall
ViaThinkSoft Co-Founder

int binary_replace_file(const char* filename, unsigned int search, unsigned int replace) {
        unsigned int srecord = 0;
        int found = 0;

        FILE* fptr = fopen(filename, "rb+");
        if (fptr == NULL) return -1;

        while ((fread(&srecord, sizeof(srecord), 1, fptr) == 1))
        {
                if (srecord == search) {
                        srecord = replace;
                        fseek(fptr, -1*(long)sizeof(srecord), SEEK_CUR);
                        fwrite(&srecord, (int)sizeof(srecord), 1, fptr);
                        fseek(fptr, 0, SEEK_CUR); // important!
                        found++;
                }
                else {
                        fseek(fptr, -1*(long)(sizeof(srecord) - 1), SEEK_CUR);
                }
        }
        fclose(fptr);

        return found;
}
Daniel Marschall
ViaThinkSoft Co-Founder
bool update_pe_timestamp(const char* filename, time_t timestamp) {
        size_t peoffset;
        FILE* fptr;
        
        fptr = fopen(filename, "rb+");
        if (fptr == NULL) return false;

        fseek(fptr, 0x3C, SEEK_SET);
        fread(&peoffset, sizeof(peoffset), 1, fptr);

        fseek(fptr, (long)peoffset + 8, SEEK_SET);
        fwrite(&timestamp, sizeof(time_t), 1, fptr);

        fclose(fptr);

        return true;
}
Daniel Marschall
ViaThinkSoft Co-Founder
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.
  • 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.
  • 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.
  • 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.
  • virtual_mem: Checks the amount of virtual memory (physical memory + swap).
  • webreader: Reads the output of another VNag plugin transferred over HTTP.
  • 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
Project description:

This small class in PHP has following functionalities:

- Get MIME Type from a filename (useful if your system does not support mime_content_type)
- Get a name/description of a given file or filename

The project contains a small lookup-table for file type names in English.
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.
Daniel Marschall
ViaThinkSoft Co-Founder

Screenshots of the projekt

  Main window    Build dialog    Scripting support    Standalone filter