script
February 6
Отчищаем PDF файлы от вредоносного/шпионского кода
По причине широкого использования формата PDF, он зачастую используется всякими чудаками на букву М для распространения зловредного или шпионского ПО.
Скачивая PDFку, например книжку с сайта или ТГ-канала, легко намотать на процессор своего ПеКа какую-нибудь заразу в виде бэкдора, майнера или кейлоггера от ЦРУ/АНБ/ФСБ/СБУ
Для профилактики всякого нехорошего, рекомендуется проверять загруженные файлы антивирусом или на сайте "вирустотал".
Также можно почистить файл с помощью простого питонического скрипта.
После запуска скрипта, открывается окно выбора папки, в которой содержатся подозрительные PDF файлы, происходит их отчистка и сохранение под новыми именами с префиксом clean_
import os
from tkinter.filedialog import askdirectory
from PyPDF2 import PdfReader, PdfWriter
def pdf_cleaner(input_pdf_directory):
for filename in os.listdir(input_pdf_directory):
if filename.endswith('.pdf'):
pdf_path = os.path.join(input_pdf_directory, filename)
pdf_reader = PdfReader(pdf_path)
pdf_writer = PdfWriter()
# Remove Annotations
for page in pdf_reader.pages:
pdf_writer.add_page(page)
if page.annotations:
page.annotations.clear()
# Add fake Metadata (optional)
pdf_writer.add_metadata(
{
"/Author": "Comrade Major",
"/Producer": "KGB",
}
)
# Save clean file
new_pdf_path = os.path.join(input_pdf_directory, f'clean_{filename}')
with open(new_pdf_path, 'wb') as new_pdf:
pdf_writer.write(new_pdf)
print(f'{filename} was cleaned!')
def main():
# Ask the directory containing your PDFs
pdf_directory = askdirectory()
pdf_cleaner(pdf_directory)
if __name__ == '__main__':
main()