انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: محمدرضا دولتی در 21 امرداد 1389، 07:18 بظ
-
سلام
من یه فایل C دارم تو linux کامپایل نمیشه از دستور زیر استفاده میکنم ولی error میگیره فکر کنم به خاطر Library ها باشه لطفا راهنمایی کنید
ممنوم
gcc filename.c -o newname
-
دستورتون مشکلی نداره
-
دستورتون مشکلی نداره
میدونم دستور مشکلی نداره از Library ها ایراد میگیره چطوری اونارو Upgrade کنم
-
اصلا نصبه؟
از تو هوا که نمیشه نظر داد.
حداقل ارورش رو میگذاشتین
-
اصلا نصبه؟
از تو هوا که نمیشه نظر داد.
حداقل ارورش رو میگذاشتین
root@mohammad-desktop:~# gcc farzadho.c -o mm
farzadho.c:1:3: error: invalid preprocessing directive #Author
farzadho.c:2:3: error: invalid preprocessing directive #Version
farzadho.c:3:3: error: invalid preprocessing directive #Tested
farzadho.c:4:3: error: invalid preprocessing directive #Greetz
farzadho.c:5:3: error: invalid preprocessing directive #Code
farzadho.c:5:29: warning: missing terminating ' character
farzadho.c:18:22: error: asm/page.h: No such file or directory
farzadho.c: In function ‘main’:
farzadho.c:199: error: ‘PAGE_SIZE’ undeclared (first use in this function)
farzadho.c:199: error: (Each undeclared identifier is reported only once
farzadho.c:199: error: for each function it appears in.)
farzadho.c:209: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:209: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:210: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:211: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:229: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:229: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:230: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:231: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:246: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:246: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:247: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:257: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:257: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
اینم خود فایله یه تست بکنید برای کامپایل:
http://dolati1703.persiangig.com/farzadho.c
-
دوست عزیز نیازی نیست سوالتون رو چند جا بپرسید!
این خط میگه که این فایلی که اینکلود کردین رو پیدا نمیکنه:
farzadho.c:18:22: error: asm/page.h: No such file or directory
هستش؟!
-
دوست عزیز نیازی نیست سوالتون رو چند جا بپرسید!
این خط میگه که این فایلی که اینکلود کردین رو پیدا نمیکنه:
farzadho.c:18:22: error: asm/page.h: No such file or directory
هستش؟!
این فایل رو یه CentOS کامپایا میشه هیچ مشکلی هم نداره ولی رو Ubuntu کامپایل نمیشه.
-
خب فایل page.h رو کپی کنین رو سیستمتون ببینین درست میشه یا لااقل ارورهاش کمتر میشه یا نه
-
یعنی کامپایلر C هست که با وجود این خطها در ابتدای کد :
# Author: DigitALL
# Version: 2.6.18-20
# Tested on: Linux System
# Greetz To: Zombie KroNicKq and All 1923turk.Biz Members
# Code : 2.6.18 2008 Exploit's ?s Edited 2009 Version.I Am Tested 2.6.18-20 2009 Linux is Rooted.Coming Soon.By DigitALL
بتونه فایل رو کامپایل کنه؟ باقیشو چک نکردم. حتی رو CentOS??
-
اما فایل page.h رو همه دیسترو ها وجود داره. تو پوشه
/lib/modules/`uname -r`/build/include
(اون uname -r تو بک تیکه، وقتی دستور رو میزنید میشه اسم کرنل دیستروی شما)
البته توی اون پوشه، یه پوشه دیگه هست که برای من توی Arch x86_64 اسمش asm-generic بود. من یه softlink ساختم به اسم asm به همین پوشه تو همونجا. البته کار راحت ترش این بود که توی کد، asm/page.h رو تغییر بدم به asm-generic/page.h
بعد اون پوشه رو که بالا گفتم به مسیر C اضافه کردم :
C_INCLUDE_PATH+="/lib/modules/`uname -r`/build/include"
export C_INCLUDE_PATH
حالا کامپایلش کن، و لطفا اون خطوط ابتدایی رو هم بردار یا به صورت کامنت درشون بیار، علامت # تو C رزرو شده واسه PreProcessor .
-
اما فایل page.h رو همه دیسترو ها وجود داره. تو پوشه
/lib/modules/`uname -r`/build/include
(اون uname -r تو بک تیکه، وقتی دستور رو میزنید میشه اسم کرنل دیستروی شما)
البته توی اون پوشه، یه پوشه دیگه هست که برای من توی Arch x86_64 اسمش asm-generic بود. من یه softlink ساختم به اسم asm به همین پوشه تو همونجا. البته کار راحت ترش این بود که توی کد، asm/page.h رو تغییر بدم به asm-generic/page.h
بعد اون پوشه رو که بالا گفتم به مسیر C اضافه کردم :
C_INCLUDE_PATH+="/lib/modules/`uname -r`/build/include"
export C_INCLUDE_PATH
حالا کامپایلش کن، و لطفا اون خطوط ابتدایی رو هم بردار یا به صورت کامنت درشون بیار، علامت # تو C رزرو شده واسه PreProcessor .
منظورتو متوجه نمیشم اگه میشه واضح تر بگو یا کامپایل شده فایل رو بریم بفرست ممنون
-
چی واضح نیست؟؟؟
این دستور رو بزن :
cd /lib/modules/`uname -r`/build/include
بعد دستوز ls رو بزن، ببین پوشه asm-generic اونجا هست یا نه.
اگه نبود بگرد دنبال یه پوشه که اولش asm باشه و داخلش فایل page.h باشه
بعد بزن (با sudo البته )
ln -s ./asm-generic ./asm
فقط یادت باشه که اول دستور cd رو بزنی بعد این دستور رو. فرض هم میکنم که شما پوشه asm-generic داری مثل من. به جای اینکار میتونی کدت رو دستکاری کنی و به جای
#include <asm/page.h>
بنویسی :
#include <asm-generic/page.h>
بعد بزن :
C_INCLUDE_PATH+="/lib/modules/`uname -r`/build/include"
export C_INCLUDE_PATH
و در آخر کد رو کامپایل کنی
gcc farzadho.c -o mmm
این فایل وابسته هستش به کرنل شما، بنابراین منطقی نیست نسخه کامپایل شده من که ممکنه با یه کرنل دیگه کامپایل شده استفاده کنی.
اگه پوشه asm-generic نداری حتما یه معادلشو داری، اونو پیدا کن و به جای همه asm-generic ها اسم اونو بزن.
-
تمام کار هارو کردم ولی بازم ERROR داره
root@mohammad-desktop:~# gcc farzadho.c -o mm
farzadho.c:1:3: error: invalid preprocessing directive #Author
farzadho.c:2:3: error: invalid preprocessing directive #Version
farzadho.c:3:3: error: invalid preprocessing directive #Tested
farzadho.c:4:3: error: invalid preprocessing directive #Greetz
farzadho.c:5:3: error: invalid preprocessing directive #Code
farzadho.c:5:29: warning: missing terminating ' character
farzadho.c: In function ‘main’:
farzadho.c:209: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:209: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:210: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:211: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:229: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:229: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:230: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:231: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:246: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:246: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:247: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:257: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:257: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
-
برادر من، بالاتر گفتم خطوط اول تا قبل از #define _GNU_SOURCE هرچی هست پاک کن یا کامنت کن.
-
پاک کردم این Error رو میده
root@mohammad-desktop:~# gcc farzadho.c -o mmm
farzadho.c:12:30: error: asm-generic/page.h: No such file or directory
farzadho.c: In function ‘main’:
farzadho.c:193: error: ‘PAGE_SIZE’ undeclared (first use in this function)
farzadho.c:193: error: (Each undeclared identifier is reported only once
farzadho.c:193: error: for each function it appears in.)
farzadho.c:203: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:203: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:204: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:205: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:223: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:223: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:224: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:225: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:240: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:240: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:241: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:251: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:251: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
-
دلیلش اینه که
۱- اون فولدر اصلا وجود نداشته (asm-generic ) و شما هم اونجوری که گفتم دنبالش نگشتید. (که این نیست،چون توی کامپایل قبلی درست بود)
یا
۲-دوباره اون دستورات رو که زدم
C_INCLUDE_PATH+="/lib/modules/`uname -r`/build/include"
export C_INCLUDE_PATH
رو دوباره قبل از کامپایل اجرا نکردید. اگه ترمینال رو ببندید و دوباره باز کنید این دستور رو باید دوباره بزنید.
-
1.asm-generic رو داشتم
2. source رو تغییر دادم و خطوطی رو که گفتی پاک کردم
3.دستورات قبل gcc رو اجرا کردم
4.برنامرو کامپایل کردم
بازم ERROR داد!
root@mohammad-desktop:~# gcc farzadho.c -o mmm
farzadho.c: In function ‘main’:
farzadho.c:203: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:203: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:204: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:205: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:223: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:223: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:224: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:225: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:240: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:240: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:241: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:251: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:251: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
-
1.asm-generic رو داشتم
2. source رو تغییر دادم و خطوطی رو که گفتی پاک کردم
3.دستورات قبل gcc رو اجرا کردم
4.برنامرو کامپایل کردم
بازم ERROR داد!
root@mohammad-desktop:~# gcc farzadho.c -o mmm
farzadho.c: In function ‘main’:
farzadho.c:203: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:203: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:204: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:205: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:223: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:223: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:224: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:225: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:240: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:240: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
farzadho.c:241: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘struct page *’
farzadho.c:251: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘char *’
farzadho.c:251: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 3 has type ‘char *’
کو ؟ کجا؟ اینها همش warning هستش، نه خطا یعنی کد کامپایل شده و فایل ایجاد شده. گرچه من با همون کد حتی همین warning ها رو هم نمیگیرم.
-
اینم خروجیش :
-----------------------------------
Linux 2.6.18-20 2009 Local Root Exploit
By DigitALL
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x7f5d7af86000 .. 0x7f5d7afb8000
[-] vmsplice: Bad address
فقط این کرنلش ۲.۶-۱۸ بوده نه 2.6.34-ARCH :D
-
اینم خروجیش :
-----------------------------------
Linux 2.6.18-20 2009 Local Root Exploit
By DigitALL
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x7f5d7af86000 .. 0x7f5d7afb8000
[-] vmsplice: Bad address
فقط این کرنلش ۲.۶-۱۸ بوده نه 2.6.34-ARCH :D
خیلی خیلی ممنون از راهنماییتون بلاخره OK شد
واقعا از پیگیریتون ممنونم