Passez-vous vos journées à travailler à domicile? La semaine dernière, j'ai été précipité sur les lieux pour la première fois depuis longtemps A l'intérieur du train, Corona était comme un mensonge
Qu'est-ce que Corona ...: penser:
En dehors de cela, de nos jours, lorsque le nombre de personnes restant à la maison a augmenté, à propos de la sécurité des terminaux Je pense que j'ai plus de pensées.
Récemment, j'ai entendu et entendu des nouvelles telles que des logiciels malveillants tels que EMOTET Je pense que si vous avez peur, votre vigilance peut augmenter temporairement.
Mais quand la date et l'heure viennent, une telle vigilance diminue, et j'accède à des sites étranges, Il y a aussi la possibilité d'intégrer des choses étranges dans votre site préféré Ce n'est pas sans ça.
Comment de tels logiciels malveillants peuvent faire de mauvaises choses sur nos appareils Vous devez vous inscrire au démarrage automatique. Ainsi, en vérifiant le programme qui démarre automatiquement chaque jour, Si cela devient une chance de remarquer une personne suspecte qui se faufile en nous ...!
Donc en utilisant un outil pratique appelé "autorunsc.exe" J'ai écrit un script qui collecte les journaux pour le programme de démarrage automatique.
import subprocess
import zipfile
import os
import sys
import urllib.request as req
import pandas as pd
from glob import glob
from plyer import notification
from alittleuseful import loglotate
# pip install pandas
# pip install plyer
# pip install git+https://github.com/ardnico/main
bien que je publie personnellement sur github, Une bibliothèque pour écrire des journaux Nous avons publié d'autres fonctionnalités étranges, mais si vous le souhaitez, veuillez les utiliser. Je suis heureux. .. ..
csv_file = f'{os.getcwd()}\\out.csv'
rcsv_file = f'{os.getcwd()}\\out_old.csv'
enc = "utf-16"
URL = "https://download.sysinternals.com/files/Autoruns.zip"
zip_file = "A.zip"
path='.'
logger = loglotate(
logname = "StartUpSec",
outputdir = [os.getcwd()],
lsize = 100000,
num = 20,
timestanp = 1 # 1:on other:off
)
Nommage statique et partie appel de fonction
def download_tool(tf:bool):
# file download
if tf == False:
logger.write('[INFO]Because the tool has not existed, the one will download')
req.urlretrieve(URL,zip_file)
with zipfile.ZipFile(zip_file, 'r') as z_file:
try:
z_file.extractall(path=path)
logger.write("[SUCCESS]Tool download succeeded")
except Exception as e:
logger.write('[ERROR]Failed to download or unzip autorunsc.exe')
logger.write(f'[ERROR]{e}')
sys.exit(0)
Si "autorunsc.exe" n'existe pas, utilisez request Téléchargez l'outil. Le téléchargement se fera jusqu'à la décompression ZIP.
def get_log():
if os.path.exists(rcsv_file) == True:
try:
os.remove(rcsv_file)
except Exception as e:
logger.write('[ERROR]Failed to remove oldcsvfile')
logger.write(f'[ERROR]{e}')
sys.exit(0)
if os.path.exists(csv_file) == True:
try:
os.rename(csv_file,rcsv_file)
df_old = pd.read_csv(rcsv_file,encoding=enc)
except Exception as e:
logger.write('[ERROR]Failed to rename oldcsvfile')
logger.write(f'[ERROR]{e}')
sys.exit(0)
else:
df_old = ''
with open(csv_file, mode='w', encoding=enc) as fp:
cp = subprocess.run([f'{os.getcwd()}\\autorunsc.exe','-nobanner','-c','-a','*'], encoding=enc, stdout=fp)
try:
if df_old == '':
flag = 0
else:
flag = 2
except:
if len(df_old.index) <= 0:
flag = 0
else:
flag = 1
if flag==0 or flag==2:
logger.write("[INFO]StartUp Program's log has created")
else:
with open(csv_file,encoding=enc) as f:
data = f.read().split('\n')
with open(rcsv_file,encoding=enc) as f:
data2 = f.read().split('\n')
l_diff = list(set(data)^set(data2))
if len(l_diff) > 0:
logger.write("[DIFF INFO]The difference of the startup program has existed")
for i in l_diff:
logger.write(f"[DIFF]{i}")
notification.notify(
title='The difference of startup program has existed',
message=i,
app_name='Diff notify'
)
else:
logger.write("[INFO]The difference did not exsist")
C'est devenu un peu long à cause du traitement des fichiers CSV, Le mouvement est le suivant.
if __name__ == "__main__":
os.chdir(r"C:\python\notebooks\StartUpProgramSec")
tooltf = os.path.exists(f"{os.getcwd()}\\autorunsc.exe")
download_tool(tooltf)
get_log()
logger.write("[INFO]The process completed")
c'est tout.
Rendez votre travail à la maison plus sûr, même un peu J'espère qu'il se répandra ...
Recommended Posts