-
Notifications
You must be signed in to change notification settings - Fork 1
Variables y perfiles
Un proyecto es un espacio de trabajo persistente en ~/.local/share/emvy/projects/<nombre>/
(respeta XDG_*):
-
project.json— manifest (nombre, descripción, creado, lector preferido). -
variables.json— lista de variables de entorno. -
captures/*.json— volcados de tarjeta.
El proyecto activo se guarda en ~/.config/emvy/state.json.
emvy project new lab --desc "pentest lab"
emvy project list | use <n> | rm <n> | show
emvy project export lab -o ./backups # empaqueta a .zip
emvy project import lab.zip --name lab2 --useUna variable (project.model.Variable) es de dos clases:
-
terminal— parámetro del perfil de terminal EMV, mapeado a un tag. El conjunto de variables terminal se convierte en unTerminalProfile(dict[tag_hex, bytes]) que alimenta la construcción de DOL (PDOL/CDOL/DDOL) en el GPO. -
user— par clave-valor libre (objetivos, notas, secretos, plantillas).
emvy var set amount 000000001500 # variable terminal (por alias)
emvy var set merchant_name "ACME" # tag de texto (an/ans)
emvy var set target "BancoX" --user # variable libre
emvy var list | get <n> | rm <n> # (alias del comando: `env`)Puedes usar el alias o el tag hex directamente:
| Alias | Tag | Alias | Tag |
|---|---|---|---|
amount |
9F02 | ttq |
9F66 |
country |
9F1A | merchant_name |
9F4E |
currency |
5F2A | terminal_caps |
9F33 |
tvr |
95 |
unpredictable_number / un
|
9F37 |
txn_date |
9A | txn_type |
9C |
env.encode_value decide según el tipo del tag:
- Tags de texto (
an/ans, p.ej.merchant_name): el valor es texto ASCII ("ACME"). - El resto (
n/b/cn, p.ej.amount): el valor es hex (000000001500).
env.default_variables() siembra el perfil por defecto desde core.emv.default_terminal_profile().
Perfiles de terminal aplicables en un paso (emvy var apply <perfil>), que fijan
terminal_type/ttq/txn_type y demás:
emvy var profiles # lista los perfiles
emvy var apply contactless-kiosk # kiosko sin CVMPerfiles típicos: kiosko sin CVM, POS atendido, contacto genérico, ATM. En la TUI/GUI (pestaña Variables) se aplican con un botón.
Además de los proyectos XDG, un proyecto puede vivir en cualquier carpeta con project.json
(útil para versionar engagements de cliente aparte de la herramienta):
emvy project use ./engagements/<cliente> # o: export EMVY_PROJECT=/rutaPrioridad del proyecto activo: EMVY_PROJECT > active_path > nombre XDG. Nunca subas datos de
cliente al repo de la herramienta.