انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: سخت افزار و فایلهای مربوطه  (دفعات بازدید: 1591 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین theMaster

  • Full Member
  • *
  • ارسال: 156
  • جنسیت : پسر
سخت افزار و فایلهای مربوطه
« : 10 امرداد 1391، 04:02 ق‌ظ »
با سلام
اونطور که من شنیدم تو لینوکس برای هر سخت افزاری یه معادل فایل وجود داره. یعنی همه چیز فایله. حالا چطور میشه این فایلها رو پیدا کرد و فهمید هر فایلی برای کدوم سخت افزاره؟
مثلا فایل فلش دیسک کدومه. دی وی دی رایتر هارد صفحه کلید ماوس کارت شبکه و ...؟؟؟

آفلاین امیرحسین گودرزی

  • ناظر انجمن
  • *
  • ارسال: 743
  • جنسیت : پسر
  • Devops engineer and AI enthusiastic
پاسخ : سخت افزار و فایلهای مربوطه
« پاسخ #1 : 10 امرداد 1391، 08:43 ق‌ظ »
با سلام
اونطور که من شنیدم تو لینوکس برای هر سخت افزاری یه معادل فایل وجود داره. یعنی همه چیز فایله. حالا چطور میشه این فایلها رو پیدا کرد و فهمید هر فایلی برای کدوم سخت افزاره؟
مثلا فایل فلش دیسک کدومه. دی وی دی رایتر هارد صفحه کلید ماوس کارت شبکه و ...؟؟؟
تا انجا که من می‌دونم می‌تونی پوشه /dev رو بگردی
ورودی ها ( موس،کیبور و جوی‌استیک و ...)توی /dev/input
سی‌دی رام و دی‌وی‌دی رام /dev/sr0
خیلی چیزای دیگه رو می‌تونی اونجا پیدا کنی


آفلاین theMaster

  • Full Member
  • *
  • ارسال: 156
  • جنسیت : پسر
پاسخ : سخت افزار و فایلهای مربوطه
« پاسخ #2 : 10 امرداد 1391، 09:51 ق‌ظ »
خوب توی پوشه ی /dev یه ۱۰ تایی loop هست با ۱۰-۱۲ تا ram و چند تا sda نزدیک ۱۰۰ تا tty و چندتا vcsa و بقیه فایلها . حالا چطور باید بفهمم هرکدوم از اینا واسه چیه؟ ::)

آفلاین امیرحسین گودرزی

  • ناظر انجمن
  • *
  • ارسال: 743
  • جنسیت : پسر
  • Devops engineer and AI enthusiastic
پاسخ : سخت افزار و فایلهای مربوطه
« پاسخ #3 : 10 امرداد 1391، 08:13 ب‌ظ »
خوب توی پوشه ی /dev یه ۱۰ تایی loop هست با ۱۰-۱۲ تا ram و چند تا sda نزدیک ۱۰۰ تا tty و چندتا vcsa و بقیه فایلها . حالا چطور باید بفهمم هرکدوم از اینا واسه چیه؟ ::)
به نظرم من کاربرد و نوعشونو رُ تو گوگجل سرچ کنی بهتره
مثلاً
usage of the /dev/loop


آفلاین theMaster

  • Full Member
  • *
  • ارسال: 156
  • جنسیت : پسر
پاسخ : سخت افزار و فایلهای مربوطه
« پاسخ #4 : 11 امرداد 1391، 12:29 ق‌ظ »
من یه چندتا کشف مهم کردم که با دوستان به اشتراک میذارم . البته در آینده کشفهای بیشتری خواهم کرد
اولی اینکه هر بار که ترمینال رو باز میکنیم یه شماره برای اون در مسیر /dev/pts ایجاد میشه. مثلا ۳ یا ۴ یا ۵ که مطمئنا اونم یه فاله و به راحتی قابل خونده.مثلا دوتا ترمینال باز میکنم. تو هرکدوم دستور tty رو میزنیم تا شماره مربوطه رو بده.من زدم یکی شد ۲ دیگری شد ۳ با این شماره می تونیم به اون پنجره ترمینال دسترسی داشته باشیم. اطلاعاتی که به پنجره میره رو بخونیم
با این دستور. اگه این دستور رو تو پنجره ۲ بزنیم و تو پنجره ۳ هرچی تایپ کنیم تو پنجره ۲ هم نمایش داده میشه
cat /dev/pts/3

با این دستور هم می تونیم به پنجره ترمینال مورد نظر چیزایی رو بفرستیم
echo hello another window > /dev/pts/3
با این دستور از ترمینال شماره ۲ به ترمینال شماره ۳ متنی ارسال و اونجا نمایش داده میشه


آفلاین theMaster

  • Full Member
  • *
  • ارسال: 156
  • جنسیت : پسر
پاسخ : سخت افزار و فایلهای مربوطه
« پاسخ #5 : 11 امرداد 1391، 12:39 ق‌ظ »
نکته ی بعدی اطلاعات مربوط به کی بورده
برای اینکه داده های کی بورد البته به صورت خام رو بخونیم.کافیه فایل معادل اون رو بدست بیاریم و شروع به خوندن اون فایل بکنیم. البته مشکل اینجاست که اون فایل رو باید چجوری باید پیدا کنیم. من با کلی کلنجار رفتن فهمیدم که با این دستور پایین میشه لیست ورودی های سیستم رو بدست آورد
cat /proc/bus/input/devices
از توی اینها باید event متناظر با کی بورد خودتونو بدست بیارید. اگه نتونستید باید یکی یکی ایونت ها رو امتحان کنید
برای سیستم من event4 بود
حالا یه کد به زبان سی هست که باید کامپایل و اجراش کنیم

#include <linux/input.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
    int fd;
    if(argc < 2) {
        printf("usage: %s \n", argv[0]);
        return 1;
    }
    fd = open(argv[1], O_RDONLY);
    struct input_event ev;

    while (1)
    {
        read(fd, &ev, sizeof(struct input_event));

        if(ev.type == 1)
            //printf("key %i state %i\n", ev.code, ev.value);
            if(ev.value == 0)
                printf(" : [key %i]\n ", ev.code);
    }
}

و اما برای اجرا باید به این شکل عمل کنیم
نقل‌قول
compiled_file /dev/input/eventX
که X معادل همون عددیه که متناظر به کی بورد شماست
با این کار شما یه کی لاگر دارین که هر جای سیستم کلیدی فشرده بشه بهتون نشون میده
ولی هنوز نتونستم داده های هایی که میاد رو تجزیه تحلیل کنم که به چه فرمی هست. دوستان اگه می دونند بگن
با همین روش می تونید اطلاعات ماوس رو هم بدست بیارید و اونو لاگ کنید
اگه بازم موضوعی رو فهمیدم حتما به اشتراک می ذارم. 8)