در این مطلب، ویدئو اسکن اکتشافی ویروس پایتون قسمت 3 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:15:26
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,220
سلام این ویدیو ما قصد داریم
2
00:00:02,220 –> 00:00:05,160
برنامه اسکن ویروس دیگری را انجام دهیم،
3
00:00:05,160 –> 00:00:06,810
ویدیوی قبلی که میتوانستیم امضاهای ویروس را اسکن
4
00:00:06,810 –> 00:00:08,760
کنیم و بنابراین به این نتیجه رسیدیم که اگر
5
00:00:08,760 –> 00:00:11,160
بتوانیم این خط را در هر جایی از یک
6
00:00:11,160 –> 00:00:13,080
اسکریپت پیدا کنیم، فرض میکنیم که
7
00:00:13,080 –> 00:00:15,210
ویروس ما آلوده شده است.
8
00:00:15,210 –> 00:00:17,070
ویدیوهای قبلی را ندیدم این ویدیویی است که
9
00:00:17,070 –> 00:00:19,770
عفونت ویروسی را فقط با استفاده از
10
00:00:19,770 –> 00:00:22,080
اسکریپت های پایتون شبیه سازی می کند، بنابراین اگر
11
00:00:22,080 –> 00:00:24,420
نحوه عملکرد ویروس را ندیده اید، به عقب برگردید، بنابراین
12
00:00:24,420 –> 00:00:25,920
اولین بررسی که انجام دادیم برای
13
00:00:25,920 –> 00:00:28,109
امضای این ویدیو بود که می رویم. برای
14
00:00:28,109 –> 00:00:29,880
استفاده از چیزی که اسکن اکتشافی نامیده میشود
15
00:00:29,880 –> 00:00:31,830
که اندازه فایل
16
00:00:31,830 –> 00:00:33,719
را بررسی میکند، تاریخ را بررسی میکنم و میبینم
17
00:00:33,719 –> 00:00:35,550
آیا تغییراتی از زمان
18
00:00:35,550 –> 00:00:37,680
ایجاد فایل ایجاد شده است، بنابراین اجازه دهید با برنامه اسکن جدید خود شروع کنیم،
19
00:00:37,680 –> 00:00:40,140
بنابراین میخواهم
20
00:00:40,140 –> 00:00:42,329
کدی را در اینجا وارد کنم. پس از
21
00:00:42,329 –> 00:00:44,730
اولین تابع و ما در اینجا
22
00:00:44,730 –> 00:00:46,829
به نام یک تعریف جدید یا یک
23
00:00:46,829 –> 00:00:49,789
تابع جدید درج می کنیم، بنابراین نظرات برنامه من
24
00:00:49,789 –> 00:00:53,309
برای دریافت اندازه فایل اولیه
25
00:00:53,309 –> 00:00:56,730
و تاریخ برنامه است و سپس می
26
00:00:56,730 –> 00:00:58,890
خواهم همه آنها را در یک فایل متنی ذخیره کنم. برای
27
00:00:58,890 –> 00:01:01,920
استفاده در اسکن بعدی، بیایید جلو برویم
28
00:01:01,920 –> 00:01:04,890
و تمام فایلهای py را که
29
00:01:04,890 –> 00:01:06,390
در فهرست هستند جمعآوری کنیم و آنها را در
30
00:01:06,390 –> 00:01:08,850
لیستی به نام برنامهها ذخیره کنیم، سپس
31
00:01:08,850 –> 00:01:11,369
فهرستی از دادههای هر برنامه ایجاد
32
00:01:11,369 –> 00:01:13,290
میکنم تا برای نامیدن آن لیست برنامه، هر
33
00:01:13,290 –> 00:01:15,540
خط شامل سه آیتم است
34
00:01:15,540 –> 00:01:17,610
، نام فایل، اندازه فایل
35
00:01:17,610 –> 00:01:21,119
و تاریخ فایل تغییر مییابد، بنابراین ما همین
36
00:01:21,119 –> 00:01:23,400
الان آن مجموعهها را مرور کرده و میسازیم
37
00:01:23,400 –> 00:01:26,400
تا هر P در برنامهها برای ما باشد.
38
00:01:26,400 –> 00:01:29,640
حلقه بنابراین اولین چیزی که در حال حاضر داریم
39
00:01:29,640 –> 00:01:32,189
نام برنامه است که در متغیر P ذخیره می شود،
40
00:01:32,189 –> 00:01:35,220
با این حال می خواهیم
41
00:01:35,220 –> 00:01:38,400
اندازه برنامه را بگیریم و برنامه را تغییر دهیم
42
00:01:38,400 –> 00:01:40,890
و من کمی تحقیق کردم تا بفهمم
43
00:01:40,890 –> 00:01:42,479
چگونه پایتون با
44
00:01:42,479 –> 00:01:44,250
جستجوی گوگل این کار را انجام می دهد. برای اینکه بفهمیم
45
00:01:44,250 –> 00:01:48,420
کتابخانه ای به نام OS وجود دارد و شما
46
00:01:48,420 –> 00:01:53,189
به سادگی می توانید کلمه path dot get size
47
00:01:53,189 –> 00:01:55,590
و سپس نام فایل را انتخاب کنید تا بتوانید به
48
00:01:55,590 –> 00:01:58,049
درستی از سیستم عامل استفاده کنید، باید آن را وارد کنیم، پس
49
00:01:58,049 –> 00:02:00,030
بیایید دوباره به بالای واردات خود برویم
50
00:02:00,030 –> 00:02:03,840
و من سیستم عامل را به لیست واردات خود اضافه می کنم تا
51
00:02:03,840 –> 00:02:06,930
اکنون بتوانم از مسیر getsize سیستم عامل استفاده کنم و من می دانم
52
00:02:06,930 –> 00:02:10,830
که این اندازه فایل چند بایت است، بنابراین
53
00:02:10,830 –> 00:02:13,740
در کتابخانه سیستم عامل نیز روشی وجود دارد
54
00:02:13,740 –> 00:02:15,810
که می توانیم از آن استفاده کنیم که زمان اصلاح شده را دریافت می کند
55
00:02:15,810 –> 00:02:20,370
تا مسیر نقطه سیستم عامل را
56
00:02:20,370 –> 00:02:23,340
با متغیری به نام P در داخل زمان دریافت کنید تا اندازه
57
00:02:23,340 –> 00:02:25,110
یک مقدار باشد. من معتقدم که عدد صحیح به
58
00:02:25,110 –> 00:02:27,750
من می گوید که این فایل چند بایتی است که این فایل نیز
59
00:02:27,750 –> 00:02:30,300
اصلاح شده است،
60
00:02:30,300 –> 00:02:32,850
تعداد ثانیه هایی را که
61
00:02:32,850 –> 00:02:35,400
از آغاز دوره یونیکس سپری شده است، که
62
00:02:35,400 –> 00:02:38,190
فکر می کنم اول ژانویه 1970 بود، به من می دهد، بنابراین
63
00:02:38,190 –> 00:02:39,960
شما فقط می خواهید دریافت کنید. یک عدد صحیح بزرگ
64
00:02:39,960 –> 00:02:42,840
با میلیونها ثانیه از آن زمان، اما از آن
65
00:02:42,840 –> 00:02:44,700
زمان تاکنون هر ثانیه یک
66
00:02:44,700 –> 00:02:46,620
عدد منحصر به فرد است، بنابراین برای یک
67
00:02:46,620 –> 00:02:49,560
مهر زمانی کار میکند، بنابراین من میخواهم سه مورد
68
00:02:49,560 –> 00:02:52,080
را در لیستی ذخیره کنم که لیستی به نام دادههای برنامه است
69
00:02:52,080 –> 00:02:54,930
و بنابراین نام فایل
70
00:02:54,930 –> 00:02:57,630
اندازه فایل است. و تاریخ تغییر آن
71
00:02:57,630 –> 00:03:00,150
اکنون من در حال ساخت لیستی به نام
72
00:03:00,150 –> 00:03:02,520
لیست برنامه هستم و بنابراین میخواهم به سادگی
73
00:03:02,520 –> 00:03:06,000
این لیست از دادههای برنامه را اضافه کنم تا
74
00:03:06,000 –> 00:03:08,400
این لیستی از لیستها باشد حالا
75
00:03:08,400 –> 00:03:09,930
وقتی کارم تمام شد، تازه میخواهم برگردم.
76
00:03:09,930 –> 00:03:12,510
لیست برنامه بنابراین این یک تابع کمکی است
77
00:03:12,510 –> 00:03:13,980
n توسط توابع دیگر استفاده خواهد شد
78
00:03:13,980 –> 00:03:16,590
تا بتواند لیستی
79
00:03:16,590 –> 00:03:19,080
از داده ها را روی همه فایل ها جمع آوری کند، بنابراین اکنون
80
00:03:19,080 –> 00:03:20,670
می خواهم این تابع را
81
00:03:20,670 –> 00:03:23,220
برای استفاده قرار دهم و از آن به عنوان یک
82
00:03:23,220 –> 00:03:25,890
تابع کمکی برای یک تابع جدید استفاده کنم. تابع جدید
83
00:03:25,890 –> 00:03:27,480
قرار است Write
84
00:03:27,480 –> 00:03:29,880
File Data نامیده شود و هدف آن انجام یک
85
00:03:29,880 –> 00:03:31,920
اسکن اولیه و ذخیره نتایج در یک
86
00:03:31,920 –> 00:03:34,770
فایل txt است، بنابراین من می خواهم دریافت فایل را فراخوانی کنم
87
00:03:34,770 –> 00:03:36,600
و سپس آن را به عنوان پارامتر
88
00:03:36,600 –> 00:03:38,880
به یک تابع دیگر منتقل کنم. بیایید
89
00:03:38,880 –> 00:03:39,750
تابع دیگر را اکنون بسازیم،
90
00:03:39,750 –> 00:03:42,390
بنابراین تابع واضح است
91
00:03:42,390 –> 00:03:44,070
که باید نامگذاری شود این به نام داده های فایل نوشتن است
92
00:03:44,070 –> 00:03:47,190
و لیستی که انتظار
93
00:03:47,190 –> 00:03:49,710
دارد لیستی از برنامه ها است، بنابراین داده هایی که
94
00:03:49,710 –> 00:03:51,870
این تابع تولید می کند به آن منتقل می
95
00:03:51,870 –> 00:03:54,420
شود و سپس ما. آن را در یک فایل ذخیره می
96
00:03:54,420 –> 00:03:56,940
کنیم، بنابراین از عبارت with استفاده می کنیم، بنابراین با یا
97
00:03:56,940 –> 00:03:59,640
زمانی که فایل باز می
98
00:03:59,640 –> 00:04:01,830
شود، نام فایل را در اینجا مشخص می کنیم و سپس
99
00:04:01,830 –> 00:04:04,830
تگ W را ایجاد می کنیم که به این معنی است که
100
00:04:04,830 –> 00:04:08,460
با دسترسی نوشتن باز می شود، بنابراین من. من
101
00:04:08,460 –> 00:04:10,650
قصد معرفی یک کتابخانه دیگر را دارم، بنابراین
102
00:04:10,650 –> 00:04:12,810
تحقیقاتی انجام دادم و وجود دارد کتابخانه ای
103
00:04:12,810 –> 00:04:15,930
به نام CSV می تواند آن را به صورت آنلاین پیدا کند اگر
104
00:04:15,930 –> 00:04:18,238
آن را در گوگل جستجو کنید و نویسنده ای است
105
00:04:18,238 –> 00:04:22,410
که یک فایل متنی را می گیرد و آن را با استایل CSV چاپ می کند،
106
00:04:22,410 –> 00:04:25,110
بنابراین بیایید با CSV وارد اینجا کنیم
107
00:04:25,110 –> 00:04:27,270
108
00:04:27,270 –> 00:04:28,650
سپس من به شما نشان می دهم که چگونه کار می کند
109
00:04:28,650 –> 00:04:32,099
. یک شی جدید دارید و قرار است آن را
110
00:04:32,099 –> 00:04:34,710
برابر با چیزی تنظیم کنید که
111
00:04:34,710 –> 00:04:38,159
من WR را می نامم که نویسنده ok بود، بنابراین
112
00:04:38,159 –> 00:04:40,740
WR یک نویسنده جدید است و در حال نوشتن
113
00:04:40,740 –> 00:04:43,020
در این فایل خواهد بود اکنون انجام این کار به سادگی
114
00:04:43,020 –> 00:04:46,710
گفتن نقطه WR است. rose را بنویسید و
115
00:04:46,710 –> 00:04:48,659
سپس به آن میگوییم که از برنامههایی استفاده
116
00:04:48,659 –> 00:04:50,280
میکنند که از طریق
117
00:04:50,280 –> 00:04:52,800
پارامتر ارسال شده است، بنابراین ببینیم که آیا این
118
00:04:52,800 –> 00:04:55,500
مورد کار میکند، آن را ذخیره میکنم و
119
00:04:55,500 –> 00:04:59,340
اکنون برنامه را اجرا میکنم تا
120
00:04:59,340 –> 00:05:02,190
به ما خروجی بدهد. از بررسی امضای ویروس
121
00:05:02,190 –> 00:05:04,080
که این تابع بود
122
00:05:04,080 –> 00:05:06,599
در اینجا، این یکی در اینجا در واقع
123
00:05:06,599 –> 00:05:08,039
هیچ عبارت چاپی ندارد، بنابراین ما
124
00:05:08,039 –> 00:05:10,289
چیزی روی صفحه نمی بینیم که چه چیزی داریم،
125
00:05:10,289 –> 00:05:12,780
اگرچه یک فایل جدید به نام file
126
00:05:12,780 –> 00:05:15,360
data.txt داریم که همان فایل است. نامی را که
127
00:05:15,360 –> 00:05:17,719
اینجا انتخاب کردم و ببینیم چه نوشته است
128
00:05:17,719 –> 00:05:20,840
، ببینیم باید آن را مطرح کنیم اندازه
129
00:05:20,840 –> 00:05:23,400
بنابراین اکنون می توانید نتایج
130
00:05:23,400 –> 00:05:26,400
فایل ما را ببینید، ما چهار نام فایل مختلف
131
00:05:26,400 –> 00:05:28,770
داریم، ستون دوم که
132
00:05:28,770 –> 00:05:30,930
تعداد بایت ها است و سپس آخرین
133
00:05:30,930 –> 00:05:33,210
مورد تعداد ثانیه هایی است که به
134
00:05:33,210 –> 00:05:36,389
ما مهر زمانی این فایل را می دهد، بررسی کنیم
135
00:05:36,389 –> 00:05:37,919
تا ببینیم اگر این دقیق باشد،
136
00:05:37,919 –> 00:05:40,590
من برمی گردم و جزئیات برنامه خود را نگاه می
137
00:05:40,590 –> 00:05:43,139
کنم و بررسی می کنم تا ببینم
138
00:05:43,139 –> 00:05:47,569
روی موارد دیگر چه می گوید، بنابراین برای اندازه فایل
139
00:05:47,569 –> 00:05:51,300
hello dot py 21 بایت است و ما 21 بایت داریم که
140
00:05:51,300 –> 00:05:55,050
در اینجا سایر موارد ذکر شده است. به
141
00:05:55,050 –> 00:05:58,889
عنوان سلام مجدداً دو کیلوبایت است که
142
00:05:58,889 –> 00:06:03,539
گرد شده است، بدیهی است که این 1674 بایت است
143
00:06:03,539 –> 00:06:06,419
و سپس اسکن ویروس خود
144
00:06:06,419 –> 00:06:08,759
نیز لیست شده است، بنابراین ما خودمان یک
145
00:06:08,759 –> 00:06:11,580
اسکن اولیه برای فایل خود داریم، اکنون
146
00:06:11,580 –> 00:06:12,779
یک مشکل دیگر در اینجا وجود دارد که می خواهم آن را انجام دهم.
147
00:06:12,779 –> 00:06:15,449
درست این است که هر بار که ما
148
00:06:15,449 –> 00:06:18,930
اسکن ویروس خود را اجرا می کنیم، یک کپی جدید
149
00:06:18,930 –> 00:06:21,270
از فایل متنی ما ایجاد می شود، بنابراین این فایل رونویسی می شود،
150
00:06:21,270 –> 00:06:23,279
بنابراین می خواهم بررسی کنم که
151
00:06:23,279 –> 00:06:25,169
آیا این کار قبلا انجام شده است،
152
00:06:25,169 –> 00:06:26,849
اسکن اولیه فقط یک بار باید انجام شود.
153
00:06:26,849 –> 00:06:29,639
بیایید متن جدیدی را در اینجا در
154
00:06:29,639 –> 00:06:33,000
t قرار دهیم دستور او درست قبل از فایل باز
155
00:06:33,000 –> 00:06:35,789
برای نوشتن، بنابراین من رفتم تا بررسی کنم که آیا
156
00:06:35,789 –> 00:06:38,430
این مسیر وجود دارد، اگر این فایل وجود داشته
157
00:06:38,430 –> 00:06:40,930
باشد، اگر وجود داشته باشد، ما فقط یک دستور بازگشت را انجام می دهیم،
158
00:06:40,930 –> 00:06:43,270
بنابراین return
159
00:06:43,270 –> 00:06:44,949
تابع را می پذیرد و هر کار دیگری انجام می دهد.
160
00:06:44,949 –> 00:06:47,259
اکنون مانند یک
161
00:06:47,259 –> 00:06:49,660
عبارت else است، بنابراین اگر قسمت else
162
00:06:49,660 –> 00:06:52,389
آمد، به نوشتن ادامه میدهد، بنابراین بیایید
163
00:06:52,389 –> 00:06:56,350
بررسی کنیم که آیا این کار میکند در حال حاضر
164
00:06:56,350 –> 00:06:59,680
من دادههایی دارم که به من میگوید hello
165
00:06:59,680 –> 00:07:03,220
21 خط اول داده است، بنابراین میتوانید
166
00:07:03,220 –> 00:07:05,470
آن را ببینید. 21 بایت خوب بیایید وارد
167
00:07:05,470 –> 00:07:08,229
شویم و hello را اصلاح کنیم و چیزهای بیشتری قرار دهیم،
168
00:07:08,229 –> 00:07:09,699
بنابراین من چند بایت دیگر را در مرکز قرار می دهم
169
00:07:09,699 –> 00:07:13,060
و تغییرات را ذخیره می کنم، بنابراین
170
00:07:13,060 –> 00:07:15,789
اگر دوباره برنامه را اجرا کنیم، بایت هایی که می گوید 34 بایت هستند چیست
171
00:07:15,789 –> 00:07:20,380
و بررسی
172
00:07:20,380 –> 00:07:22,660
میکند که آیا همه چیز خوب است، حالا ببینیم
173
00:07:22,660 –> 00:07:25,360
چه اتفاقی میافتد، بنابراین اگر بگویم 34
174
00:07:25,360 –> 00:07:29,470
بایت داریم و در اصل 21 بایت هنوز
175
00:07:29,470 –> 00:07:31,810
چاپ شده است، بنابراین فایل متنی اصلی را رونویسی نکرده است،
176
00:07:31,810 –> 00:07:33,160
177
00:07:33,160 –> 00:07:35,710
بیایید فایل متنی را دور بریزیم و
178
00:07:35,710 –> 00:07:37,780
دوباره برنامه را اجرا کنیم تا ببینیم آیا
179
00:07:37,780 –> 00:07:41,110
آن را برای ما بازآفرینی می کند و فریاد می زند خوب
180
00:07:41,110 –> 00:07:44,259
اینجا را ببندید و فایل متنی اکنون می گوید
181
00:07:44,259 –> 00:07:47,320
که hello 34 بایت است،
182
00:07:47,320 –> 00:07:49,810
بنابراین به نظر می رسد که این
183
00:07:49,810 –> 00:07:52,270
فقط در اولین باری که برنامه را اجرا
184
00:07:52,270 –> 00:07:54,639
می کنیم کار می کند و این