PDA

View Full Version : System Programmin Resource



حمیدرضاصادقیان
چهارشنبه 19 دی 1386, 22:17 عصر
سلام دوستان.میخواستم ببینم آیا امکانش هست با دلفی system programming انجام داد. از کجا باید شروع کرد و منابعی که میتونه کمک کنه ممنون میشم معرفی کنید.

vcldeveloper
پنج شنبه 20 دی 1386, 00:47 صبح
System Programming یعنی چی؟

حمیدرضاصادقیان
پنج شنبه 20 دی 1386, 09:08 صبح
منظور low-level programming هست.به طور مثال نوشتن یک آنتی ویروس، تحلیل فایلهاونوشتن برنامه های امنیتی.

Delphi Coder
پنج شنبه 20 دی 1386, 10:07 صبح
به نظر من در این حد بله. من خودم با Delphi یه آنتی ویروس برای یه ویروس و یه تروجان نوشتم. و در ضمن سورس Driver هم دیدم که با Delphi نوشته شده البته یادم نیست چه نوع درایوری.

یادمه زمان DOS بعضی از برنامه نویسان QuickBasic برای اینکه ثابت کنن هر کاری تو اون زبون میشه کرد کدهای Assembly رو با یه ترفندهایی از برنامشون اجرا میکردن و نهایتا حرفشون درست بود. ایجا هم ممکنه یکی ادعا کنه با Delphi سیستم عامل هم میشه نوشت و ....
ولی در کل
نوشتن یک آنتی ویروس، تحلیل فایلها
در Delphi مشکلی نداره و فکر نمی کنم مجبورتون کنه به راههای غیر معمول متوسل بشید.

ونوشتن برنامه های امنیتی
اگه برنامه هایی مثل Packer ها و Encryptor و Anti Debugger های فایلهای اجرایی (مثلا فایلهای PE ) منظورتون هست حتما باید با Assembly کار کنید.

rasool_brn
پنج شنبه 20 دی 1386, 10:20 صبح
دلفی یک زبان سطح بالاست و برای برنامه نویسی سیستمی ایجاد نشده , ولی خوب می تونید از توابع API که دلفی هم از اونها پشتیبانی می کنه استفاده کنید و برنامه سیستمی بنویسید.

Inprise
پنج شنبه 20 دی 1386, 11:29 صبح
منظور low-level programming هست.به طور مثال نوشتن یک آنتی ویروس، تحلیل فایلهاونوشتن برنامه های امنیتی.

کامپایلر دلفی کد Native Win32 تولید میکنه . معنیش این هست که در صورت وجود رابط ، میتونه از تمام توابع سرویسهای سیستم عامل استفاده کنه ، یعنی تا وقتی هدفت تولید برنامه User Mode باشه دلفی هم امکان تولید هر برنامه ای رو داره و هم ابزار مناسبی برای اینکار هست . API های مختلف ویندوز برای استفاده در دلفی توسط بورلند یا گروه های فعال ترجمه شدن و در دسترس هستن . انواع مثال و نمونه هم برای کارهای مختلف هست . اما منبع و مرجعی برای نوشتن برنامه سطح پائین وجود نداره ، چون هیچ وقت کسی نمیتونه دقیقا مشخص کنه چه چیزی کاملا سطح پائین هست . اگر دنبال نوشتن درایور باشی دیگه دلفی یه انتخاب نیست . هولی فادر که نویسندهء روتکیت هکر دیفندر هم بود یه کیت درست کرد که به کمک کامپایلر دلفی و لینکر مایکروسافت باهاش درایور تولید بشه اما ادامه پیدا نکرد و الان فقط تعداد خیلی کمی از توابع کرنل برای استفاده در دلفی ترجمه شدن بنابراین این مطلب قابل پیگیری نیست . از بین محصولات امنیتی معروف خیلیهاشون با دلفی یا سی++ بیلدر نوشته شدن ، مثل تمام محصولات امنیتی پاندا ، یا سری محصولات GFI‌ ( مثل لن گارد و ...) یا مرورگر امنیتی Shadow Security Scanner و ...خیلیهای دیگه . برای سایر کاربردها هم دلفی گزینه ایده آلی هست و "لزوم"ی نداره از چیز دیگری استفاده کنی ، در واقع چون دلفی هم امکان توسعه سریع ( RAD ) و هم امکان ارتباط مستقیم با سیستم عامل رو داره یکی از بهترین گزینه ها برای این موارد هست . اگر دنبال نوشتن یا شروع به مطالعه در مورد برنامه خاصی هستی بهتره توضیح بدی تا بهتر راهنمائی بشی

حمیدرضاصادقیان
پنج شنبه 20 دی 1386, 15:18 عصر
سلام.ممنون از راهنمایی قشنگتون .راستش میخوام بیشتر در زمینه برنامه هایی که به تولید Anti virus یا فایروال یا برنامه های امنیتی منتهی میشه مطالعه داشته باشم.اگر امکانش هست در این زمینه منابعی معرفی کنید. دقیقا باید از کدوم نقطه شروع کنم.؟

Inprise
پنج شنبه 20 دی 1386, 15:23 عصر
برنامه امنیتی مفهوم نیست . برای نوشتن آنتی ویروس و فایروال مسائل خیلی زیادی باید در نظر گرفته بشه . این مسئله خیلی محدودی نیست . ابعادش متنوعه . یک کتاب یا حتی تعداد معدودی کتاب مشخص وجود نداره که بهت توصیه کنم . اینجور مسائل معمولا کار یه نفر نیست ، نه پیاده سازی اش ، حتی درک کل ابعادش .

برای اینکه یه نقطه شروع خیلی ابتدائی داشته باشی بهت پیشنهاد میکنم با دلفی ، بدون استفاده از محیط گرافیکی ، و با استفاده از JWSCL ( که محصور کننده تعدادی از روتین های امنیتی ویندوز است ) یه سری برنامه ساده بنویسی . از همینجا کاربرد توابع سیستم عامل در دلفی رو در پائین ترین سطح یاد میگیری و بعدش طبیعتا باید به اندازه کافی مدل و معماری سیستم عامل رو بشناسی ( که مثلا خوندن کتاب Windows Internals میتونه شروع خوبی باشه ) و الی آخر .

حمیدرضاصادقیان
پنج شنبه 20 دی 1386, 19:11 عصر
ممنون اینپرایز.من کتابخانه JWSCL رو نیز دانلود کردم.به نظر شما اولین برنامه ای که میتونم باهاش شروع به کار کنم چیه؟شما چه چیزی رو پیشنهاد میدین؟

Inprise
پنج شنبه 20 دی 1386, 19:13 عصر
فرقی نمیکنه . برنامه بنویس . مجوزهای پروسه ها و سرویسها رو دستکاری کن . یه سرویس بنویس که دائما پروسه ها رو مانیتور کنه و اگه مجوز کسی تغییر کرد گزارش بده و ببنده ، هر چی . خیلی مهم نیست .

حمیدرضاصادقیان
جمعه 21 دی 1386, 16:59 عصر
ممنون. اینپرایز عزیز حالا منابعی که در مورد jwscl توضیح داده باشه وجود داره.یا site باشه بشه ازش کمک گرفت؟

Inprise
جمعه 21 دی 1386, 17:07 عصر
نه هر چی هست همونجاست . قرار نیست برای هر چیزی یه کتاب وجود داشته باشه . اسم تابع میگه چیکار میکنه بقیه اش هم نیاز به تجربه و سعی و خطا داره .