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





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

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

ربات تلگرامی ما
آخرین نظرات

۵ مطلب با کلمه‌ی کلیدی «کار با فایل ها» ثبت شده است

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

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

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

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

#!/usr/bin/python3
'''
HexView.Py - A simple File Viewer in Hexadecimal format.
Author: FarooghKZ
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

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

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

این تکه کد ساده یک مشاهده گر ساده هست که تک تک بایت های فایل را داخل مبنای شانزده(Hex) نمایش میده.

// hexview.c
// Author: FarooghKZ
// It's free software under GPL3+ and comes WITHOUT ANY WARRENTY FROM MAIN AUTHOR
#include <stdio.h>

int main(int argc, char *argv[]){
    if (argc == 1 || !strcmp(argv[1], "-h")){
        printf("Usage: hexview file_path\n");
        return 0;
    }
    FILE *fs = fopen(argv[1], "r");
    long byte_number = 0;
    while(1){
        if ((++byte_number % 26) == 0) // goes to new line each 26 bytes
            printf("\n"); // you may remove this part and then use fold to split it into lines


        int t = getc(fs);
        if (t == EOF)
            break;

        printf("%.2X ", t);
    }
    printf("\n");
    return 0;
}

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

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

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

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

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

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