نمایش نتایج 1 تا 9 از 9

نام تاپیک: اجرا کردن یک پروژه برای intercept systemcall

  1. #1
    کاربر دائمی آواتار arashmidos2020
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    35
    پست
    190

    اجرا کردن یک پروژه برای intercept systemcall

    سلام پیرو بحث intercept system calls یک پروژه رو پیدا کردم می خوام ببینم اینجور پروژه ها رو چطور باید اجرا کنم؟
    اگر کسی علاقه داره لطفا با من همکاری کنه تا به جاهای خوبی برسیم:
    مثلا من فایل های gridbox.c,gridbox.h,syscalls.c,syscalls.h, acl.c,acl.h رو با هم در یک پروژه اجرا می کنم و بعد با ترمینال فایل tect.c رو اجرا می کنم.
    اما هر دو اجرا میشن و هیچ تاثیری روی هم ندارن. چرا؟ به خاطر اینکه اصل کار رو فایل libgridbox.c انجام میده و سیستم کال ها رو عوض می کنه اما نمی دونم چه موقع اجرا میشه!! و وقتی به پروژه اضافه می کنمش کلی اررور میده.
    لطفا اساتیدی که تو ران کردن پروژه های open source ماهر هستند کمک کنند.

    اینم بگم اگه یک نگاه به فال ها بندازید متوجه میشید کاملا چطوری کار می کنه اما من فعلا می خوام کامل رانش کنم ببینم چطوریه
    ممنون
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر تازه وارد آواتار a.gh.n
    تاریخ عضویت
    شهریور 1386
    سن
    34
    پست
    40

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    شما وقتی make gridbox.so رو انجام میدید فایل آبجکتی از libgridbox.c هم به gridbox.so شیر میشه. دیگه لازم نیست تو برنامتون از فایل gridbox.c استفاده کنید. ظاهرا همون متغیر LD_PRELOAD کار خودش رو باید انجام بده. برنامه رو به این صورت ران کردم:
    $ LD_PRELOAD=./gridbox.so ./test

    که تست فایل اجرایی test.c هست. دستورات هم مقدار ALLOWED رو نشون دادن. شما مشخصات پروژه ای که خودتون باهاش نوشتین رو می فرمایید؟

  3. #3
    کاربر دائمی آواتار arashmidos2020
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    35
    پست
    190

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    بسیار ممنونم از وقتی که گذاشتید.بله منم از همین طوری اجرا کردم.
    چطوری میشه همین کارو با یک IDE مثل codeblocks انجم داد؟اونجا چطوری میشه makefile رو بهش فهموند؟
    من با codeblocks در ubuntu 9.4 کار می کنم.

    بازم ممنون از کمک بزرگتون
    آخرین ویرایش به وسیله arashmidos2020 : جمعه 13 فروردین 1389 در 01:26 صبح

  4. #4
    کاربر تازه وارد آواتار a.gh.n
    تاریخ عضویت
    شهریور 1386
    سن
    34
    پست
    40

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    make هیچ چیز خاصی نیست! یک سری آرگومان داره (مثلا اینجا gridbox.so یا all یا clean) و به ازای هر کدوم از اونها دستوراتی برای کمپایل و لینک کردن داره. شما می تونید اون دستورات رو مستقیما بدون نیاز به خود فایل makefile اجرا کنید. محتویات فایل makefile رو ببینید متوجه می شید.
    معنی این ها اینه که من با codeblocks کار نکردم! ;)

  5. #5
    کاربر دائمی آواتار arashmidos2020
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    35
    پست
    190

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    یک چیز برای من معلوم نشد.چطور میشه سیستم کال هایی که توسط فایل libgridbox.c تغییر کرده اند با سیستم کال های مربوطه شون عوض بشه در صورتی که توی هیچ فایل دیگههیچ اسمی نه از فانشکن هاش و نه از متغیرهاش برده شده؟!
    این فایل که از هیج جا لینک نشده چطور میتونه فعالیتشو انجام بده توی .so ? حالا اصلا بیاد و libgridbox.o هم جزو .so بشه اما چطور میشه که تاثیر گذار میشه؟
    منظورم رو رسوندم؟

  6. #6
    کاربر تازه وارد آواتار a.gh.n
    تاریخ عضویت
    شهریور 1386
    سن
    34
    پست
    40

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    بله توی libgridbox.so کمپایل شده ی اون فانکشن ها میاد. یعنی بعد از تغییر فایل دوباره باید make رو ران کنید. برای دیدن محتویات فایل gridbox.so ران کن:
    nm ./gridbox.so

    از اینجا می‌تونید مطمئن باشید فانکشنی که می‌نویسید توی لایبرری می‌ره یا نه.

  7. #7
    کاربر دائمی آواتار arashmidos2020
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    35
    پست
    190

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    بعد از تبدیل اون به سی پلاس پلاس و یک مقدار ناچیزی تغییر،به این مشکل برخوردم.
    syscalls.o:(.bss+0x0): multiple definition of `rules'
    libgridbox.o:(.bss+0x0): first defined here

    توی کل پروژه rules یکبار در systemcall.h و یکبار هم در acl.h به صورت extern تعریف شده

  8. #8
    کاربر دائمی آواتار arashmidos2020
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    35
    پست
    190

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall



    ??؟؟
    ؟؟؟???
    ????؟؟؟؟


  9. #9
    کاربر دائمی آواتار arashmidos2020
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    سن
    35
    پست
    190

    نقل قول: اجرا کردن یک پروژه برای intercept systemcall

    کسی نمی دونه مشکل چیه؟

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •