Détection des commandes (d'après motscles.yaml) pour mise en forme en texttt
This commit is contained in:
parent
d529a09bd1
commit
d975db9e40
@ -74,7 +74,7 @@ précédemment.\\[3pt]}
|
||||
\item
|
||||
Consulter et modifier les variables d'environnement
|
||||
\item
|
||||
Commandes réseau (wget, curl, ping, traceroute, netstat, nmap)
|
||||
Commandes réseau (wget, curl, \texttt{ping}, \texttt{traceroute}, netstat, \texttt{nmap})
|
||||
\item
|
||||
Initiation aux scripts pour l'automatisation de séquences de
|
||||
commandes, aux structures de contrôle
|
||||
|
@ -23,8 +23,8 @@ de sortie accédant à Internet via les ressources informatiques du
|
||||
département.On peut caractériser simplement l'adressage \textabbrv{IP}v4 dynamique,
|
||||
le masque de sous-réseaux, la passerelle par défaut, les serveurs \textabbrv{DNS}.
|
||||
On peut également faire paramétrer un adressage \textabbrv{IP}v4 statique sur un
|
||||
poste client.On peut s'appuyer sur les commandes de base~: ipconfig,
|
||||
ifconfig, ip, ping, arp, traceroute, arp-scan (ArpCacheWatch sous
|
||||
poste client.On peut s'appuyer sur les commandes de base~: \texttt{ipconfig},
|
||||
\texttt{ifconfig}, \texttt{ip}, \texttt{ping}, \texttt{arp}, \texttt{traceroute}, arp-scan (ArpCacheWatch sous
|
||||
Windows) pour lister les adresses \textabbrv{MAC} présentes dans le réseau local.\\
|
||||
On peut faire découvrir les outils pour connaître son adresse \textabbrv{IP}
|
||||
Publique par ex: \url{http://www.monip.org/} ,
|
||||
@ -35,7 +35,7 @@ On peut faire découvrir l'application Android WiFi Analyser pour lister
|
||||
les points d'accès à proximité ou les fréquences utilisées~:
|
||||
\url{https://github.com/VREMSoftwareDevelopment/WiFiAnalyzer}.\\
|
||||
Enfin, on pourra initier les étudiants les plus avancés à l'usage de la
|
||||
distribution Linux Kali en \textabbrv{VM} avec l'outil nmap
|
||||
distribution Linux Kali en \textabbrv{VM} avec l'outil \texttt{nmap}
|
||||
(\url{https://nmap.org/}) pour découvrir (en interne) les ports ouverts
|
||||
sur les équipements du réseau local domestique. Bien expliquer que
|
||||
l'usage de cet outil de test de pénétration doit être réalisé en
|
||||
|
@ -20,7 +20,7 @@ réseau autonome réel ou simulé qui comportera quelques éléments actifs,
|
||||
serveurs et clients opérationnels.\\
|
||||
Cette étude permettra de se familiariser avec l'utilisation des
|
||||
principaux outils utilisés tout autant par les hackers que par les
|
||||
administrateurs des systèmes (nmap, john the ripper, burp suite, scapy,
|
||||
administrateurs des systèmes (\texttt{nmap}, john the ripper, burp suite, scapy,
|
||||
metasploit, \ldots) afin d'exploiter les vulnérabilités volontairement
|
||||
introduites dans la configuration.\\
|
||||
La maquette devra illustrer les techniques d'exploitations d'un nombre
|
||||
|
@ -134,7 +134,6 @@ else:
|
||||
# Export latex des sae
|
||||
for sem in saes:
|
||||
for s in saes[sem]:
|
||||
|
||||
fichierlatex = REPERTOIRE_LATEX_SAES + "/" + "{}.tex".format(s.sae["code"].replace("É", "E"))
|
||||
contenu = s.to_latex()
|
||||
with open(fichierlatex, "w", encoding="utf8") as fid:
|
||||
|
@ -17,9 +17,12 @@ with open(Config.ROOT+"/python/pn/saes.yml", 'r', encoding="utf8") as fid:
|
||||
## Les compétences
|
||||
with open(Config.ROOT+"/yaml/competences/RT123.yml", 'r', encoding="utf8") as fid:
|
||||
DATA_COMPETENCES = yaml.load(fid.read(), Loader=yaml.Loader)
|
||||
## Les abbréviations
|
||||
## Les abréviations
|
||||
with open(Config.ROOT+"/yaml/abbreviations.yml", "r", encoding="utf8") as fid:
|
||||
DATA_ABBREVIATIONS = yaml.load(fid.read(), Loader=yaml.Loader)
|
||||
## Les mostcles (commandes, logiciels, etc...)
|
||||
with open(Config.ROOT+"/yaml/motscles.yml", "r", encoding="utf8") as fid:
|
||||
DATA_MOTSCLES = yaml.load(fid.read(), Loader=yaml.Loader)
|
||||
|
||||
AUCUN_PREREQUIS = "Aucun"
|
||||
|
||||
|
@ -17,7 +17,7 @@ __LOGGER = logging.getLogger(__name__)
|
||||
def nettoie_latex(chaine):
|
||||
"""Purge certains éléments de la chaine latex générée par pypandoc"""
|
||||
chaine = chaine.replace("\\tightlist\n", "")
|
||||
chaine = ajoute_abbr_latex(chaine)
|
||||
chaine = ajoute_abbr_latex(chaine) # détecte les abréviations
|
||||
|
||||
# detecte les espaces insécables
|
||||
chaine = chaine.replace(" :", "~:")
|
||||
@ -171,6 +171,9 @@ class Ressource:
|
||||
|
||||
|
||||
def contient_abbr(chaine):
|
||||
"""Détecte les abréviations présentes dans la chaine
|
||||
(dont la liste est fournie par DATA_ABBREVIATIONS lues depuis le .yml) et
|
||||
les renvoie sous forme d'une liste par abréviations de nombre de caractères décroissants"""
|
||||
mots = []
|
||||
for lettre in DATA_ABBREVIATIONS:
|
||||
for mot in DATA_ABBREVIATIONS[lettre]:
|
||||
@ -183,7 +186,10 @@ def contient_abbr(chaine):
|
||||
|
||||
|
||||
def ajoute_abbr_latex(chaine):
|
||||
"""Parse la chaine latex pour ajouter les abbréviations"""
|
||||
"""
|
||||
Parse la chaine latex pour ajouter les abbréviations et les remplacer par
|
||||
\\textabbrv{abreviation}
|
||||
"""
|
||||
mots = chaine.split(" ")
|
||||
for (i, mot) in enumerate(mots):
|
||||
abbrs = contient_abbr(mot)
|
||||
@ -194,6 +200,34 @@ def ajoute_abbr_latex(chaine):
|
||||
chaine = chaine.replace("/IP", "/\\textabbrv{IP}")
|
||||
return chaine
|
||||
|
||||
def contient_commandes(chaine):
|
||||
"""Détecte si la chaine est une commande (éventuellement avec un caractère
|
||||
de ponctuation final)"""
|
||||
chaine_texte = ""
|
||||
for car in chaine:
|
||||
if car in string.ascii_lowercase:
|
||||
chaine_texte += car
|
||||
if "ipc" in chaine:
|
||||
print("ici")
|
||||
if chaine_texte in DATA_MOTSCLES["commandes"]:
|
||||
return chaine_texte
|
||||
return None
|
||||
|
||||
def ajoute_cmd_latex(chaine):
|
||||
"""
|
||||
Parse la chaine latex pour ajouter les abbréviations et les remplacer par
|
||||
\\textabbrv{abreviation}
|
||||
"""
|
||||
mots = chaine.split(" ")
|
||||
for (i, mot) in enumerate(mots):
|
||||
champs = mot.split("\n")
|
||||
for (j, champ) in enumerate(champs):
|
||||
cmd = contient_commandes(champ)
|
||||
if cmd:
|
||||
champs[j] = champs[j].replace(cmd, "\\texttt{" + cmd + "}")
|
||||
mots[i] = "\n".join(champs)
|
||||
chaine = " ".join(mots)
|
||||
return chaine
|
||||
|
||||
class SAE:
|
||||
"""Modélise une saé (chapeau) lorsqu'elle est extraite d'un yaml"""
|
||||
@ -385,6 +419,9 @@ def md_to_latex(contenu):
|
||||
contenu = contenu.replace("\\\\" * 2, "\\\\[25pt]")
|
||||
if not contenu.endswith("\\end{itemize}"):
|
||||
contenu += "\\\\[3pt]"
|
||||
|
||||
contenu = ajoute_cmd_latex(contenu) # détecte les commandes
|
||||
|
||||
return contenu
|
||||
|
||||
|
||||
@ -759,7 +796,10 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
|
||||
for (i, r) in enumerate(ressem): # pour chaque SAE
|
||||
chaine += "\\textcolor{ressourceC}{" + r.ressource["code"] + "} & " + "\n"
|
||||
chaine += "\\begin{tabular}{p{5.7cm}}"
|
||||
chaine += "\\tiny{" + r.ressource["nom"] + "} \\end{tabular} & \n"
|
||||
# chaine += "\hyperlink{res:" + r.ressource["code"] + "}{"
|
||||
chaine += "\\tiny{" + r.ressource["nom"] + "}"
|
||||
# chaine += "}"
|
||||
chaine += " \\end{tabular} & \n"
|
||||
chaine += str_volume(matrice_vols[i + nbre_saes][0]) + " & "
|
||||
chaine += str_volume(matrice_vols[i + nbre_saes][1]) + " & "
|
||||
chaine += " & "
|
||||
|
Loading…
Reference in New Issue
Block a user