سلام
مبحث شل کد بحث طولانی هستش و کسی که بخواد بنویسه باید به زبون اسمبلی آشنایی داشته باشه؛
پروژه ای که قصد معرفیشو دارم؛ برنامهایه که کاری میکنه که کدهایی که به زبون c نوشتیم رو به کدماشین تبدیل میکنه تا بشه ازش استفاده کرد!!
نام پروژه: ShellForge
سیستم عامل: لینوکس
دریافت:
برای دریافت آخرین ورژن دستور زیر رو توی ترمینال میزینم:
کد php:
hg clone http://hg.secdev.org/shellforge
به دلایلی نمیشه با hg برنامه رو دریافت کرد؛ واسه همین از فایل پیوستی که گذاشتم بنام ShellForge استفاده کنید؛ و اون extract کنید
برای اینکه برنامه کار کنه احتیاج به چندین کتابخانهی مخصوص خودش داره که هم میتونید از پیوست بنام ShellForgeLib دریافت کنید و یا با دستور زیر:
کد php:
hg clone http://hg.secdev.org/sflib
نصب:
نصب این برنامه خیلی سادست
روش اول :
اول به مسیری که کتابخانهها رو extract کردم میریم و به سادگی دستور زیر رو مزنیم:
با اینکار هدر برنامه در مسیر کپی میشه:
روش دوم:
همچنین شما میتونید این هدر رو توی هر جا که دوست داشتید نصب کنید که اگه از دوستور بالا استفاده کردید دیگه نسازی به این دستور نیست :
کافیه بجای PATH مسیری رو که میخوایین هدر ها توش کپی بشن بزارید؛
قدم بعدی نصب خود برنامست؛ به پوشهی برنامه میریم
اما قبل از نصب جند نکته لازمه
اول اینکه اگه هدرهای برنامه رو از روش دوم نصب کردید باید در فایل shellforge.conf و در قسمت sflib مسیر جایی که هدرها رو نصب کردید بزارید
دوم:
در همون فایل shellforge.conf و در قسمت زیر:
نوع کامپایلر برنامه رو gcc-3.3 نعریف کرده که اگه مثل من این ورژن رو نداشته باشید برنامه کار نمیکنه؛ برای رفع این مشکل قسمت بالا رو به شکل زیر تغییر میدیم:
برای نصب کافیه توی پوشهی برنامه دستور زیر رو اجرا کنیم:
کد php:
sudo python setup.py install
برنامه در مسیر زیر قرار میگیره:
تست:
فایل hello2.c:
کد php:
/*
* ShellForge example: Hello world version 2
* $Id$
*/
#define STR "Hello world!\n"
int main(void)
{
write(1, STR, sizeof(STR));
exit(5);
}
ایجاد شلکد:
کد:
$ sf.py hello2.c
\x53\xe8\x00\x00\x00\x00\x5b\x81\xc3\xfa\xff\xff\xff\xb8\x04\x00\x00\x00\xba\x0e\x00\x00\x00\x8d\x8b\x36\x00\x00\x00\x53\xbb\x01\x00\x00\x00\xcd\x80\x5b\xb8\x01\x00\x00\x00\x53\xbb\x05\x00\x00\x00\xcd\x80\x5b\x5b\xc3\x48\x65\x6c\x6c\x6f\x20\x77\x6f\x72\x6c\x64\x21\x0a\x00
با امید اینکه در کارهای امنیتی استفاده کنید و نه حرابکارانه
سایت نرم افزار:
http://www.secdev.org/projects/shellforge/
پارامترهای دیگههم میتونید استفاده کنید که در سایت نرم افزار قابل مشاهدهاست.
منبع: خودم