Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xchwarze/universal-tool-updater
Universal Tool Updater script
https://github.com/xchwarze/universal-tool-updater
cracking infosec infosec-reference malware-analysis reverse-engineering tools windows
Last synced: 3 months ago
JSON representation
Universal Tool Updater script
- Host: GitHub
- URL: https://github.com/xchwarze/universal-tool-updater
- Owner: xchwarze
- License: other
- Created: 2021-07-01T13:33:26.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-07-13T05:38:32.000Z (6 months ago)
- Last Synced: 2024-07-14T03:28:18.232Z (6 months ago)
- Topics: cracking, infosec, infosec-reference, malware-analysis, reverse-engineering, tools, windows
- Language: Python
- Homepage:
- Size: 60.2 MB
- Stars: 16
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.ES.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Español | [English](README.md)
# Universal Tool Updater
Esta herramienta está pensada para remediar el tedioso proceso de mantener actualizadas las herramientas que usamos para trabajar a diario.
Es el complemento inevitable del [toolkit](https://github.com/indetectables-net/toolkit) del sitio.
![](assets/demo.gif)
## Instalación
Puede clonar el repo con [git](https://git-scm.com/download/win) o simplemente bajarlo desde descargar.
```bash
git clone https://github.com/xchwarze/universal-tool-updater
```## Configuración
Para agregar herramientas hay que editar el archivo `tools.ini`.
Por defecto el mismo viene configurado a modo de ejemplo para que el usuario entienda rápidamente como se usa la herramienta.
```ini
[DIE]
folder = Analysis\DIE
url = horsicq/DIE-engine
from = github
re_download = die_win64_portable_(?:\S+).zip[Portmon]
folder = Monitor\Portmon
url = https://docs.microsoft.com/en-us/sysinternals/downloads/portmon
update_url = https://download.sysinternals.com/files/PortMon.zip
re_version =]*>Portmon for Windows v(.*?)
```Los valores utilizados para la configuración son:
| Nombre | Obligatorio | Descripción |
|----------------------|-------------|--------------------------------------------------------------------------------------------------------|
| `folder` | `SI` | Carpeta donde se guardara la herramienta. Si no existe la misma se creara. |
| `url` | `SI` | Web que se usara para realizar los chequeos con las regex. |
| `from` | `NO` | Indica la estrategia usada para el update. Los valores admitidos por el momento son: `web`, `github` o `http`. |
| `local_version` | `NO` | Versión descargada actualmente. Este valor se actualizara con cada update. |
| `re_version` | `NO` | Regex usado para comprobar si hay nuevas versiones en la web de `url`. |
| `re_download` | `NO` | Regex usado para obtener el link de descarga en la web de `url`. |
| `update_url` | `NO` | URL de descarga del update. Ver estrategia usadas para la descarga. |
| `update_file_pass` | `NO` | Usar esta contraseña para descomprimir el update. |
| `merge` | `NO` | Fusionar versión nueva con la local. |
| `pre_update_script` | `NO` | El script ingresado se ejecutara antes del proceso de update. |
| `post_update_script` | `NO` | El script ingresado se ejecutara después del proceso de update. |
| `pre_update` | `NO` | El script ingresado se ejecutara antes del proceso de update. |
| `post_update` | `NO` | El script ingresado se ejecutara después del proceso de update. |
| `post_unpack` | `NO` | El script ingresado se ejecutara después del proceso de unpack. |## Estrategia usadas para la descarga
Combinando el uso de `update_url` y `re_download` se consiguen las siguientes estrategias de descarga:
1. Usando solo `update_url` se descarga directamente sin ningún procesamiento extra.
2. Usando solo `re_download` se obtiene el link de descarga en la web de `url`.
3. Cuando se usan ambos parámetros se concatena el resultado de `re_download` con `update_url`.
Esto es útil para arreglar los links de descarga de GitHub o Sourceforge.
4. También se dispone de un método de detección de nuevas versiones que en lugar de regex usa las cabeceras http con las que responde el servidor.## Ejemplos
La herramienta soporta varios comandos y combinaciones. Estos son los mas usados.
* Actualizar una herramienta en particular
```bash
updater.exe --update "Process Hacker 3"
```* Forzar Actualicion de una herramienta
```bash
updater.exe --force --update DIE
```* Actualizar sin comprimir ni limpiar la carpeta
```bash
updater.exe --disable-folder-clean --disable-repack
```## Use with GitHub Api
Las descargas de GitHub se realizan por defecto haciendo scrapeo de datos, pero para un funcionamiento mas robusto se aconseja hacerlo usando la api de GitHub.
Para ello hay que seguir los siguientes pasos:1. Generar nuestro token desde https://github.com/settings/tokens haciendo clic en Generate new token.
2. Ejecutar el updater con los siguientes comandos```bash
updater.exe --update-default-params --use-github-api your_github_token
```## Usar con tareas programadas
* Agregar la herramienta como tarea programada. Puede leer más aquí
"[Create scheduled tasks with CLI](https://www.windowscentral.com/how-create-task-using-task-scheduler-command-prompt)",
"[How to create an automated task](https://www.windowscentral.com/how-create-automated-task-using-task-scheduler-windows-10)" and
"[Prevent command window appearing](https://pureinfotech.com/prevent-command-window-appearing-scheduled-tasks-windows-10/)"```bash
# execute in elevated command prompt
SCHTASKS /CREATE /SC DAILY /TN "ToolkitUpdater" /TR "D:\code\toolkit\Updater\custom-task.bat" /ST 14:00
```* Eliminar tarea programada
```bash
# execute in elevated command prompt
SCHTASKS /DELETE /TN "ToolkitUpdater"
```## Compilar a exe
```bash
pip install pyinstaller
pyinstaller --onefile UpdateManager.py --icon=../assets/appicon.ico
```