- Author – Just a field to specify who created the custom app. Most default apps you will see are created by “FoolishTech”.
- Last Edit (UTC) – Last time the custom app was saved. This field is populated automatically.
- File Name (Required) – The name of the custom app will also be it’s filename.
- Path Name (Required) – The name of the path the custom app will be stored in. This could be the same as the File Name, or it could be the app’s company name when there are multiple apps by the same company you may want to group together.
- App Website – Exactly what it says, this option becomes available when right-clicking the custom app in the main d7x user interface.
- Download Page – The Download Page URL will open automatically if there is a problem downloading the file.
- Run on Windows platforms – A custom app by default is configured to run on all platforms. Expand this category to modify that behavior to restrict the app from running on certain platforms (e.g. an older version of Windows, a 32bit version, and/or a Server OS.)
Main Download Settings (Optional)
- Use FTP Server – True/False; when set to True, the “Download URL” field is expected to be populated with an FTP path, e.g. “/files/myapp.zip” (no quotes) and of course you must have an FTP server configured for app storage (in Config > Servers/Email > FTP Servers.)
- Non-Direct URL – True/False; leave False in almost all cases, if you are having trouble with a download link you can try setting it to True. What it does is if you have a download link that is downloading a webpage rather than the expected file, there is likely a redirected URL for the download embedded in the page somewhere, and when set to True d7x will open the download as if it were a text file/web page, and scan the page in an attempt to find the redirected URL pointing to the actual download. A few default custom apps use this functionality.
- Referring URL – This is the “referer” passed by the browser to the download page to show where the browser came from. Some websites will restrict a file download to having been initiated by a referring webpage, the “download page” of course, so that if you were to initiate the download from another website (or an app such as d7x) it would fail. The solution is to always place the final webpage URL before your download starts (if you were to download the file in a browser) in the Referring URL field, so that the website serving the download thinks you initiated it from the download page and not d7x.
- Download URL – Obviously this is the final download URL that served your downloaded file; pasting this same URL into a browser should initiate a file download.
- Alt Download URL – Some sites have alternate download locations incase the primary fails. You could even keep a backup of the file on your own website if you were so inclined.
- Save As Filename – (Required if using Download URL field) The filename of the downloaded file, this field is required because d7x isn’t web browser smart when it comes to file downloading, so you have to tell it what filename to save as.
- Extract Password – If the downloaded file is a zip, rar, or 7z, d7x will attempt to extract it automatically. An extract password is a good idea if you are self-hosting a file on your website/HTTP where the world can download it, well if that is software you paid for and it is licensed to you, then you probably want to protect it, so password protect it. d7x supports plain Zip password protection (hah) to 256 AES encrypted archives (preferred.)
Separate 64bit Download Settings (Optional)
- 64bit Download URL – Use this field when you have a single app that has different downloads for the 32bit and 64bit versions of the app. Obviously on a 64bit platform if this field is filled out then d7x will download this file instead of the one under the standard “Download URL” field above, which will default to 32bit only downloads when this 64bit field is filled out.
- Alt 64bit Download URL – Same concept as the “Alt Download URL” field above, just a backup download location.
- Save As Filename (64bit) – Same concept as “Save As Filename” above, this is required when you are using the “64bit Download URL” field.
Pre-Execution Behavior (Optional)
- Setup File – The filename of an executable that will be run before the main app’s filename configured below. Useful of course to run an installer before running the actual exe that it installs.
- Setup File (64bit) – Same as above, this field can be filled out to specify a different filename for a 64bit version to run on 64bit platforms only.
- Setup Arguments – Command line arguments you pass to the “Setup File” and “Setup File (64bit)” as configured above, to make the install automatic/silent.
- Import Configs – Imports config files prior to running the app’s main executable. Files should be in the app’s directory, separate multiple files in this field using a “;” semi-colon. Registry (.reg) files will be imported to the registry, whereas all other file types are copied to the app’s main executable’s directory, where any files that are batch/vbs will be executed prior to running the main executable. This is used in some custom apps for example to copy over an configuration .ini file with your customized preferences, import saved settings to the registry, or run a batch file to update the app before running it.
- Save Configs After… – Used as a way to perpetuate settings, this will copy any “Import Configs” files from the app directory back to your d7x configuration for future usage. This is useful for example in the CCleaner and PatchMyPC custom apps to run the app manually, modify settings in the app, close it to save the settings and then d7x will copy the app’s .INI file with saved preferences back to the d7x config, for the future usage of copying those same settings for use in future runs of those apps.
Main App Execution Behavior
- App Path/Filename (32/64bit) – Required; this is the actual filename to execute, optionally including a full or partial path. A path can use system environment variables, so “%windir%” and “%programfiles%” can be used for example. A partial path should begin at the app’s extract directory in 3rd Party Tools, so for example “CCleaner\CCleaner.exe” might reference a full path to d7x\3rd Party Tools\Piriform\CCleaner\CCleaner.exe”.
- Path/Filename (64bit Only) – ONLY configure IF there is a separate executable for a 64bit version of the app. Otherwise leave this field blank so that the main settings above will be used for both 32bit and 64bit platforms, the default of most apps today.
- Command Line Arguments – Command line arguments passed to the app’s main executable, used in order to assist in automation of the app.
- Wait for Termination – True/False, this will wait for the app’s main executable process to end prior to performing Post-Execution actions (below), as well as moving to the next app when in d7x Auto Mode.
- Wait on Processes – Wait for these additional processes to end prior to performing Post-Execution actions, as well as moving on to the next app when in d7x Auto Mode. Separate multiple filenames with a “;” semi-colon. This is useful when a custom app’s main EXE launches subsequent EXE files that it uses, then terminates the main EXE before the others are finished.
- Wait in Service Mode – This causes d7x to close itself and wait for the custom app to finish by installing itself as a Windows service and monitoring for the app’s finish. This is necessary with some custom apps that may want to terminate d7x (e.g. Combofix.) Once d7x detects the app has finished it performs any Post-Execution actions you have configured then restarts the PC, then d7x will automatically restart and pick up where it left off before the restart.
- Randomize Filename – Optionally rename the app’s main executable to something random before launching it, this was a thing back in the day when malware on the PC would prevent you from running certain anti-malware or system inspection tools.
- Run inside CMD.EXE – This runs the app inside a hidden CMD.EXE console window. Use only in the event that the app doesn’t run properly if launched normally for any reason, or if the custom app is a console based app that requires the next feature, Pipe Enter Keystroke.
- Pipe Enter Keystroke – When running the app inside CMD.EXE, this will send an ENTER keystroke to the app’s console Window. Use in the event that a console app requires you to press ENTER to continue after starting the app.
- Run as TrustedInstaller – Run the app under the System account with TrustedInstaller privileges, bypassing file system/registry permissions for most anything. Please be aware some apps may not function as expected when running under this account.
Exit Code Actions (Requires “Wait for Termination”)
Exit codes can be returned by applications to indicate success, failure, error conditions, or other circumstances encountered during operation, that a script (or d7x, rather) could act upon.
In a batch file, you would test for %errorlevel% to get a console app’s exit code, or at a command prompt just type “echo %errorlevel%” and press enter after running any console app. Windows Defender’s command line scanner for example returns exit code 0 when nothing was found, or something was found and removed, and exit code 2 when something could not be removed. (Exit code 0 typically means success with most any app, with other numbers reserved for failures and error conditions.)
You may define up to 2 unique exit codes (1st Exit Code and 2nd Exit Code), with an optional third action for everything else (All Other Exit Codes).
- Exit Code – The number you are testing for.
- Run Custom App – True/False
- Custom App Name – Put the exact name of the custom app in this field.
- Send Email – True/False
- Email Subject and Email Body – Self-explanatory.
- Attach reports/logs – This attaches any reports that d7x has collected so far.
- Show Message Box – True/False
- Message Caption and Message Text – Self-explanatory.
Post-Execution Behavior (Requires “Wait for Termination”)
- Pause/Prompt – True/False, displays a completion message box when the app has completed in Auto Mode. Can be used in testing if the Wait for Termination feature isn’t working as expected.
- Early Termination Seconds – Use to inform d7x to display the Pause/Prompt when the app has completed ONLY IF the app completes in less than the number of seconds specified here. Assume this indicates a failure in the app, that it terminated too quickly, and that would be the reason for the message box prompt.
- Export Registry Key – Used to export a registry key (ex. “HKLM\Software\SomeApp\Options”) to be saved after running the app. Under Pre-Execution behavior you must specify a .reg filename in the “Import Configs” field and you must check the “Save Configs After…” option as well.
- Log File Location – Specify the location (full path or filename only) of log file(s) that your app creates. These logs can then be aggregated into the d7x Info or Malware reports locations. If a filename only, d7x looks in the app’s main executable’s directory. Supports Windows environment variables e.g. “%appdata%”
- Malware Report Type – True/False, this determines where the report goes (Info or Malware reports directory).
- Move Logs – True/False, when set to True this will move instead of copy log files. Useful for clearing out old logs or troubleshooting logs you don’t want to leave around on the system.
- Delete Files/Dirs – Delete the additional files and/or directories specified here. Separate multiple items by a “;” semi-colon. Uses KillEmAll Rule Variables.
Persistent Settings (Optional)
- Short Description – Short description of the app to be displayed in the user interface.
- Work Report Text – Short description for the work report generated by d7x (this can be given to customers.)
- Redownload App – True/False, when True d7x attempts to download a fresh copy of the app after x days, where x = the “Redownload After x Days” field value below. To always attempt download every single time, set that value to 0. Note that an existing version will be used if a download attempt fails.
- Redownload After x Days – Redownload a fresh copy of the app after ‘x’ days from the last download, as specified here (must set “Redownload App” to True above.)
- Prior Audible Alert – True/False, set to sound an audible alert just before running this app when in Auto Mode.
- Prior Tech Email – Send the technician an email just before running this app when in Auto Mode.
- Chain App or Function – Chain a second app or d7x Internal Function to this one, so that the second app or function will always run after this one. For apps, specify the config’s filename for that app; for d7x Internal Functions this expects the function number.