Go to English page

Neuigkeiten


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 Mitbegründer
Projektbeschreibung:

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 Mitbegründer
Projektbeschreibung:

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 Mitbegründer
Projektbeschreibung:

OIDplus ist eine OpenSource-Datenbanklösung zum Verwalten von Objekt-Bezeichnern ("OIDs") und vielen anderen Objekttypen (z.B. COM GUIDs). Mit OIDplus können Sie Ihre eigene "Registration Authority" betreiben, und ihre erzeugten Objekte entweder öffentlich zur Verfügung stellen, oder nur intern verwalten (versteckt für die Öffentlichkeit). Ihre Objekte und die Schreibrechte darauf können Sie an untergeordnete RAs, also andere Benutzer im System, vererben, sodass diese autonom arbeiten und ihre eigene RA betreiben können.

Die ViaThinkSoft Registration Authority setzt OIDplus 2.0 bereits produktiv ein und bietet Anwendern sogar die Möglichkeit, kostenlose OIDs zu erzeugen.

Wir sind dankbar für jede Person, die OIDplus auf ihrem System installieren möchte, da wir es lieben, wenn sich unser Produkt verbreitet und wir Feedback zur Benutzererfahrung erhalten. Wenn wir Ihnen bei der Installation von OIDplus und der Migration Ihrer Daten nach OIDplus helfen können, teilen Sie uns dies bitte mit. Wir unterstützen Sie dabei kostenlos!

Weitere Informationen finden Sie auf www.oidplus.com
Daniel Marschall
ViaThinkSoft Mitbegründer
Projektbeschreibung:

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 Mitbegründer
Downloadbeschreibung:

Enthält:
- Rekursiver SFV+MD5 Prüfer für Windows
- SFV+MD5 Datei-Editor für Windows
- Rekursiver SFV+MD5 Prüfer in PHP (CLI/Linux)
- Rekursiver SFV+MD5 Generator in PHP (CLI/Linux)
Daniel Marschall
ViaThinkSoft Mitbegründer
//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 Mitbegründer

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 Mitbegründer
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 Mitbegründer
Projektbeschreibung:



VNag (ViaThinkSoft Nagios) ist ein Framework für PHP, das es erlaubt, Plugins für Nagios-kompatible Systeme (z.B. auch Icinga2) gemäß den Richtlinien zu erstellen.

Das Download-Paket enthält Dokumentation und Beispiele und eine Vielzahl an neuen Plugins, z.B. um eine WordPress-Installation auf Updates zu überprüfen.

VNag ermöglicht es nicht nur, normale Nagios/Icinga-Plugins zu entwickeln (PHP wird über CLI aufgerufen), sondern erlaubt auch, ein Plugin über das Web zur Verfügung zu stellen:

  • Das ist PHP geschriebene Plugin kann über einen HTTP-Daemon (z.B. Apache) im Browser angezeigt werden. Neben der Anzeige der Nagios-Ausgabe (Summary, Verbose information, Performance data) können beliebige HTML-Ausgaben hinzugefügt werden, um z.B. noch Diagramme zu präsentieren. Es ist nur eine Codebasis erforderlich!

  • Die Web-Ausgabe enthält einen maschinenlesbaren (unsichtbaren) Teil, der mit Hilfe des "web reader"-Plugins von VNag ausgelesen und in das Standardformat für die Überwachung mit einer lokalen Nagios Instanz umgewandelt werden kann. Somit ist es z.B. möglich, mittels Nagios bestimmte Dinge (z.B. eine WordPress-Version) auf einem entfernten System, bei dem kein Shell-Zugriff möglich oder kein Nagios installiert ist, zu überwachen.

  • Es ist auch möglich, Webseiten zu erzeugen, die nur einen unsichtbaren maschinenlesbaren Teil besitzen (bzw. Sie können eine VNag Ausgabe in Ihre bestehende Webseite einbinden), jedoch ohne visuellen Teil. Dieser maschinenlesbare Teil kann optional signiert und/oder verschlüsselt werden.

Im Download-Paket von VNag sind folgende Plugins enthalten:

  • 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 Mitbegründer
Projektbeschreibung:

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 Mitbegründer
Projektbeschreibung:

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 Mitbegründer
Downloadbeschreibung:

Der YouTube Downloader ist ein Tool für Linux. Es basiert auf dem Tool youtube-dl und bietet einige Zusatzfunktionen wie z.B. das Herunterladen und Suchen in Kanälen oder das Herunterladen von Playlists. Es können sowohl Videos als auch Audio-Dateien heruntergeladen werden. Youtube-IDs können in die ID-Tags von heruntergeladenen MP3-Dateien eingebunden werden. Eine automatisch verwaltete Liste mit bereits heruntergeladenen Videos erlaubt es, die heruntergeladenen Dateien zu verschieben, ohne dass die Videos neu heruntergeladen werden. YouTube Downloader ist vollständig kommandozeilenbasiert und für Cronjobs optimiert.

Anforderungen:
- PHP CLI
- Paket "youtube-dl"
- Falls MP3-Dateien extrahiert werden sollen: "avconv" oder "ffmpeg", sowie optional "id3v2"
- Ein Youtube API-Key (hier kostenlos beantragen)
Daniel Marschall
ViaThinkSoft Mitbegründer
Projektbeschreibung:

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 Mitbegründer

Screenshots zu diesem Projekt

  Hauptfenster    Filter erzeugen    Scripting-Unterstützung    Standalone-Filter  
Downloadbeschreibung:

Dieses Installationspaket enthält:
1. SFV/MD5 Rekursiver Verzeichnisprüfer
2. SFV/MD5 Datei-Editor
Daniel Marschall
ViaThinkSoft Mitbegründer
Projektbeschreibung:

Ein Gästebuch für PHP und MySQL von ViaThinkSoft.

Unterstützt werden unter Anderem:
- Freischaltung via e-Mail
- Absicherung mittels ReCaptcha
- Smileys

Beispiel 1 / Beispiel 2
Daniel Marschall
ViaThinkSoft Mitbegründer
Projektbeschreibung:

Die 64-Bit-Treiber der Kartendrucker Evolis Pebble 4, Evolis Dualys 3 und Evolis Tattoo 2 funktionieren mit Windows 7, aber bei Windows 10 kommt es zum Absturz wenn man ein einfarbiges Farbband auswählen möchte. Dieser inoffizielle Patch behebt das Problem.
Daniel Marschall
ViaThinkSoft Mitbegründer
Projektbeschreibung:

Die 64-Bit-Treiber der Kartendrucker Evolis Pebble 4, Evolis Dualys 3 und Evolis Tattoo 2 funktionieren mit Windows 7, aber bei Windows 10 kommt es zum Absturz wenn man ein einfarbiges Farbband auswählen möchte. Dieser inoffizielle Patch behebt das Problem.
Daniel Marschall
ViaThinkSoft Mitbegründer

Screenshots zu diesem Projekt

  Farbband-Auswahldialog (korrigiert)  
Projektbeschreibung:

Die ViaThinkSoft Indexer Suite ist ein Programm, das es ermöglicht, ein Dateisystem zu indizieren und in einer SQL-Datenbank abzubilden. Im Nachfolgenden können diverse Auswertungen stattfinden, z.B. das Suchen von Duplikaten, das Verifizieren der Integrität der Daten bei einem weiteren Durchlauf, das Bestimmen von redundanten Verzeichnissen, oder ein Offline-Browsen durch den Dateisystem-Stamm, während der Original-Medium offline ist.
Daniel Marschall
ViaThinkSoft Mitbegründer
Projektbeschreibung:

FastPHP ist ein einfacher und dennoch komfortabler Editor/IDE für PHP.

Besondere Funktionen:
  • Sehr schnelle Ladezeit, ähnlich Notepad
  • Syntax-Highlighting
  • Code-Explorer
  • Ausführen von PHP-Dateien in der IDE ohne Browser
  • PHP Lint
  • Automatisches Umwandeln von Leerzeichen in Tabs
  • Integrierte PHP-Hilfe zu jeder Funktion per F1-Tastendruck
  • Möglichkeiten, PHP-Dateien ähnlich wie HTA-Dateien per Doppelklick auszuführen.
  • Dunkles und Helles Design
  • Formatierungszeichen anzeigen
Daniel Marschall
ViaThinkSoft Mitbegründer