🧑‍💻Cyber.vision🧑‍💻
466 subscribers
170 photos
12 videos
20 files
145 links
Python tips and tricks
The Good, Bad and the Ugly
متخصص امنیت شبکه های کنترل صنعتی
👨‍💻این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی این چند سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)
https://t.me/Hacker0x01
Download Telegram
برگه تقلب (خلاصه دستورات) پایتون.pdf
17.3 MB
• کتاب برگه تقلب پایتون (خلاصه دستورات)
فارسی

#Book #Python
خب تا اینجا پایتون رو نصب کردیم .
قدم دوم : دانلود یک محیط برنامه‌نویسی استاندارد برای برنامه‌نویسی با پایتون یا IDE هست.
نرم افزارهای متفاوتی برای این کار وجود داره که از محبوب‌ترین اونها میشه به Pycharm از محصولات شرکت Jetbrain و vscode است که در این دوره به علت راحت تر بودن در نصب از vscode استفاده میشه.

#vs_code
#Python
#Fxl
خب خب دوستان سلام میفرستم خدمتتون Sxl هستم و قراره از این به بعد کلی کد و پروژه بزنیم😁✌️

اینجا خواستم 3 تا لینک برای تکمیل پست های بالا خدمتتون ارسال کنم بعد دیگه کم کم برسم سراغ کیبورد و سیستم😆


Python history:
https://www.geeksforgeeks.org/history-of-python/

Whats is
python:
https://www.python.org/doc/essays/blurb/

10 best
python IDEs:
https://hackr.io/blog/best-python-ide


لینک های بالا به خیلی از سوالات شما جواب میدن قبل از شروع بهتره مطالعه ای داشته باشید مهم‌ترین‌ سوالاتی که باید بدونید شامل:
تاریخچه پایتون چیه؟
پایتون چیه و به چه دردی میخوره؟
بهترین محیط های کد زنی پایتون کدوما هستن؟
و... که قراره ما بهتون بگیم😉👌

#python
#coding
#programming
#pythonism
#Sxl
مورد اول:
عملگر های حسابی که شامل
+ برای جمع استفاده میشه
-برای منها کردن و کم کردن
* برای ضرب کردن
/ برای تقسیم کردن استفاده میشه
// برای خارج قسمت
% برای باقی مانده
برای توان استفاده میشه


بیایید برای مثال:
2 + 2
3 - 2
6 * 3
9 / 3
9 // 3
9 % 6
2
2

این عملگر هارو اگر با متغیر ها تلفیق کنید چه شود!!!
مثلا:
Input:
X = 10
Y = 20
Print (X * Y)

Output= 200

دوتا متغیر تعریف کردیم به اسم های X و Y برای هر دو متغیر 2 عدد لحاظ کردیم با عملگر = یعنی برابری دادیم اون عدد رو با اون متغیر بعد اومدیم پرینت گرفتیم)چاپ گرفتیم( ضرب این 2 متغیر رو.

یا به این مثال توجه کنید:
A = 100
B = 10
Print (A / B)

Output : 100


بریم برای پست بعدی.
#Operators
#python
#Sxl
🔷🔸Python Arrays🔸🔷

در پایتون، برای ذخیره و مدیریت داده‌ها، از ساختار داده‌ها استفاده می‌شود.
یکی از این ساختارها، آرایه (Array) است که نقطه قوت قابلیت ذخیره‌سازی داده‌های همنوع (داده‌هایی که همگی از یک نوع هستند) و دسترسی به عناصر با استفاده از شاخص‌ها است.

در پایتون، می‌توانیم از دو نوع آرایه استفاده کنیم: "لیست‌ها" (Lists) و "آرایه‌های numpy" (NumPy Arrays).

1. لیست‌ها:
لیست‌ها در پایتون یک ساختار داده پویا و چند منظوره هستند. با استفاده از لیست‌ها می‌توانیم داده‌های مختلف را در یک لیست ذخیره کنیم. برای ایجاد یک لیست، از علامت [] و اعضا را با کاما جدا می‌کنیم. مثال زیر روش‌های ساختن یک لیست را نشان می‌دهد:


   my_list = []  # ایجاد یک لیست خالی
my_list = [1, 2, 3, 4, 5] # ایجاد لیست با مقادیر اولیه
my_list = ['apple', 'banana', 'cherry'] # لیستی از رشته‌ها


لیست‌ها می‌توانند انواع مختلف داده‌ها را شامل شوند، مانند اعداد، رشته‌ها، لیست‌های دیگر و حتی ترکیبی از انواع مختلف. البته، در لیست‌ها همچنین می‌توانیم به عناصر با استفاده از اندیس (شاخص) دسترسی پیدا کنیم و در عملیات‌هایی مانند اضافه کردن، حذف، تغییر و مرتب‌سازی عناصر لیست، تغییراتی ایجاد کنیم.

2. آرایه‌های numpy:
آرایه‌های numpy یک کتابخانه پرکاربرد در پایتون هستند که مفهوم آرایه را گسترش می‌دهند. این کتابخانه امکانات بسیاری را برای عملیات عملیاتی، ریاضیاتی و استنباطی روی داده‌های چند بعدی فراهم می‌کند. برای استفاده از آرایه‌های numpy، ابتدا باید کتابخانه را با دستور import numpy as np وارد کنیم.

برخلاف لیست‌ها، آرایه‌های numpy باید از مقداردهی اولیه داده‌ها با استفاده از توابع خاصی مانند numpy.array() استفاده کنند. مثال زیر نشان می‌دهد که چگونه یک آرایه یک بعدی از لیست‌ها ایجاد کنیم:


   import numpy as np

my_array = np.array([1, 2, 3, 4, 5]) # ایجاد یک آرایه یک بعدی


آرایه‌های numpy قابلیت‌های بسیاری دارند، از جمله عملیات ریاضی و آماری، شاخص‌گذاری و برش، تبدیلات شکل و بسیاری دیگر.

در نتیجه، آرایه‌ها در پایتون ابزارهای قدرتمندی هستند که به ما امکان می‌دهند داده‌ها را سازماندهی و برای آن‌ها عملیات مختلفی انجام دهیم. 🦦📊

#FXL
#numpy
#Python_Arrays
🖥 اعلان های لپ تاپ با پایتون


‼️این کد از ماژول‌های time و plyer.notification استفاده می‌کند. ماژول time برای کنترل زمان استفاده می‌شود و plyer.notification برای نمایش هشدارها استفاده می‌شود.

‼️در اینجا یک حلقه بی‌نهایت (while True) استفاده شده است تا به طور مداوم هشدارها را نمایش دهد. داخل حلقه، تابع notification.notify() فراخوانی شده است تا هشدار را نمایش دهد. سپس با استفاده از تابع time.sleep(3600)، برنامه به مدت یک ساعت (3600 ثانیه) منتظر می‌ماند و سپس دوباره هشدار را نمایش می‌دهد.

برای اجرای این کد، اطمینان حاصل کنید که پکیج plyer را نصب کرده‌اید. می‌توانید از مدیر بسته pip برای نصب آن استفاده کنید با اجرای دستور زیر:


pip install plyer
سپس کد را در یک فایل Python با پسوند .py ذخیره کنید و برنامه را اجرا کنید. برنامه شروع به نمایش هشدارها پس از گذشت یک ساعت می‌کند.

لطفاً توجه داشته باشید که برای استفاده از ماژول plyer، سیستم عامل شما باید از آن پشتیبانی کند و تنظیمات مربوط به نمایش هشدارها باید مجاز باشد.


#code
#python
🖥 کد ساخت دوربین امنیتی OpenCV Python :

🔹این کد یک برنامه است که دوربین را فعال می‌کند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط می‌شود، انجام می‌دهد.
اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو می‌کند. پس از تشخیص از بین رفتن چهره یا بدن، برنامه تا 5 ثانیه دیگر ادامه می‌دهد و سپس ضبط را متوقف می‌کند.

🔹 ویدیوهای ضبط شده با فرمت mp4 و با نام‌های مختلف برای هر زمان ضبط شده‌اند.

🔺به طور خلاصه، این برنامه قابلیت تشخیص چهره و بدن انسان را در ویدیو فراهم می‌کند و در صورت تشخیص، ویدیویی را ضبط می‌کند.

#code
#python
Numpy Cheat Sheet0.pdf
3.2 MB
برگه تقلب شماره ۱ پایتون ، کتابخانه Numpy

Cheat Sheet 1 : Numpy


#کتابخانه #cheat_sheet #pdf


#python
#Python
یکی پایه های شیء گرایی encapsulation هست، توی پایتون برای اجرا این قانون چند راه مختلف داریم، یکی از اون ها استفاده از دکوریتور ‎[at]property هستش. با بکار گیری این دکوریتور ما برای متغییر های داخل کلاس تعیین میکنیم که چه مقداری بهشون اساین بشه، یا اصلا دسترسی اساین رو میگیریم!!
برای مثال: فرض کنید ما در یک کلاس به متغییری نیاز داریم که فقط عددی از 0 تا 100 داخلش ذخیره کنیم. اسم متغییر رو y در نظرم می گیریم.
در تصویر داخل کلاس یک متغییر به اسم y_ داریم(متغییر هایی که با یک _ شروع بشن protected و اونایی که با ــ شروع میشن private هستن)
متغییر y_ درواقع همون متغییر y هست اما با توجه به اینکه مقدار این متغییر نباید مستقیم توسط instance کلاس تغییر کنه، چون باید حتما بین 0 تا 100 باشه. پس ما یک متغییر protected تعریف میکنیم که مقدار 0 تا 100 رو نگهداری کنه و یک فانکشن به اسم y که به متغییر y_ مقدار بدهد و همچنین مقدار y_ را برگرداند. به این نوع از فانکشن ها property میگن، که getter ,setter و deleter را برای یک متغییر تنظیم میکند(طبق تصویر).
اگه اینارو نمیدونی ادعایی تو برنامه نویسی نداشته باش!

شاید پارامترهای 'arg' و 'kwarg'  توی تعریف توابع یا داکیومنت های کتابخونه های مختلف  #پایتون دیده باشین.
اما این دوتا پارامتر دقیقا چیکار میکنن؟
زمان تعریف توابع میشه یک یا چند آرگیومنت رو به عنوان ورودی به اون تابع تعریف کرد اما اگر ندونیم که ورودی ها دقیقا چند تا هستند یا در آینده بخواییم چیزهای دیگه رو هم به عنوان ورودی به تابع بدیم به مشکل برمیخوریم و اینجاست که این دو تا پارامتر وارد عمل میشن.

پارامتر *arg: اگر تابعی از این پارامتر استفاده کنه به ترتیب وردی هایی که بهش داده شده رو میگیره و داخل پارامترهاش میریزه اما هر ورودی بیش تر از تعداد ورودی های ثابت رو به *arg اختصاص میده
def testfunc(one,*argv):
    for arg in argv:
        print(arg)

testfunc('Hello', 'this', 'is', 'SiliconBrain')

توی مثال بالا تابع مقدار ورودی 'one' رو با "hello" پر میکنه و باقی ورودی ها رو داخل *arg میریزه.
پارامتر *arg از مجوعه پارامترهای position based هست یعنی ترتیب ورودی هایی که بهش داده میشه اهمیت داره و به تبع اون میشه به همون ترتیب داخل تابع بهشون دسترسی داشت.

پارامتر **kwarg:
این پارامتر هم مثل پارامتر قبلی برای ورودی دادن اضافی به توابع استفاده میشه با این تفاوت که ساختار اون به صورت دیکشنری هست و ورودی هایی که از این طریق به تابع داده میشن رو باید به صورت مقادیر {key:value} تعریف کرد.
def testfunc(arg1, **kwargs):
    for key, value in kwargs.items():
        print(f"{key} == {value}")

testfunc("Hi", first='this', mid='is', last='SiliconBrain')


در مثال بالا مقدار arg1 با "Hi" پر میشه و بقیه ورودی ها با **kwarg اختصاص پیدا میکنند در نتیجه داخل تابع به جای دسترسی به ورودی ها با استفاده از slicing که در *arg استفاده میشه.

نکته مهم: نام گذاری برای این دو پارامتر آزاد هست و هر اسمی که بعد از  * یا ** بیاد همون کاربرد موارد گفته شده بالا رو داره.
#python
🧑‍💻Cyber.vision🧑‍💻
Photo
#APT #Lazarus #Python
در سال گذشته تیم Lazarus منتسب به کره شمالی، اقدام به پیاده سازی یک حمله مبتنی بر یک مهندسی اجتماعی جالب کرده و قربانیانی را مورد حمله قرار داده است.

ماجرا از این قرار که یک برنامه کنفرانس ویدیویی تقلبی متفاوت با نام FCCCall که یک برنامه کنفرانس قانونی رو تقلیب میکنه به عنوان بخشی از زنجیره حمله استفاده شده.

تیم مهاجم بواسطه شبکه های اجتماعی و آگهی های کاریابی که مشخصا متخصصان بلاک چین هستند، با قربانیان تماس گرفته و ادامه گفتگو را در تلگرام ادامه داده اند.

در تلگرام پروژه ای Node.js داده شده تا ارزیابی فنی انجام شود و همچنین از یک نرم افزار کنفرانس تقلبی نیز استفاده کرده و قربانی را سعی در دانلود و نصب نرم افزار کنفرانس تقلبی از دامنه به ظاهر مشروع لازاروس میکند.

قربانیان ویندوزی و مک بواسطه BeaverTail که Trojan شده است، قربانی را بواسطه یک نصب کننده MSI یا DMG آلوده میکند، در کنار این دو یک پروژه مخرب Node.js نیز که بصورت مبهم سازی شده است نیز به قربانی داده میشود.

در صورت اجرای پروژه یک کد مخرب پایتونی را دانلود کرده و آن نیز نرم افزار anydesk را نامحسوس اجرا میکند.
#APT #Lazarus #Python
در سال گذشته تیم Lazarus منتسب به کره شمالی، اقدام به پیاده سازی یک حمله مبتنی بر یک مهندسی اجتماعی جالب کرده و قربانیانی را مورد حمله قرار داده است.

ماجرا از این قرار که یک برنامه کنفرانس ویدیویی تقلبی متفاوت با نام FCCCall که یک برنامه کنفرانس قانونی رو تقلیب میکنه به عنوان بخشی از زنجیره حمله استفاده شده.

تیم مهاجم بواسطه شبکه های اجتماعی و آگهی های کاریابی که مشخصا متخصصان بلاک چین هستند، با قربانیان تماس گرفته و ادامه گفتگو را در تلگرام ادامه داده اند.

در تلگرام پروژه ای Node.js داده شده تا ارزیابی فنی انجام شود و همچنین از یک نرم افزار کنفرانس تقلبی نیز استفاده کرده و قربانی را سعی در دانلود و نصب نرم افزار کنفرانس تقلبی از دامنه به ظاهر مشروع لازاروس میکند.

قربانیان ویندوزی و مک بواسطه BeaverTail که Trojan شده است، قربانی را بواسطه یک نصب کننده MSI یا DMG آلوده میکند، در کنار این دو یک پروژه مخرب Node.js نیز که بصورت مبهم سازی شده است نیز به قربانی داده میشود.

در صورت اجرای پروژه یک کد مخرب پایتونی را دانلود کرده و آن نیز نرم افزار anydesk را نامحسوس اجرا میکند.
😨1