PDA

نسخه کامل مشاهده نسخه کامل : بهترین پکر و رمز نگاری تحت: ویستا ، 64x ، و برای نرم افزارهای تحت شبکه و نگارش .NET



piremard
24-12-2007, 10:37
خب من واقعا با این موارد مشکلا دارم
یعنی برنامه هایی که برای شبکه می نویسم رو نمی تونم پک کنم چون تقریبا همگی خطر سر ریز بافر دارند
با ویندوز ویستا و .net و 64 بیتی بودن ویندوز هم مشکلاتی رو دارم
این تاپیک رو زدم برای اون دسته از دوستانی که نرم افزارهایی مشابه تولید می کنند و نمی دونند که چطور باید از اونها حفاظت کنند

لطفا نه مباحث رو بسمت ثقل کلام پیش ببرید که هیچ کس جز عده ی معدودی ، تنها متوجه ی مطلب بشوند و نه اینطور باشه که بار علمی نداشته باشه
پیشتر ساکت می مانم تا نظرات کارشناسی تان رو بخوانم

persiankitty
29-12-2007, 09:51
پيرمرد ، يك جوري سوال پرسيدي كه كسي جرات نمي كنه ريپ بزنه . موضوع براي شبكه ات رو من اين طوري فهميدم كه Executable CGI منظورت هست. كه در غير اينصورت موضوع سر ريز بافر رو نمي فهمم. به طور كلي بهترين وسيله براي Pack كردن فايلهاي اجرايي UPX هست . دليلش هم اينه كه به دليل زياد بودن استفاده كنند و باز بودن سورس ، بيشتر مشكلاتش به مرور زمان پيدا ميشه و رفعش ميكنند. بعدش هم به طور پيش فرض شما بايد جلوي حملات DOS رو با چك و Block كردن آي پي ارسال كننده هاي Request بگيريد. همين تكه كد اضافي جلوي خيلي از اين درد و خون ريزي ها رو ميگيره .
در مورد ويندوز ويستا هم تا جايي كه من ديدم در صورتي كه شما از روشهاي عجيب و غريب براي محافظت استفاده نكنيد ( مثلا موضوع Data Execution Preventation DEP رو رعايت كنيد ) مشكل خاصي پيش نمياد و فرقي با ويندوز XP نداره. روي 64 بيتي بودن ويندوز همه مشكل دارند ( يك جورايي مثل اين روزها همه طپش نگاه ميكنند ، شما چطور؟ هست ) . خيلي از پكرها روش درست كار نميكنند ، دليلش هم همون كدهاي عجيب و غريب مربوط به محافظت هست. البته تا يكي دو سال ديگه اين مسايل همه اش حل ميشه ، چون به نظرم اين سيستم ها هنوز زود هست كه كد سالم براشون نوشته بشه . اين ويندوز ايكس پي كه من و شما امروز براش كد مي نويسيم ، سال 2003 عرضه شده... الان 5 سال از توليدش ميگذره و كيلومترها هم براش Critical Patch آمده ، احتمالا موضوع ويندوز ويستا و 64 بيتي ها مثل Advance Server 2003 , XP 64 و Vista 64 هم حل ميشه ... نگراني نداره .
اما موضوعي كه به عنوان يك درد همچنان باقي خواهد ماند ، پشتيباني نرم افزارها از سيستم هاي 98 و ME هست كه من هنوز راه حلي براي اينكه توليد كننده ها رو قانع كنم اين دوتا سيستم عامل رو كنار بگذارند پيدا نكردم.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

piremard
01-01-2008, 01:26
ممنون از پرشین کیتی عزیز بابت همراهی در موضوع تاپیک ! من همان روز که شما پست نوشتید ، پست شما رو خواندم اما چون کمی فکر لازم بود ، کامنتی نگذاشتم
واما مشکل من :
من مشکلم با سی جی آی اکسیکیوتیبل نیست ، نمونه :
فرض کنیم ما یک سوئیچ پراکسی برای یک اترنت نوشته ایم که فعالیت خودکاری داری با پورت های تصادفی ، نکته اگر در حین فعالیت یک فایل استریمینگ رو فعال کنیم تحت شبکه ، بدون اینکه پکر مورد نظر ما از چه نوعی هست ، بدون شک سیستم مورد نظر بخاطر سر ریز بافر از سرویس دهی باز می مونه
نمونه ی دوم : ما یک فایروال شبکه داریم که باید از یوزر کوئری برای یک پورت یا آی پی بگیره ، اگر مدت درخواست در بافر سیستم بمونه این سیستم هم هنگ می کنه
نمونه ی سوم : یک سرویس آنتی اسپای داریم در حالت ریل تایم در حال چک هست ، اینهم در شرایط خاصی با پکر مشکل داره
کلا مشکل من با برنامه های از این دست هست و البته لازم نیست که بگم upx اصلا در این شرایط پکر بحساب نمی آد ! من موضوع بحث رو به پکر دمیدا و .net ها می برم شاید به جواب بهتری برسیم
اینهم اضافه کنم : ما باید فیچر نرم افزاریمون برای سیستم عامل های جدید تعریف بشه چون تا پیش از این نسخه براحتی تحت هر نوع سیستم عاملی سازگار شده ، بعلاوه ی اون ما چون برای دنیا طراحی داریم نمی تونیم استاندارد های ایرانی رو لحاظ کنیم
سعی می کنم پست بعدی رو بعد از خواب تایپ نکنم تا محتوای علمی داشته باشه ، بی سوادی پیرمرد را ببخشید
فعلا

persiankitty
01-01-2008, 08:00
رابطه بين امنيت و سازگاري مثل رابطه بين سرعت و حافظه در بهينه سازي هست. همواره وقتي كه يك الگوريتم درست رو پياده سازي بكنيد ، يا براي سرعت و يا براي اندازه حافظه مصرفي امكان بهينه سازي وجود دارد. اگر در جايي موفق بشويم كه برنامه را براي هر دو موضوع بهينه كنيم يعني الگوريتم اوليه پياده سازي را بهينه كرده ايم.
براي كارهاي صنعتي و واقعي ( جداي كارهايي كه پروژه دانش آموزي در نظر گرفته مي شوند ) ، مشكل بين امنيت و سازگاري هميشه وجود خواهد داشت. اين روزها خيلي ها به Packer مورد استفاده من اشكال ميگيرند. اما عملا هر چيزي كه استفاده كرده ام به نحوي مشكل ساز شده است. خيلي ها مي پرسند كه چرا اين پكر ها را مي خرم در حالي كه امكان استفاده از كرك آنها وجود دارد. جواب همه اينها در همين مساله اي كه شما فرموديد خلاصه شده است ( عدم سازگاري ) . دميدا از انواع پيشرفته پكرها است كه دليل اصلي آن وجود ماشين مجازي در آن مي باشد. اما به طور كلي اين نحوه عملكرد براي همه پروتكتور ها يكسان است. دسترسي به نوشتن بر روي همه حافظه مورد نياز براي يك برنامه ، بازكردن اطلاعات اصلي ، پاك كردن كد بارگذاري و ... اين عمليات در درجه اول باعث كاهش سرعت مي شود. در جايي كه سيستم شما به TimeOut حساس باشد ، احتمال بروز مشكلات بسيار زياد است . مانند نمونه اول و دوم. در درجه بعدي بعد از يك كردن شما عملا موضوع Mapping Policy فايلهاي اجرايي را ناديده ميگيريد و همه آن را در حافظه بار مي كنيد كه اين هم باعث اضافه شدن مقدار حافظه مورد نياز مي شود. در مورد سوم شما يك قسمت كاملا بحراني به نام NDis Filter Driver داريد كه اين قسمت آنقدر بحراني است كه خيلي از موارد در بروز اشكال تاثير دارند. اينكه درخواستها به چه صورت پشتيباني مي شوند ، آيا صفي براي درخواستهاي ورودي وجود دارد؟ مقدار داخلي اين صف چه حجم از حافظه دارد و .....
پيرمرد ، بعضي از مسايل به صورت ذاتي به بعضي ديگر وابسته است. مثال هايي كه شما زديد ، نوعي برنامه سازي است كه به صورت ذاتي به اين مشكلات وابسته هستند. آنقدر من در باره مشكلات صحبت كردم كه سودا اسم مرا به "آقاي مشكلات" تغيير داد. من نظرم اين هست كه هيچ كدام از محافظ هاي موجود بدون اشكال نيستند. حتي اگر خودتان هم يكي بنويسيد ، به مشكلاتي برخورد مي كنيد. به نظر ميرسد كه روش سعي و خطا ، آزمون و استفاده از ابزارهاي خاص ( مانند پروفايلرها ، يا نوشتن شبيه سازها براي بوجود آوردن عملكرد تصادفي ) بهترين راه حل براي انتخاب باشد. طبيعتا ما برنامه را براي اينكه اجرا شود مي نويسيم، نه براي اينكه كاربري تماس بگيرد و آنچه شايسته خودش هست نثارمان كند ، پس شايد انتخاب امنيت كمتر در ازاي سازگاري بيشتر گزينه بهتري باشد.