کرم های کامپیوتر





قالب وبلاگ در حال ویرایش شدن!

ممکن است اشکالاتی در قالب پیش بیاید
بنابراین پیشاپیش متاسفیم!

کرم های کامپیوتر

من و دوستم دو تا کرمیم که داریم تو سیستم ها وُل می خوریم و بعضی وقت ها براتون چیزایی که تو این وُل خوردن ها یاد گرفتیم رو می نویسیم!!!!!

ربات تلگرامی ما
آخرین نظرات
  • ۱۰ تیر ۹۷، ۲۰:۵۴ - پسر ساده
    داس

۱۹ مطلب با کلمه‌ی کلیدی «پایتون» ثبت شده است

os.urandom(n)

تابع os.urandom تعداد n بایت تصادفی برمیگرداند که برای مصارف رمزنگاری و دیگر کاربرد‌ها که اعداد تصادفی با کیفیت‌تر نیاز دارند مناسب است

  • فاروق کریمی زاده

این توابع از توابع توکار پایتون هستند و همانطور که از اسمشان مشخص است، یک عدد مبنای ده را به یک رشته که حاوی آن عدد در مبنای ۸،۱۶ یا ۲ است تبدیل میکند. فکر نمیکنم نیاز به توضیح زیادی داشته باشند اما توجه کنید که این توابع یک رشته برمیگردانند. چند مثال:

>>> hex(10)
'0xa'
>>> oct(13)
'0o15'
>>> bin(12)
'0b1100'

مطالب مرتبط:

  • فاروق کریمی زاده

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

input(prompt='')

prompt یک رشته است که به عنوان یک پیام به کاربر نمایش داده میشود و از کاربر میخواهد تا چیزی وارد کند، در صورتی که ذکر نشود،رشته‌ای خالی است(یعنی چیزی نمایش داده نمیشود). یک مثال:

name = input('What is your name?')
print('Hi,', name)

فراموش نکنید که تابع یک رشته برمیگرداند و در صورت نیاز باید آنرا به عدد و غیره تبدیل کنید.

مطالب مرتبط:

  • فاروق کریمی زاده

اندی پیش به این فکر میکردم که چطور میتوانم حجم یک پرونده را بدست بیاورم و زیر کاپوت این توابع چه چیزی پنهان است.

برای بدست آوردن حجم یک پرونده، البته بدون توجه به فایل‌سیستم و سیستم‌عامل میتوانیم به این صورت عمل کنیم: اول پرونده را باز میکنیم، سپس اشاره‌گر پرونده را به آخرین بایت آن انتقال میدهیم(معمولا تابعی به اسم seek یا مشابه وجود دارد)، حالا مکان اشاره‌گر را نسبت به اول پرونده بدست می‌آوریم(معمولا تابعی به اسم tell وجود دارد). حجم پرونده را به بایت بدست آورده‌ایم.

  • فاروق کریمی زاده

چند وقتی بود که این مخزن رو توی گیت‌هاب به لیست علاقه‌مندی ها اضافه کرده بودم، این دستورات برای راه اندازی یک وب سرور ساده‌ی HTTP برای محتویات ایستا هستند(یعنی CGI و PHP و اینا پر!). این سرور ها همه به پورت ۸۰۰۰ گوش میدهند.

  • پایتون ۳
python3 -m http.server 8000
  • پایتون ۲
python -m SimpleHTTPServer 8000
  • روبی
ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'
  • روبی ۱.۹.۲ و بالاتر
ruby -run -ehttpd . -p8000
  • پی اچ پی
php -S 127.0.0.1:8000
  • بیزی‌باکس
busybox httpd -p 8000
  • پاورشل
$Hso=New-Object Net.HttpListener;$Hso.Prefixes.Add("http://+:8000/");$Hso.Start();While ($Hso.IsListening){$HC=$Hso.GetContext();$HRes=$HC.Response;$HRes.Headers.Add("Content-Type","text/plain");$Buf=[Text.Encoding]::UTF8.GetBytes((GC (Join-Path $Pwd ($HC.Request).RawUrl)));$HRes.ContentLength64=$Buf.Length;$HRes.OutputStream.Write($Buf,0,$Buf.Length);$HRes.Close()};$Hso.Stop()

یا اگر خواستید با Command Prompt اجراش بکنید:

PowerShell.exe -nop -enc JABIAHMAbwA9AE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAEgAdAB0AHAATABpAHMAdABlAG4AZQByADsAJABIAHMAbwAuAFAAcgBlAGYAaQB4AGUAcwAuAEEAZABkACgAIgBoAHQAdABwADoALwAvACsAOgA4ADAAMAAwAC8AIgApADsAJABIAHMAbwAuAFMAdABhAHIAdAAoACkAOwBXAGgAaQBsAGUAIAAoACQASABzAG8ALgBJAHMATABpAHMAdABlAG4AaQBuAGcAKQB7ACQASABDAD0AJABIAHMAbwAuAEcAZQB0AEMAbwBuAHQAZQB4AHQAKAApADsAJABIAFIAZQBzAD0AJABIAEMALgBSAGUAcwBwAG8AbgBzAGUAOwAkAEgAUgBlAHMALgBIAGUAYQBkAGUAcgBzAC4AQQBkAGQAKAAiAEMAbwBuAHQAZQBuAHQALQBUAHkAcABlACIALAAiAHQAZQB4AHQALwBwAGwAYQBpAG4AIgApADsAJABCAHUAZgA9AFsAVABlAHgAdAAuAEUAbgBjAG8AZABpAG4AZwBdADoAOgBVAFQARgA4AC4ARwBlAHQAQgB5AHQAZQBzACgAKABHAEMAIAAoAEoAbwBpAG4ALQBQAGEAdABoACAAJABQAHcAZAAgACgAJABIAEMALgBSAGUAcQB1AGUAcwB0ACkALgBSAGEAdwBVAHIAbAApACkAKQA7ACQASABSAGUAcwAuAEMAbwBuAHQAZQBuAHQATABlAG4AZwB0AGgANgA0AD0AJABCAHUAZgAuAEwAZQBuAGcAdABoADsAJABIAFIAZQBzAC4ATwB1AHQAcAB1AHQAUwB0AHIAZQBhAG0ALgBXAHIAaQB0AGUAKAAkAEIAdQBmACwAMAAsACQAQgB1AGYALgBMAGUAbgBnAHQAaAApADsAJABIAFIAZQBzAC4AQwBsAG8AcwBlACgAKQB9ADsAJABIAHMAbwAuAFMAdABvAHAAKAApAA==
  • شل
while true ; do nc -l 8000 < test.html ; done

نسخه پاورشل را خودم امتحان نکرده ام.

منبع و همچنین دستورات بیشتر برای اجرای وب سرور در گیت‌هاب گیست

  • فاروق کریمی زاده

range در پایتون

۰۶
فروردين
range([start,]end)
range(start, end[, step])

تابع range در زبان پایتون یک بازه از اعداد صحیح از start تا end-1 بر میگرداند و در صورتی که start ذکر نشود،بصورت پیشفرض ۰ است.step نیز مشخص میکند که فاصله‌ی اعدادی از هم چقدر باشد و بصورت پیشفرض ۱ هست.

  • فاروق کریمی زاده
enumerate در واقع یک کلاس هست و کاربردش زمانیست که بخواهید روی یک لیست(یا هر مخزن دیگر) پیمایش کنید و علاوه بر اعضای لیست، شماره‌ی آنها در لیست را نیز داشته باشید.
enumerate(myList) = (0, myList[0]), (1, myList[1]), (2, myList[2]), ...
سینتکس کلی بصورت زیر هست:
enumerate(myContainer, [start])

و در حلقه‌ی for میتوانید به این صورت ازش استفاده بکنید :

for enum, value in enumerate(myContainer, [start]):
loop_statments

start شماره‌ی شروع را مشخص میکند و بصورت پیشفرض برابر با صفر قرار داده میشود. این تکه کد عناصر یک لیست را دو برابر میکند(روش بهتری هم برای دو برابر کردن عناصر یک لیست وجود دارد، اما  این یک مثال است):

myList = [1, 2, 3, 4, 5]
for index, value in enumerate(myList):
myList[index] = value * 2

این هم یک کد دیگر به همراه خروجی:

myList = [2, 3, 4, 5]
for i, v in enumerate(myList, -1):
print(i, v)

خروجی:

-1 2
0 3
1 4
2 5

مطالب مرتبط:

  • فاروق کریمی زاده

قبلا تکه کد مشابهی رو به زبان سی فرستاده بودم. این همونه اما به زبان پایتون.

#!/usr/bin/python3
'''
HexView.Py - A simple File Viewer in Hexadecimal format.
Author: FarooqKZ
Under GPL3+. THIS SOFTWARE COMES WITH NO WARRENTY FROM MAIN AUTHOR.
'''

import sys # I inlcude this to use sys.exit() and sys.argv

def showhelp(): # this function shows usage of program
    print("Usage: hexview.py file_path\n\tfile_path: Path of file to view.");
    sys.exit()

if '-h' in sys.argv: #shows help if something like this passed to program: 'hexview.py -h'
    showhelp()

path = sys.argv[1]
filestream = None
fbytes = None

try:
    filestream = open(path,'br') # Open the file in Binary mode for Reading(br)
    fbytes = filestream.read() # Read all bytes from the file 
finally:
    if filestream:
        filestream.close()

rown = 0 
print('')
for b in fbytes:
    s = hex(b).upper()
    s = s.replace('0X','')# "0XBA" => "BA"

    if len(s) == 1: 
        print('0', end='')
    print(s, end=' ')

    rown += 1
    if (rown % 27) == 0:
        print('')

print("\n") # prints 2 newline

پیوند تکه کد در گیت هاب گیست ( برای دریافت به اینجا بروید)

  • فاروق کریمی زاده

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

  • فاروق کریمی زاده

در زبان پایتون جدا از توابع آماده‌ای که برای این کار وجود دارد این روش نیز روش جالبیست.

def FileExist(path):
    try:
        open(path)
    except:
        return False
    else:
        return True

  • فاروق کریمی زاده