PDA

View Full Version : معرفی دی کامپایلرهای دات نت و نحوه ی محافظت از اسمبلیها



Vahid_Nasiri
پنج شنبه 03 مهر 1382, 12:10 عصر
دقیقا همان بلایی که سر فایلهای class. جاوا آمد به نظر می رسد که سر دات نت هم آمده و خواهد آمد!!

نمونه ی آنلاین!
http://www.remotesoft.com/salamander/

نمونه ی معمولی!
http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector.zip
http://www.saurik.com/net/exemplar/

احتمالا این یک مورد را چند سال پیش دیده اید: (دی کامپایلر کامل جاوا)
http://www.geocities.com/zz_xu/jad.html
http://kpdus.tripod.com/jad.html
و
http://www.brouhaha.com/~eric/computers/mocha.html

Farhad.B.S
پنج شنبه 03 مهر 1382, 18:30 عصر
خوب با این حساب پلتفرم دات نت هم شد open source ! با همین برنامه میشه سورس اسمبلی های built-in دات نت رو هم دید :shock: :shock: !

Inprise
دوشنبه 21 مهر 1382, 13:58 عصر
همونطوری که برای جاوا اینطور نشد برای دات نت هم اینچنین نخواهد شد .

الف) با توجه به اینکه دات نت و جاوا دارای تولید کننده های باینری ( میدونم این عبارت آخری چندان علمی نیست ! ) روی "تمام سیستم های مشتری" هستند انکد کردن کد ماژولهای اصلی برنامه با تکنیک های آسیمتریک و دیکد و سپس کامپایل کردن اونها

ب) ترکیب تکنیک فوق با کد استریمینگ - به مفهوم کامپایل دینامیک کد انکد شده

ج) طراحی ساختار شی محور پیچیده و استفاده از اینترفیس های متعدد

د) استفاده از ابزارهای شناسائی کننده پروسه های مشکوک به دیباگر یا پچر یا ... و توقف آنها

و ده ها تکنیک دیگر میتواند تا حد قابل قبولی ایمنی برنامهء شما را بالا ببرد .

Vahid_Nasiri
دوشنبه 21 مهر 1382, 20:09 عصر
برادر اینپرایز!
حتی اگر شما exe های غول پیکر دلفی را با exe کامپرسورها فشرده کنید و سپس انکدینگ و غیره را مطابق الگوریتم RSA و غیره روی آن انجام دهید هم به سختی قابل نفوذ می شوند.
بحث روی کد باینری خالص تولید شده در ابتدای کار است نه بعد از گذشتن از هفت خوان رستم.

Inprise
سه شنبه 22 مهر 1382, 08:25 صبح
برادر اینپرایز!
حتی اگر شما exe های غول پیکر دلفی را با exe کامپرسورها فشرده کنید و سپس انکدینگ و غیره را مطابق الگوریتم RSA و غیره روی آن انجام دهید هم به سختی قابل نفوذ می شوند


برادر نصیری !

الف ) از اینکه دوست نسل سومی چون شما ( همونطوری که بنده ادبیاتم رو قدری شبیه ادبیاتش کردم ) بالاخره از لفظ "برادر" استفاده کرد مایه بسی خرسندی ست ! :wink: التماس دعا دارم سید !! :twisted:


ب) عاقلان دانند که دو مزیت بزرگ دلفی نسبت به تمام محیطهای تولید نرم افزار win32 اولا" سرعت بی بدیل کامپایلر و دوم فشردگی "خروجی نهائی" برنامه های آن است . یقینا" در مقایسه با ویژوال سی ( مشخصا استفاده از MFC منظورمه ) و ویژوال بیسیک ( نسخه شش ) و دات نت ، فی المجموع خروجی دلفی کوچکتر است . ( در مورد اول اگر دی ال ال های مربوطه دینامیک استفاده شوند نتیجه کل خروجی از خروجی مشابه دلفی بیشتر است و اگر استاتیک استفاده شوند باز هم exe مربوطه از exe دلفی بزرگتر است . در باب ویژوال بیسیک که لازم نیست توضیح واضحات بدم در باب دات نت هم با در نظر گرفتن 21 مگا بایت ران تایم که باید موجود باشه ، مقایسه فایلهای اجرائیش با دلفی غیر علمی و البته غیر عادلانه ست ! :roll: )

ج) این خودش دو بخش داره :

ج.الف) الگوریتهائی چون RSA با همان ترکیب ابتدائی برای انکدینگ فایلهای اجرائی کاربردی ندارند .

ج.ب) بدون هیچ فشرده سازی و رمزنگاری بنده فایل ساده Hello World دلفی رو به شما خواهم داد به همراه یک کد کوچولوی اضافی . شما و تمام دوستانی که دارید و دوستانی که ندارید اگر توانستید اون کد رو به من بدید من به " وحید نصیری" ایمان خواهم آورد ! اگر نتونستید ( که نخواهید توانست و دلیلش بارها مطرح شده واگر لازم باشه بازم مطرح میشه ) به " حقیقت درخشان و انکار ناپذیر اینپرایز" ایمان بیاورید که تعلل موجب خسران است ! :D :twisted: ( داخل پرانتز : خواستم یه گیری هم به اون کلمه " باینری" تو خط آخرت بدم و بعدش بگم وحید جان ! برو دو خط دات نت (!) بنویس میفهمی که دات نت اصولا چیزی به مفهوم واقعی " باینری" تولید نمیکنه لذا اصولا" با امثال دلفی یا سی قابل مقایسه نیست و بعدش از کلماتی چون جست این تایم کامپایلر و ..الخ استفاده کنم و ... بعد یهو یادم افتاد خودت استاد دات نتی ! خجالت کشیدم اینا رو بگم !! خیلی چاکریم مهندس :oops: :oops: :wink: )

اینپرایز بد جنس :twisted:

Vahid_Nasiri
سه شنبه 22 مهر 1382, 20:30 عصر
الف) خوبه! حقیقتا ادبیاتت خیلی خوب شده. فقط یک مورد رو دوستانه بهت می گم چون ....... (ارادت و از این جور حرفها و غیره!) :
تو روی رفتار بچه ها در این سایت خیلی تاثیر گذار هستی. بچه ها عموما از کسانی که با سواد و صریح هستند خوششون می یاد و تقلید می کنند. لحن اکثر جملاتت در گذشته ها :wink: به شدت تند بود و واقعا روی خیلی ها در این سایت تاثیر گذاشته بود. بعد از غیبت صغری (!) کمی لحن ها ملایم تر شده. خلاصه اش بچه ها دوستت دارند فقط خیلی باید مواظب باشی چون الگو هستی .........

ب) در مورد باینری از لفظ خودت استفاده کردم و گرنه لزومی به طرح آن نبود :wink:

ج) الف) بله! در مورد قسمت هایی مانند صفحات لاگین و یا ...... کاربرد دارد . خصوصا کارتهای اعتباری هوشمند جهانی و غیره ......
ج) ب) منظور من هم همین بود! یعنی بیشتر از این جاوا و غیره قابل ریسورس شدن هستند که شما در ابتدا آنرا نفی کردید.

Inprise
چهارشنبه 23 مهر 1382, 08:13 صبح
تو روی رفتار بچه ها در این سایت خیلی تاثیر گذار هستی

بریتنی اسپیرز هم روی جوانان خیلی تاثیر گذار بوده ! :wink:


بعد از غیبت صغری (!) کمی لحن ها ملایم تر شده. خلاصه اش بچه ها دوستت دارند فقط خیلی باید مواظب باشی چون الگو هستی .........

بنده عموما ملایم هستم ( و البته بودم ) مگر اینکه اینتراپت احمقانه ای باعث تغییر اوضاع بشه ! مثل نوشتن یک مقاله مضحک توسط یه دوستی و نگاشتن نقدی بر آن توسط اینپرایزی و هوچی گری همون " یه دوستی" و نهایتا توبیخ مدیر مر اینپرایز بی گناه را ! ملتفتی که ... ؟


در مورد قسمت هایی مانند صفحات لاگین و یا ...... کاربرد دارد . خصوصا کارتهای اعتباری هوشمند جهانی و غیره ......

فقط مورد دوم درسته . RSA و اعوان و انصارش در ساختارهائی مبتنی بر PKI ( پابلیک کی اینفرا استراکچر ) کاربرد دارند مثل اسمارت کارت ها در محیط های دامنه ای ویندوز 2000 و 2003


) ب) منظور من هم همین بود! یعنی بیشتر از این جاوا و غیره قابل ریسورس شدن هستند که شما در ابتدا آنرا نفی کردید

الف) منظورت دقیقا همین نبود !! :twisted:
ب) بین جاوا و محصولات دات نت در بحث تحمل "دیکامپایل" تفاوتی نیست !
ج) آوردن اسم دلفی اصلا" محلی از اعراب نداشت و حاکی از یک حرکت جناحی توسط عده ای از برنامه نویسان سابق ویژوال بیسیک و فعلی سی شارپ بود که ما به لطف و بزرگواری خودمون بخشیدیمشون ! :D

اینپرایز بچه پر رو :roll: :roll:

ara_prg
پنج شنبه 02 مهر 1383, 11:28 صبح
دوستان عزیز همانطور که می دانید برنامه های نوشته شده به زبان Net. بصورت کامل می توان Decompile کرد. من مدتی است که دنبال یک Decompiler خوب می گردم اما پیدا نمی کنم. می خواستم اگر کسی سراغ دارد ما را هم در جریان قرار دهد.

با تشکر از همه اساتید :oops:

Farhad.B.S
جمعه 03 مهر 1383, 10:18 صبح
http://www.aisto.com/roeder/dotnet/

ara_prg
یک شنبه 05 مهر 1383, 09:13 صبح
اقا دست شما واقعا درد نکند :flower: :flower:

اما یک سوال دیگر آیا راهی هم برای جلوگیری ار Decompile شدن برنامه های Net. وجود دارد چون با این برنامه به راحتی می توان سورس هر برنامه نوشته شده را دید.

ممنون از راهنمائی :تشویق:

Gidora
پنج شنبه 16 مهر 1383, 15:44 عصر
اما یک سوال دیگر آیا راهی هم برای جلوگیری ار Decompile شدن برنامه های Net. وجود دارد چون با این برنامه به راحتی می توان سورس هر برنامه نوشته شده را دید.
یک سری Obfuscator برای دات نت ساخته شده که تا حدی میتونه موثر باشه. در این لینکها میتونید اطلاعاتی در این زمینه و همچنین برخی برنامه‌های ارایه شده رو ببینید:

Demeanor for NET (http://www.wiseowl.com/Products/products.aspx)
Remotesoft Salamander (http://www.remotesoft.com/salamander/obfuscator.html)

البته نرم افزارها به طور رایگان قابل دریافت نیستند.

Hossein Margani
چهارشنبه 26 مرداد 1384, 08:55 صبح
چطور میشه محتویات یک DLL با هیچ برنامه ای دیده نشه. یک برنامه هست که کد منبع یک DLL رو به هر زبانی (البته یک DLL که به اصطلاح CLR باشه) نشون میده. >>>> http://www.aisto.com/roeder/dotnet اما بعضی DLL هایی رو دیدم که محتویاتشون قابل تشخیص نیست. چه جوریه؟ :گیج: :)

omid_Ahmadi
چهارشنبه 26 مرداد 1384, 16:05 عصر
DLLهای تولید شده به وسیله .NET همه به زبان IL ترجمه میشن و در دیسک ذخیره میشن و کد IL اونها به راحتی قابل مشاهده است. اگر امنیت کد برنامه براتون خیلی مهمه میتونید از ngen.exe که همراه با .NET Framework SDK ارایه شده استفاده کنید و کد اسمبلی یا Native Code تولید کنید. که البته با این کار از امکاناتی که CLR ارایه میده محروم میمونید.
البته راههای دیگه ای هم هست مثلا این که قسمتی از برنامه که امنیت کد در اون خیلی مهمه به کد اسملبی تبدیل بشه و بقیه برنامه به IL کامپایل بشن و یا استفاده از برنامه هایی که با تغییر اسامی توابع و فیلدهای یک کلاس از تشخیص عملکرد اون جلوگیری میکنن (که البته این را زیاد هم امن نیست). شاید منظور از شما از این که محتویات اون فایل قابل تشخیص نیست همین مورد آخر باشه. ولی در هر صورت راهی برای اینکه کد IL یک اسمبلی .NET دیده نشده وجود نداره.
توضیحات بیشتر در این مورد رو در بخش مقالات .NET Framework بخش بررسی معماری .NET گفتم، میتونی به اونجا مراجعه کنی

مطهر
چهارشنبه 26 مرداد 1384, 23:26 عصر
امنیت کد؟IL ؟؟ جالبه !!ادامه بدید!؟
اینکه حالا کسی بتونه کد IL را ببینه چه استفاده ای می تونه از اون داشته باشه.
از اینکه کد IL را به راحتی می توان بدست آورد می شود سورس را بدست آورد و یا قسمتی از سورس که مثلاً پسورد را چک میکنه؟

در مورد IL بیشتر بدونم ؟یه مرجع معرفی کنید

omid_Ahmadi
پنج شنبه 27 مرداد 1384, 08:55 صبح
اینکه حالا کسی بتونه کد IL را ببینه چه استفاده ای می تونه از اون داشته باشه.


خوب اگر سورس ارزش وقت گذاشتن رو داشته باشه میشه سورس اصلی رو از روی کد IL تشخیص داد به خاطر همین مایکروسافت پیشنهاد میکنه که اگر امنیت کد اهمیت زیادی داره حتما قبل از توزیع کردن اون با ngen اون رو به کد native تبدیل کرد.


در مورد IL بیشتر بدونم ؟یه مرجع معرفی کنید


Applied Microsoft .NET Framwork Programming - Jeffery Richter - MS Press


اگرهم خواستی فایل نهایت رو بده من برات کد کنم


میشه بیشتر توضیح بدید منظورتون از کد کردن فایل نهایی چیه؟

omid_Ahmadi
پنج شنبه 27 مرداد 1384, 21:21 عصر
ngen یکی از برنامه هایی است که با .NET Framework SDK ارایه شده و وضیفه اون اینه که اسمبلی هایی که به کد IL در دیسک ذخیره شدهخ اند رو به کد اسمبلی (Native Code) کامپایل میکنه و کد اسمبلی رو در دیسک ذخیره میکنه. CLR هم موقع اجرای برنامه وقتی ببینه که نسخه Native اسمبلی مربوطه در دیسک هست از اون نسخه به جای نسخه IL استفاده میکنه.
چون (مسلما) امنیت کد اسمبلی از کد IL بیشتره این عمل موجب امنیت بیشتر کد میشه ولی خوب دیگه CLR نمیتونه امکاناتی رو که به managed code ها میده (مثل GC) به این اسمبلی هم بده.

برای اطلاعات بیشتر در این رابطه میتونی تاپیک زیر رو ببینی:

http://www.barnamenevis.org/forum/showthread.php?t=22522

Babak-Aghili
پنج شنبه 27 مرداد 1384, 21:21 عصر
www.JungleCreatures.com

بابک زواری
جمعه 28 مرداد 1384, 17:43 عصر
با کمک یک DeCompiler که داشتم ؛ یک نرم افزاری رو که Trial بود رو ریسورس کردم و نحوه ذخیره سازی و
الگوریتم دریافت و پاسخ کاربر به کلمه کلیدی در آوردم.
البته این نرم افزارهای Decompiler تا اینجا به کار میان (یعنی من تا این مدل رو دیدم ) که با دریافت فایل اجرایی سورس اونو میدن و اگر شما Objectهایی رو در فرمها یا هر جای دیگه داشته باشید رو بهتون نمیده
(منظور فرم اصلی بهمراه فرم و اشیا و ....) به همین خاطر نمیشه سورس بدست اومده رو دوباره به EXE تبدیل کرد که اگر میشد چی میشد !!
نمونه برنامه ایی که میشه سورسش رو بدست آورد مثلا کامپوننت TeeChart هست که میتونید از سایتش بگیرید و سورسش کنید .

Peyman_Ranjbar
شنبه 29 مرداد 1384, 00:27 صبح
با استفاده از برنامه های obfuscator بلایی سر اسمبلی بیارید که قابل فهم نباشه

9rays.net
http://www.zenocode.com

omid_Ahmadi
شنبه 29 مرداد 1384, 08:56 صبح
با استفاده از برنامه های obfuscator بلایی سر اسمبلی بیارید که قابل فهم نباشه

زیاد در امنیت تاثیری نداره باز هم متنهای مهم مثل دستورات SQL و یا همونطور که آقای زواری فرمودند روش ذخیره سازی و نحوه دریافت نام کاربر و کلمه عبور به راحتی قایل تشخیصه.


با کمک یک DeCompiler که داشتم ؛ یک نرم افزاری رو که Trial بود رو ریسورس کردم و نحوه ذخیره سازی و الگوریتم دریافت و پاسخ کاربر به کلمه کلیدی در آوردم.

میشه قسمتهای مهم برنامه رو از قبیل همین قسمتها و یا متنهای مهم و ... رو در یک کلاس مجزا قرار داد و اون کلاس رو با ngen به کد native تبدیل کرد. مابقی برنامه رو هم با obfuscator ها کد کرد که قابل فهم نباشه. با این کار یه مقداری امنیت تامین میشه.


به سایت شرکت remote soft هم سری بزنید


توی سایت همین شرکت در مورد نرم افزار protectorشون نوشتن که اسمبلی دات نت رو به کد native تبدیل میکنه. خوب این کار رو که خود .NET Framework هم انجام میده! کسی نمیدونه فرق این برنامه با Native Code Generator خود .NET چیه؟ یا اصلا فرقی داره یا نه؟

Peyman_Ranjbar
شنبه 29 مرداد 1384, 16:47 عصر
میشه در مورد ngen بیشتر توضیح بدید؟
نحوه بکاربردن اون
چون ngen فقط یه native image در GAC کپی می کنه

omid_Ahmadi
شنبه 29 مرداد 1384, 21:22 عصر
ngen یک نسخه شامل کد native رو در کنار فایلی که محتوی کد IL هست کپی میکنه. وقتی CLR ببینه که نسخه native فایلی که احتیاج داره وجود داره از اون به جای فایل شامل IL استفاده میکنه

مطهر
شنبه 29 مرداد 1384, 23:51 عصر
با استفاده از برنامه های obfuscator بلایی سر اسمبلی بیارید که قابل فهم نباشه
9rays.net
http://www.zenocode.com
من اینکار را با برنامه ای که همراه دات نت نصب میشه انجام دادم IL را حسابی عوض میکنه
در مورد دستورات SQL و نحوه ی چک کردن پسورد هم دارم بررسی می کنم


زیاد در امنیت تاثیری نداره باز هم متنهای مهم مثل دستورات SQL و یا همونطور که آقای زواری فرمودند روش ذخیره سازی و نحوه دریافت نام کاربر و کلمه عبور به راحتی قایل تشخیصه.

چک کردن پسورد را با الگوریتم های رمزنگاری ذخیره و بازیابی می کنند . این طور نیست‌ ؟؟

omid_Ahmadi
یک شنبه 30 مرداد 1384, 07:20 صبح
من اینکار را با برنامه ای که همراه دات نت نصب میشه انجام دادم IL را حسابی عوض میکنه

درسته، حسابی کد رو عوض میکنه ولی باز هم اگر سورس خیلی مهم باشه و ارزش وقت گزاشتن رو داشته باشه میشه اون رو decode کرد. چون اگر این نرم افزارها زیاد هم فایل رو تغییر بدن دیگه CLR نمیتونه اطلاعاتی رو که لازم داره از فایل استخراج کنه و نمیتونه از اون فایل استفاده کنه.


چک کردن پسورد را با الگوریتم های رمزنگاری ذخیره و بازیابی می کنند . این طور نیست‌ ؟؟

درسته، ذخیره پسورد با الگوریتمهای رمزنگاری صورت میگیره ولی منظور آقای زواری، فهمیدن روش تولید پسورد بود که در سورس وجود داره.
برای تامین یک سطح امنیت مطلوب همونطور که گفتم بهترین راه میتونه قرار دادن اطلاعات مهم و قسمتهای مهم سورس در یک کلاس مجزا و کامپایل اون کلاس به Native Code باشه.

BitMap
جمعه 18 فروردین 1385, 13:18 عصر
چگونه می توان یک برنامه به زبان سی شارپ را روی یک
کامپیوتر که framework را ندارد اجرا کرد

اگر نمی شود پس چگونه خیلی از نرم افزارها بدون framework
اجرا می شوند.مثلا ویروس ها

اَرژنگ
جمعه 18 فروردین 1385, 14:01 عصر
چگونه می توان یک برنامه به زبان سی شارپ را روی یک
کامپیوتر که framework را ندارد اجرا کرد

اگر نمی شود پس چگونه خیلی از نرم افزارها بدون framework
اجرا می شوند.مثلا ویروس ها

ویروس ها را با زبانهایه دیگر مینویسند، مثلاً با
Delphi, C, Assembly

ali_kolahdoozan
سه شنبه 19 اردیبهشت 1385, 06:34 صبح
با سلام از دوستان و متخصصین عزیز درخواست دارم جواب این سوالات رو بر اساس شنیدها ندن چون خودم هم زیاد دربارش شنیدم بلکه اگر خودشون انجام دادن . من رو هم مورد لطف قرار بدن

1- برنامه ای بود و هست به نام refox و مشابه های اون که مایه مصیبت برنامه نویسهای فاکس پرو و visual foxpro بود . و هست . حالا شنیدم که مشابه اون برای #c غیره هم هست و یک عده چه خالیهایی در موردش برام بستن که چه کارها می کنه . آیا واقعا هست مثلا برای 2005 #‍c اگر هست خوب چطوری جلوش رو بگیریم (لطفا جواب فراتر از تاپیک چند وقت پیش آقای زواری باشه )

2- یک ocx دارم که باید حتما register بشه تا کار کنه . من اینکار رو با ocx register یا در قسمت run می تونم انجام بدم اما برای pack کردن نرم افزار ظاهرا این یکی هم به بدبختیهام با install shild اضافه شد . مگه اینکه یکی اینجا یه راهی براش بده که متشکر میشم .



با تشکر .

شاگرد همیشگی این سایت

once4ever
سه شنبه 19 اردیبهشت 1385, 07:33 صبح
(درمورد سوال اولت که تو همون تاپیک یه برنامه معرفی شد که resource میکرد - البته نه مثل refox - و انگار راهی جز پیچیده کردن و تیکه تیکه کردن برنامه و اسمبل کردن بعضی قسمتهای مهمش پیدانشد!)

2. فکرکنم اگه ocx و فایلاشو داخل پوشه مربوط به winsys کپی کنی خودش نصب بشه. درضمن اگه از ocx یه properties بگیری شاید خاصیتی به اسم Advanced, Registration داشته باشه که اونو برابر auto بذار (نمیدونم هست یا نه!)
درموردهرکدوم به نتیجه رسیدی خبرم کن :چشمک:

ali_kolahdoozan
سه شنبه 19 اردیبهشت 1385, 11:05 صبح
مسئله 2 با همون کپی حل شد . موقع نصب درستش می کنم .

اما موضوع 1 رو گنگ گفتید آیا می تونن راحت سورس کنند یا نه

3 - یکی دیگه هم اضافه شد برنامه ای می دونم هست که dll ها رو می زنه دست exe آیا سرعت اجرا رو پایین نمی یاره . آیا درست کار می کنه . و در ضمن اگه باهاش کار کنیم آیا فایل از فرمت دات نت بیرون نمیاد اگه بیاد دیگه سورس هم نمیشه

anubis_ir
سه شنبه 19 اردیبهشت 1385, 11:54 صبح
فایل exe یا اسمبلی برنامه خودت را با استفاده از برنامه زیر open کن و نتیجه رو ببین:
http://www.aisto.com/roeder/dotnet/Download.aspx?File=Reflector

once4ever
سه شنبه 19 اردیبهشت 1385, 12:11 عصر
این برنامه ها میان source برنامه ات رو نشون میدن ولی چیزی به اسم yourproj.csproj درست نمیکنند.

برنامه ای می دونم هست که dll ها رو می زنه دست exe
اینو دیگه خیلی حرفه ای گفتی نفهمیدم:چشمک:
ولی اگه برنامه ای باشه که فایل dll رو داخل خودش import کنه و exe درست کنه اونوقت به شرطی باز نمیشه که هود این برنامه win32 باشه

once4ever
یک شنبه 05 شهریور 1385, 19:06 عصر
در ادامه صحبتهایی که اینجا (http://barnamenevis.org/forum/showthread.php?t=36829&page=8) شد
http://barnamenevis.org/forum/showthread.php?t=36829&page=8
از دوستان میخوام درمورد موضوعات زیر صحبت کنند:
1. از چه برنامه ای برای کدگذاری برنامه های خودتون استفاده میکنید؟
یا از چه روشی برای محافظت سورس برنامه هاتون استفاده میکنید؟

2. از چه برنامه ای برای دیکد کردن اپلیکیشن های ساخته شده با دات نت استفاده میکنید؟

نکته اول اینکه هرکدوم خواستید جواب بدید و نکته بعدی اینکه صحبتهایی که میشه فقط با هدف افزایش امنیت برنامه ها هست.
(تاپیک جدید زدم که از صحبتهای اضافه پرهیز بشه)

m_nejad
چهارشنبه 08 شهریور 1385, 15:10 عصر
قبلا بحث شده:
http://barnamenevis.org/forum/showthread.php?t=36829&highlight=decode

Peyman_Ranjbar
پنج شنبه 09 شهریور 1385, 02:20 صبح
سلام
برای کد کردن اسمبلی ها از dotfuscator که همراه Visual Studio .net نصب میشه استفاده میکنم.
درست نمی دونم امنیت کافی داره یا نه.
خیلی دوست دارم این بحث ادامه پیدا کنه و به نتیجه برسه.

Amir Oveisi
یک شنبه 01 بهمن 1385, 17:00 عصر
http://msdn2.microsoft.com/en-gb/library/6t9t5wcf(VS.80).aspx

benyamin_pc
دوشنبه 02 بهمن 1385, 02:10 صبح
حجم نهایی که بعد از این کار تولید می شود از حجم فایلی مشابه همین که با دلفی عادی نه دات نت نوشته شده بیشتر است یا کمتر؟
با این کار سرعت کار پایین می آید یا نه؟
امنیت کد را بالا می برد؟
این روش استاندارد است یا با خود فریم ورک کار کنه بهتره؟
همین عمل را با Xenocode انجام بدیم بهتره یا با همین؟
به برنامه Xenocode میشه اعتماد کرد؟(از لحاظ امنیتی و..)

Mehrafrooz
دوشنبه 02 بهمن 1385, 11:53 صبح
حجم نهایی که بعد از این کار تولید می شود از حجم فایلی مشابه همین که با دلفی عادی نه دات نت نوشته شده بیشتر است یا کمتر؟
با این کار سرعت کار پایین می آید یا نه؟
امنیت کد را بالا می برد؟
این روش استاندارد است یا با خود فریم ورک کار کنه بهتره؟
همین عمل را با Xenocode انجام بدیم بهتره یا با همین؟
به برنامه Xenocode میشه اعتماد کرد؟(از لحاظ امنیتی و..)
در مورد چند تا سوالی که پرسیدید قبلا بحث شده و مقاله ای هم در سایت هست .
در مورد xeno هم باید بگم که از اون برای محافظت از سورس میشه استفاده کرد ولی علیرغم گفته خودش که دات نت رو هم میتونه با برنامه پک کنه و دیگه به اون نیازی نباشه ، در عمل اینطوری نیست و برنامه دیگه اصلا کار نمیکنه ( تا جایی که من تست کردم و دیدم ) . ولی برای محافظت خوبه .

Amir Oveisi
چهارشنبه 04 بهمن 1385, 19:05 عصر
حجم نهایی که بعد از این کار تولید می شود از حجم فایلی مشابه همین که با دلفی عادی نه دات نت نوشته شده بیشتر است یا کمتر؟
تا اونجایی که من میدونم یکسانه

با این کار سرعت کار پایین می آید یا نه؟
بله چون در حالت استاندارد کدهای برنامه در حال اجرا کامپایل میشه ( تابع به تابع) ولی اگه native بشه برنامه از کدهایی که کامپایل شده قبلا و در native image قرار داره استفاده میکنه و این باعث افزایش سرعت میشه

امنیت کد را بالا می برد؟
به نظر من نه! چون بازم میشه با بعضی برنامه ها dissassemble کرد و کدهاشو دید

همین عمل را با Xenocode انجام بدیم بهتره یا با همین؟
این بستگی به خودت داره ( اگه xenocodeرجیستر شده داری بهتره با اون کار کنی )

به برنامه Xenocode میشه اعتماد کرد؟(از لحاظ امنیتی و..)
باید تست کنی و خودت به نتیجه برسی!

omid_Ahmadi
چهارشنبه 11 بهمن 1385, 13:34 عصر
با این کار سرعت کار پایین می آید یا نه؟


با این کار تا حدی سرعت برنامه افزایش پیدا می کنه، یعنی در تئوری برنامه ای که از فریم ورک استفاده نمی کنه عملکرد سریعتری داره، اما نمیشه نتیجه گرفت که با تبدیل برنامه به کد نیتیو حتما سرعت اجرا هم افزایش پیدا می کنه، اولا این افزایش سرعت اصلا محسوس نیست، در ثانی برنامه نویس اگر به کارش مسلط باشه می تونه کدی تولید کنه که با استفاده از فریم ورک هم سرعت اجرای مناسبی داشته باشه.



امنیت کد را بالا می برد؟


این موردیه که میشه به صورت قطعی بهش جواب داد. استفاده از این نوع برنامه ها برای حذف فریم ورک باعث افزایش امنیت میشه (امنیت از نظر حفاظت از کد منظورمه، نه از جنبه های دیگه).



این روش استاندارد است یا با خود فریم ورک کار کنه بهتره؟


خوب بدیهیه که استفاده از فریم ورک روش استاندارده.



همین عمل را با Xenocode انجام بدیم بهتره یا با همین؟
به برنامه Xenocode میشه اعتماد کرد؟(از لحاظ امنیتی و..)



منظورت رو از همین متوجه نشدم، اما ساختار برنامه هایی که این کار رو انجام می دن مشابهه، بنابراین تفاوتی نداره که از کدوم برای حذف فریم ورک استفاده کنی. قبلا در یکی از تاپیک ها به تفصیل در مورد نحوه عملکرد برنامه هایی که فریم ورک رو حذف می کنن توضیح داده بودم.

نتیجه گیری:

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

Alireza_Salehi
چهارشنبه 11 بهمن 1385, 13:52 عصر
با احترام به نظرات همه دوستان

هر کدوم از روشهای با فریورک و بی فریمورک مزایایی داره البته حتما می دونید که تعداد زیادی از زبان ها تحت دات نت ارائه می شوند که خود موید بهتر بودن این روش است.

.NET Framework and Languages (http://www.startvbdotnet.com/dotnet/languages.aspx)

اصلا معلوم نیست شما چه اصراری به نبودن این فریمورک (http://en.wikipedia.org/wiki/.NET_Framework) دارید ، کلا دلفی که وضعیتش معلومه اگر اون روش قبلی جوابگو بود چرا بورلند تحت دات نتش کرد؟

بودن فریمورک به هیچ وجه عیب نیست و با وجود فریمورک در سرویس پک 2 و ویستا دیگه این بحثا معنی نداره !

به نظرم اگر یه کمی درباره مزیتهای زبان های دارای فریمورک تحقیق کنید دیگه دنبال حذف کردن فریمورک نمیرید، به هر حال هر فن آوری جدیدی یه هزینه هایی هم داره!

(با توجه با این که جاوا هم از همین روش استفاده می کنه) !



.NET Framework Advantages (http://www.startvbdotnet.com/dotnet/frameworkadvantages.aspx)

Benefits of the Microsoft .NET Framework (http://support.microsoft.com/kb/829019)

.NET Overview, Advantages And Features (http://www.webpronews.com/expertarticles/expertarticles/wpn-62-20060613NETOverviewAdvantagesandFeatures.html)

.Net develops advantages over Java (http://news.zdnet.com/2100-9595_22-1000027.html)

omid_Ahmadi
چهارشنبه 11 بهمن 1385, 14:04 عصر
دلیل تمایل به حذف فریم ورک در پست قبلی عنوان شده:



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

netspc
چهارشنبه 11 بهمن 1385, 16:48 عصر
سلام
بببخشید که پابرهنه پریدم وسط :لبخند:
ولی یه سوال در مورد امنیت کد در محیطهایی که بستگی به ماشین مجازی دارند مانند دات نت و جاوا .
راستیش من در مورد دات نت تا اونجایی که میدونم نرم افزارهای مختلفی برای مقابله با نفوذ مانند آنتی دیباگرها و آنتی دی اسمبلرهای مختلفی وجود دارند مانند:
http://www.remotesoft.com/salamander/protector.html
و یا .net obfuscator ها که حتماً دوستان آشنایی با آنها دارند.
ولی در مورد جاوا هیچ اطلاعی از نرم افزاری ندارم و اینکه بدلیل اینکه جاوا کدهای خود را بصورت class کامپایل میکند و در واقع هیچگونه لفافه ای برای binary image خود مانند PE ویا COFF و یا ELF انتخاب نمیکند سریع تر از دات نت میتوان به کد اصلی دسترسی پیدا کرد.
حال اصل مطلب :با وجود چنین نرم افزارهای یاد شده چه دلیلی داره که از مزیت های .net framework استفاده نکنیم؟(یکی از مزیتهای مهم دات نت فریم ورک استفاده GAC میباشد).
ممنون میشم دلایل شما را برای اینکار بدونم و در آینده از تجربیات با ارزش دوستان استفاده کنم

benyamin_pc
پنج شنبه 12 بهمن 1385, 02:28 صبح
آقای احمدی از جواباتون خیلی متشکرم اما یکی دیگه از تمایل هایی که میشه داشت برای حذف فریم ورک اینه که الان فریم ورک به طور پیش فرض رو ویندوزها نیست و حالا تا بیاد ویستا برا خودش انقدر جا باز کنه که عمومی شه خیلی راه تازه رو اونم فکر می کنم فقط فریم ورک 1 هست
تازه با تمام این احوال اگر هم عمومیم شه و رو همه ویندوزا فریم ورک روز همیشه باشه بازم نمیشه در حد یه Win32 روش حساب کرد
البته من به دلیل سرعت یا حجم فایل خیال این کارو ندارم فقط می خواستم تفاوتش رو بدونم

اما در مورد مذیتهای فریم ورک میشه کمی توضیح بدین-منظورم اینه زبانی که فریم ورک نداشته باشه نمی تونه کارهایی انجام بده که یه زبان با وجود فریم ورک انجام میده؟(چه کارهایی؟)چه موانعی وجود داشته که نمیشده یک زبان مستقل از فریم ورک به همین قدرت ساخته شه؟در واقع فریم ورک اومده چه نواقصی رو رفع کرده؟

omid_Ahmadi
پنج شنبه 12 بهمن 1385, 08:32 صبح
مشکل مطرح شده اصلا مهم نیست چون با استفاده از یه برنامه نصاب میشه اون رو برطرف کرد. تنها مشکلی که در بالا ذکر کردم می تونه باعث حذف فریم ورک بشه.

در مورد سوال دومتون فرک کنم در این تاپیک قبلا توضیح دادم.
http://barnamenevis.org/forum/showthread.php?t=41559

benyamin_pc
پنج شنبه 12 بهمن 1385, 11:56 صبح
با سلام
آقای احمدی اگه Native کردن کد سرعت رو به حد اکثر می رسونه و باعث امنیت بیشتر میشه اما باعث نمیشه که برنامه بدون فریم ورک کار کنه چرا از اول خود دات نت این کار رو نمی کنه؟
دلیل منطقی و 100% شما برای اینکه مایکروسافت تا حالا خودش برنامه هاش رو (برنامه های بزرگ و قوی{که نیاز به سرعت بالا دارن}) با دات نت نوشته چیه؟فقط چون Updatesh زمان بر؟
وقتی یه کلاس رو Native کنیم چطور میشه با بقیه کد که Native نیست ربطش داد؟

omid_Ahmadi
پنج شنبه 12 بهمن 1385, 13:40 عصر
مطالبی که در زمینه معماری فریم ورک .NET نوشتم دلیل این مورد رو مشخص می کنه، ایضا نحوه ارتباط کدهای Native رو به کدهای managed. می تونید اونها رو مطالعه کنید.

ali_kolahdoozan
پنج شنبه 12 بهمن 1385, 13:45 عصر
آقای احمدی عزیز سلام

میشه یک جواب قاطع به من بدید بر اساس تجربه خودتون . دات نت 2005 رو شما تونستید بدون فریم ورک run کنید . یعنی برنامه کار کنه . برای من هیچی مهم نیست در اینجا مثل امنیت و .... فقط می خواهم بدونم شما این کار رو کردید ؟‌عیبی خطایی چیزی نمی ده ؟ اگر میشه با چی ؟ چه نرم افزاری ؟


با تشکر

omid_Ahmadi
پنج شنبه 12 بهمن 1385, 15:09 عصر
پروژه هایی که تا حالا با 2005 انجام دادم، همگی هسته اصلی اونها با استفاده از VC.NET و بعضا با MFC بوده که کدهای نیتیو و یا کدهای ترکیبی تولید می شده و فقط قسمتی از اونها رو با استفاده از VC# پیاده سازی کردم. پس نیازی به این کار نداشتم.

اما به نظر من اگر می خواهید یک پروژه رو کاملا با VC# پیاده سازی کنید و بعد هم به افراد زیادی بفروشید، بهتره که دردسر مربوط به تبدیل پروژه به کد نیتیو رو تحمل کنید.

Amir Oveisi
پنج شنبه 12 بهمن 1385, 23:19 عصر
من دو تا مشکل داشتم باهاش:
1- پس از native شدن باز هم میشه سورسش رو دید
2- وقتی obfuscator هم استفاده میکنم برنامم اجرا نمیشه!!!

پس فعلا بلا تکلیفم...

ali_kolahdoozan
جمعه 13 بهمن 1385, 00:01 صبح
منکه این کار رو بیخیال شدم . یه قفل سخت افزاری خریدم خودش یک ابزار محافظت از سورس هم روش هست . دات نت فریم ورک رو هم نصب میکنم بره . اگر برنامه ارزش سورس شدن داشته باشه پس یعنی به درد بخوره . میرم یه قفل براش میخرم . نبود هم پس نمی ارزه بزار سورسش کنن بره

omid_Ahmadi
جمعه 13 بهمن 1385, 22:36 عصر
آخر یکی یه جواب درست و حسابی نداد ببینیم چی شد.


کافیه به جای فقط خوندن آخرین پست و بعد اظهار نظر کردن، حداقل 5 پست آخر رو بخونی. به این ترتیب می تونی خودت نتیجه گیری کنی. فکر نکنم کار سختی باشه.

hdv212
دوشنبه 20 فروردین 1386, 04:20 صبح
سلام بچه ها ..
لابد تا حالا اسم Binder به گوشتون خورده، Binder به برنامه هایی میگن که چند فایل اجرایی رو با هم ترکیب میکنه و در قالب یک فایل اجرایی واحد روی هارد دیسک ذخیره میکنه . من به همچین برنامه ای نیاز دارم، نمونه ی این برنامه در سایت SoflarSoft عزیز هست ولی متاسفانه همش فایل هارو با مشکل Bind میکنه، اگه کسی همچین بایندری مثل نمونه ی SalarSoft عزیز داره به منم بده ...
مرسی ... اینم لینک SalarSoft :

http://salarsoft.somee.com/magaleh/m_wrapper_part_help.htm

Ghasem Dehghani
یک شنبه 26 فروردین 1386, 08:51 صبح
با سلام خدمت همگی دوستان .
میخواستم بدونم چه نرم افزاری به صورت قطعی فایل های exe تولید شده توسط دات نت را از تبدیل شدن به سورس جلوگیری میکنه . البته به همراه خود دات نت یک نرم افزار برای این کار است که یکسرس معایب از جمله تاثیر بر اجرای گزارشات چاپی را دارد و ضمنا تنها کاری که تا اون جایی که من دیدیم فقط متغیر هایی را که تعریف کرده بودم را تغییر نام داده بود و جالب اینجا بود که سورس برنامه یعنی روند برنامه نویسیس را دوباره میشد مشاهده نمود . :متفکر:

حالا با این اوصاف اگه ممکنه یه حرفه ای در این مورد جواب بده و یه نرم افزار جالب رو معرفی کنه
با تشکر و سپاس قبلی
:چشمک:

payam_skandari
یک شنبه 26 فروردین 1386, 12:31 عصر
شما میتونید با استفاده از Ngen فایلهای اجرایی و کتابخانه ایتونو از IL به نیتیو تبدیل کنید تا این مشکل حل شه.

reza.palang
دوشنبه 27 فروردین 1386, 08:52 صبح
so sorry
شما درست میگی . من اشتب کردم.
این (http://www.download3k.com/.NET-Reactor/Download-Free-dotnet_reactor_setup.exe.html) هم برای جبران و این (http://www.eziriz.com/downloads/dotnet_reactor_setup.exe) ورژن جدیدش

hdv212
دوشنبه 27 فروردین 1386, 15:45 عصر
reza.palang عزیز ممنون ولی باز هم این اونی که من میخوام نیست، چیزی که من میخوام اصلا ربطی به دات نت نداره، من میخوام چند فایل Exe رو با هم ترکیب کنم و به صورت یه فایل در بیارم، حالا ممکنه این فایلها اصلا دات نت نباشه.

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

Asad.Safari
سه شنبه 28 فروردین 1386, 11:51 صبح
میشه توضیح بدی چه طور میشه ؟؟

این موضوع برگرداندن فایل exe به سورس اصلی تقریبا تو خانواده .net وجود داره ,
شما می تونید برای امتحان یک Reflector از اینترنت دانلود نمایید . سپس یه فایل exe یا dll که
با دات نت نوشته شده رو در اون رفلکتور باز کنید , میبینید که تمام کلاس ها , متدها و ... رو مشاهده خواهید کرد .(البته اگه اون برنامه با برنامه هایی مثل XenoCode محافظت نشده باشه)


موفق باشید

omid_Ahmadi
سه شنبه 28 فروردین 1386, 13:25 عصر
لطفا قبل از سوال پرسیدن، توی سایت جستجو کنید.

hdv212
دوشنبه 18 تیر 1386, 11:44 صبح
اگه dll برای دات نت باشه میتونی با برنامه ی Reflector، سورس اونو ببینی :
http://www.dnzone.com/ShowDetail.asp?NewsId=31

ولی یادت باشه حق کپی رایت نویسنده ی dll رو زیر پا نگذاری(این فقط یه تعهد اخلاقیه)

once4ever
دوشنبه 18 تیر 1386, 13:29 عصر
شما از سایت اصلیش دانلود کن!

http://www.aisto.com/roeder/dotnet/

MajerajooyeKhallagh
دوشنبه 18 تیر 1386, 14:31 عصر
ممنون از همه دوستان,مشکل دان لودم حل شد.الان دارم سورس دی ال ال را می بینم,حالا می خوام بدونم که ابزاری هست که توسط اون بشه این سورس را به صورتی تبدیل کرد که بشه توی سورس فایلهاش تغییری ایجاد کرد و ذخیره کرد و از این دی ال ال تغییر یافته,در برنامه استفاده کرد؟
ممنون میشم اگه کسی بتونه پاسخ سوالم را بده.

hdv212
دوشنبه 18 تیر 1386, 14:43 عصر
فکر نمیکنم به این راحتی باشه، ولی میتونی سورس برنامه رو از اونجا برداری و توی یه پروژه ی جدیدی که خودت ساختی کپی کنی، البته باید ببینی دقیقه از چه کلاسهای دیگه ای استفاده کرده.

mehdi.mousavi
یک شنبه 14 مرداد 1386, 17:20 عصر
سلام بچه ها ..
لابد تا حالا اسم Binder به گوشتون خورده، Binder به برنامه هایی میگن که چند فایل اجرایی رو با هم ترکیب میکنه و در قالب یک فایل اجرایی واحد روی هارد دیسک ذخیره میکنه . من به همچین برنامه ای نیاز دارم، نمونه ی این برنامه در سایت SoflarSoft عزیز هست ولی متاسفانه همش فایل هارو با مشکل Bind میکنه، اگه کسی همچین بایندری مثل نمونه ی SalarSoft عزیز داره به منم بده ...
مرسی ... اینم لینک SalarSoft :

http://salarsoft.somee.com/magaleh/m_wrapper_part_help.htm


سلام.
من این پست رو تصادفی دیدم. به چنین برنامه هایی Exe Bundle میگن. می تونید از این نرم افزار برای ترکیب دو فایل EXE استفاده کنید.
(http://www.shareup.com/downloading-4023.html)

PC2st
یک شنبه 14 مرداد 1386, 17:56 عصر
من قبلا جائی دیده بودم که یک فایل اجرائی سی++ رو با یک برنامه سی شارپ ادغام کرده بود، شاید بدرد بخوره...
http://blogs.msdn.com/texblog/archive/2007/04/05/linking-native-c-into-c-applications.aspx

hosein_scan
سه شنبه 16 مرداد 1386, 13:58 عصر
آقایون Xenocode به طور کامل و به راحتی هرچه تمام تر میتونه فایل های شما رو به Native تبدیل کنه
اولا حجم فایلتون هرچه قدر که باشه حدود 16 مگ اضافه میشه
و هیچ گونه نیازی برای اجرا شدن به دات نت نداره.
من ورژنه 2006 Professional این برنامه رو دارم
فول هم هست یعنی هیچ نیازی به کرک نداره
ولی مشکلی که داره اینه
اگر برنامتون با بانک اطلاعاتی (SQL or Access) کار کنه برنامه زمانی که می‌خواد Connection رو با دیتا بیس برقرار کنه Error میده
ولی این مشکل رو توی ورژنه 2007 گرفته
ولی من خیلی گشتم نسخه فولش یا کرکش نیست
دوستان کمک کنن پیداش کنیم.

habil_57
پنج شنبه 19 مهر 1386, 16:32 عصر
یه راه حل قابل قبول به کمک برنامه اتو پلی مدیا استودیو وجود داره

می تونی قبل از کامپایل کردن برنامه تو دات نت کارهای زیر رو انجام بدی

- برو تو قسمت چک کردن ریفرنسهای ضروری که برنامه تو به اونها وابسته است بعد یه لیست از اونا تهیه کن

- با توجه به عدم نیاز برنامه های اتوران به هرگونه فایل جانبی ....

- با Auto play media studio یه اتوران بساز طوری که بصورت خودکار تو یه وقفه کوتاه قبل از اجرای فایل دات نت شما کل ریفرنسهای برنامت رو تو ویندوز رجیستر کنه (این خیلی ساده هست و خیلی هم سریعه)

- من انجام دادم جواب داده

البته ساخت اتو ران مخفی هم امکانپذیره که به هنر شما بستگی داره


موفق باشید

hdv212
جمعه 20 مهر 1386, 16:35 عصر
یه راه حل قابل قبول به کمک برنامه اتو پلی مدیا استودیو وجود داره

می تونی قبل از کامپایل کردن برنامه تو دات نت کارهای زیر رو انجام بدی

- برو تو قسمت چک کردن ریفرنسهای ضروری که برنامه تو به اونها وابسته است بعد یه لیست از اونا تهیه کن

- با توجه به عدم نیاز برنامه های اتوران به هرگونه فایل جانبی ....

- با Auto play media studio یه اتوران بساز طوری که بصورت خودکار تو یه وقفه کوتاه قبل از اجرای فایل دات نت شما کل ریفرنسهای برنامت رو تو ویندوز رجیستر کنه (این خیلی ساده هست و خیلی هم سریعه)

- من انجام دادم جواب داده

البته ساخت اتو ران مخفی هم امکانپذیره که به هنر شما بستگی داره
دوست عزیز مطمئنی که روی ماشین مقصد، دات نت نصب نبود، چون گذشته از رفرنس هایی که در پروژه وجود داره و برنامه به اونا وابسته س، باید Clr روی سیستم نصب باشه تا بتونه اسبملی ها رو بخونه و به Native Code تبدیل کنه، چون اصلا ساختار فایلهای اجرایی تحت دات نت با فایلهای اجرایی معمولی فرق میکنه. لذا برای اجرای فایلهای دات نت، حتما بایستی clr نصب باشه.

omid_Ahmadi
جمعه 20 مهر 1386, 19:12 عصر
توی پستهای قبلی همین تاپیک و تاپیکهای دیگه (http://barnamenevis.org/forum/showpost.php?p=209446&postcount=41) گفتم که انجام این کار نشدنی هست و چرا! اما باز هم دوستان همون روش رو با بیان دیگه ای به عنوان یه روش جدید عنوان می کنن.

SYSMAN
جمعه 20 مهر 1386, 20:55 عصر
سوال من اینجاست که چرا بعضی از دوستان این همه در تلاش هستند که برنامه هاشون به صورت native اجرا بشه در صورتی که با نصب یک فریم ورک نیاز به هیچ کدام از این کارهای خلاقانه نیست. اگر هم هدف ایجاد امنیت در کدهای تولید شده است که راه حلهای بهتری وجود داره.

dr_csharp
دوشنبه 21 آبان 1386, 14:56 عصر
سلام . از دوستان کسی راه حلی واسه مخفی کردن DLL هایی که تو پروژه استفاده میشه سراغ داره ؟ یا اینکه حتی بشه چندتا Dll را در یک Dll با نام دلخواه ذخیره کرد ...
ممنون از همه

hassan razavi
دوشنبه 21 آبان 1386, 15:32 عصر
اگه منظورتون این هست که Dll هایی رو که میسازید دیگران نتونند ازش استفاده کننید و انحصاریشون کنید ، بهتره در قسمت Project Properties به ،Tab های Signing و Security سری بزنید

dr_csharp
دوشنبه 21 آبان 1386, 16:34 عصر
اگه منظورتون این هست که Dll هایی رو که میسازید دیگران نتونند ازش استفاده کننید و انحصاریشون کنید ، بهتره در قسمت Project Properties به ،Tab های Signing و Security سری بزنید

منظورم اینه که کسی متوجه DLL هایی که داخل برناممون استفاده کردیم نسه .
ممنون :لبخندساده:

dr_csharp
سه شنبه 22 آبان 1386, 09:02 صبح
شاید بشه embed کرد با EXE.

با چه نرم افزاری میتونم Embed کنم ؟

اَرژنگ
سه شنبه 22 آبان 1386, 13:49 عصر
راستش شاید از نظر شما کم ارزش باشه ولی میخوام تمام DLL های برنامم از نظر ظاهری هم که شده توی یک embed ، Dll شده باشه . مرسی
کسی نگفت این کار کم ارزشه، ولی شما اصل مشکل را بیان نکردید،
دلیل اینکه پرسیدم این بود که شاید روش دیگری بتونیم پیشنهاد کنیم، شما بدون بیان کردن مشکل اصلی تصمیم گرفتید که این راه حلشه، شاید روشهایه دیگری هم باشه که بکارتان بیاد.
اگر مشکل واقعی را بیان نکنید، این کاری که میخواهید انجام بدید استاندارد نیست و کمتر کسی میاد وقتش را بزاره برایه کارهایه غیره استاندارد.
حالا وقعا دلیل به این که به نظر شما باید به این وسیله متوصل چیه؟ کدام کاربری میاد بره به دات نت اسمبلی هایی که استفاده کردید نگاه کند؟؟ مگر مردوم بیکارند؟ (در دات نت دی.ال.ال وجود نداره، به اینها میگند دات نت اسمبلی)
به فرض هم نگاه کنند، این روش دلبخواهی شماست که نبییند؟ اگر که بله دلیلی داره و یا همینطوری برایه اینکه ببینید این کار انجام شدنی است (از لحاظ تئوری) دارید میپرسید.

dr_csharp
سه شنبه 22 آبان 1386, 14:37 عصر
ببینید برای مثال من داخل پروژم از یکسری DLL استفاده کردم .مثلا یکی واسه ترسیم نمودار ، یکی واسه تبدیل تاریخ و .... ولی میخوام این dll های استفاده شده را در یک DLL با نام جدید بهینه کنم .

dr_csharp
سه شنبه 22 آبان 1386, 15:31 عصر
خود VS باید بتونه اینکارو انجام بده.خیلی از ماژولهای مورد استفاده رو مثل ماژولهای کریستال
Embed میکنه.

خواهش میکنم اگه دوستان راه حلی دارن ارایه بدن و تا جایی که میشه از شاید و احتمال استفاده نکنن .
یک جایی راجع به یه نرم افزار خوندم که توضیح داده بود .Net packer هست و dll (بقول دوستان .net assembly)های مختلف استفاده شده در سطح برنامه را در یک فایل embed میکنه ولی خوب الان در دسترسم نیست .
ممنون از همه

sinpin
چهارشنبه 23 آبان 1386, 11:01 صبح
خواهش میکنم اگه دوستان راه حلی دارن ارایه بدن و تا جایی که میشه از شاید و احتمال استفاده نکنن .
یک جایی راجع به یه نرم افزار خوندم که توضیح داده بود .Net packer هست و dll (بقول دوستان .net assembly)های مختلف استفاده شده در سطح برنامه را در یک فایل embed میکنه ولی خوب الان در دسترسم نیست .
ممنون از همه

اینجا رو یه نگاهی بندازی امیدوارم منظورتون رو برآورده کنه :‌
http://xbundler.oreans.qarchive.org/
http://www.filedudes.com/XBundler-screenshot-37562.html

dr_csharp
چهارشنبه 23 آبان 1386, 12:46 عصر
سلام بچه ها . نسخه ای که دوست عزیزم آقا سینا تو پست قبلی لینکش نوشتن حدود 80$ قیمتشه ...
ممنون میشم اگر کسی از دوستان لینک نسخه رایگان شده یا مشابهه این نرم افزار ارایه کنه . البته منم دنبالشم .:لبخندساده:

PC2st
سه شنبه 06 آذر 1386, 16:34 عصر
یعنی شکستن این کد ها ساده هست یا مشکل؟
با برنامه ای مثل Xenocode به راحتی میشه سورس کدهای نوشته شده در اسمبلی های دات نت رو مرور کرد.

dr_csharp
چهارشنبه 21 آذر 1386, 17:01 عصر
سلام به همه ی دوستان . راستش فرصت نکردم سر حوصله با برنامه کار کنم ولی خوب یکی دوتا مثال کار کردم درست جواب داد .. بازم ممنون میشم با این نرم افزار کار کنید و نتیجه تست هاتون رو پست کنید تا بقیه دوستان هم استفاده کنن .

آشنایی با نرم افزار XBundler که دوست عزیزم آقای سینا امیر شکاری معرفی کردن


از پوشه ی Themida.v1.8.5.5.with.XBundler و از درون فلدر Themida فایل Themida.exe را اجرا میکنیم :
1 - در قسمت Application Information فایل exe خود را در قسمت Input File Name انتخاب میکنیم .


توجه : درصورتیکه گزینه ی Same as input موجود در مقابل out put file name تیک خورده باشه فایل exe جدید overwrite میشه ، در غیراینصورت برای exe جدید یک مسیر یا نام جدید مشخص نمایید .
چون فرصت مانور رو برنامه و خوندن help و .. نبود با قسمت های بعدی بعدا آشنا میشیم ولی خوب مثلا قسمت protection options برای اعمال مسایل امنیتی بر روی فایل انتخاب شده میباشد که عبارتند از :

Anti debugger – anti patching – resource encryption , …


از این قسمت ها که بگذریم میرسیم به ..


2 – در قسمت XBundlerبا استفاده از دکمه ی Add فایل های مرتبط با exe اصلی برنامه( در قسمت بالا انتخاب شده است ) مثل Dll هایی که نیاز است کنار فایل exe باشه و .. را انتخاب میکنیم .


3 – سپس از نوار ابزار گزینه ی protect ( عکس قفل ) را انتخاب میکنیم .


4 – سپس از صفحه ی جدید مجددا دکمه ی protect را انتخاب میکنیم .


5 – حال خواهید دید که exe جدید به خودی خود شامل dll ها و فایل های Add شده به آن خواهد بود و دیگری نیازی نیست که بصورت جداگانه این فایل ها کنار exe اصلی قرار بگیرند .


ممنون میشم دوستان نتیجه ی تستشون رو همینجا بیان کنن تا من و باقی دوستان هم بتونیم استفاده کنیم (O:

Ali_Hashemi
پنج شنبه 13 دی 1386, 12:15 عصر
فکر می کنم این سوال من جواب ساده ای داشته باشه که من نمی دونم!

فرض کنید ما یک کامپوننت برای دات نت طراحی کردیم (مثلا یک Button خاص)
برای انتشار برنامه باید اسمبلی این کامپوننت رو هم همراه برنامه بفرستیم.(نه؟)
حالا هرکسی می تونه این اسمبلی رو کپی کنه و توی برنامه های خودش بکار ببره ؟!
چطور میشه از این اتفاق جلوگیری کرد ؟

hdv212
پنج شنبه 13 دی 1386, 12:21 عصر
حالا هرکسی می تونه این اسمبلی رو کپی کنه و توی برنامه های خودش بکار ببره ؟!
چطور میشه از این اتفاق جلوگیری کرد ؟
میتونی در توابعی که کاربر از این کامپوننت اجرا میکنه، یه پارامتر دیگه اضافه کنی به نام مثلا Serial Number که بایستی این کد رو از شما که سازنده هستی بگیره، یا مثلا اگه یه کامپوننت خاص نوشتی، میتونی یه Property بهش اضافه کنی که کد ثبت شده رو بگیره و در خودش ذخیره کنه و تا این کد توش رجیستر نشه، کار نکنه و به کاربر پیغام بده.

Ali_Hashemi
پنج شنبه 13 دی 1386, 12:33 عصر
این روش یه جورایی درست به نظر نمیاد
در بهترین حالت باید توی همه فرمهامون یه تابع جهت پر کردن مقادیر کلیدی کامپوننتهامون صدا بزنیم.
اگر سورس کامپوننت رو نداشته باشیم چککار کنیم ؟
عجیبه که برای این کار هیچ کاری در دات نت انجام نشده باشه !
نمی دونم چرا یه همچین مورد حفاظتی رو مثل یه چیزی شبیه Signing برای اسمبلی ها نذاشتن که از اجرای غیر مجاز اسمبلی ها محافظت کنه !!!!

hdv212
پنج شنبه 13 دی 1386, 17:30 عصر
در بهترین حالت باید توی همه فرمهامون یه تابع جهت پر کردن مقادیر کلیدی کامپوننتهامون صدا بزنیم.
خب شما مقدار رو در یک فایل xml میتونی ذخیره کنی و دیگه کاربر مجبور نیست، همه جا بخواد کد رو وارد کنه، خیلی از کامپوننت های تجاری از این سیستم استفاده میکنن.

hassan razavi
پنج شنبه 13 دی 1386, 17:37 عصر
http://barnamenevis.org/forum/showthread.php?t=84508&highlight=%D9%85%D8%AE%D9%81%DB%8C+%DA%A9%D8%B1%D8 %AF%D9%86+dll

babakj
دوشنبه 22 بهمن 1386, 16:33 عصر
اگه منظورتون این هست که Dll هایی رو که میسازید دیگران نتونند ازش استفاده کننید و انحصاریشون کنید ، بهتره در قسمت Project Properties به ،Tab های Signing و Security سری بزنید


چطوری میشه روی یک DLL قفل گذاشت که اگه کسی قفلشو ندونه ، نتونه Addrefrence بکنه ؟ البته از طریق PFX فایل ها فکر کنم بشه ...

من Sign کردم ولی وقتی رویه یک PC دیگه میرم و DLL رو Import می کنم تو VS هیچ رمزی نمی خواد !؟

Amir Oveisi
چهارشنبه 24 بهمن 1386, 22:42 عصر
برای Pack کردن از NETz Packer و برای DisAssemble کردن از Reflector و یا Xenocode استفاده میکنم

مهدی کرامتی
پنج شنبه 25 بهمن 1386, 02:19 صبح
تقریبا هیچ کدوم این ابزارها نمی تونن کمک قطعی به شما بکنند و پایه اساس و اعتماد شما به امنیت محسوب بشن.
تنها چیزی که به شما کمک میکنه آگاهی شما از نقطه ضعفهایی در برنامه است که میتونه منجر به زیر سوال رفتن امنیتش بشه. مثلا اگر امنیت برنامه شما وابسته به بررسی یک شرط ساده باشه، به همون سادگی با وارونه کردن نتیجه شرط همه چیز تموم میشه.
اما اگر برنامه شما برای بررسی پارامترهای امنیتی از یک کلاس و اعضای اون استفاده کنه (صرفا خواندن پارامترها و Init کردن امکانات برنامه بر حسب مقادیر اون اعضا، بدون استفاده از شرط) کار نفوذگر رو خیلی سخت تر کرده اید.
رمزنگاری عبارتها (String) های مرتبط با بخش های امنیتی برنامه کمک بزرگی به امنیت محسوب میشه، چون دیگه با یک String Search ساده نمیشه فهمید باید دنبال چی گشت و در حقیقت تابلوهای راهنمای نفوذگر رو کور کرده اید.

m110_110
یک شنبه 04 فروردین 1387, 21:11 عصر
با سلام
نمی دونم با برنامه های
.NET Reactor و .NET Reflectpr
آشنایی دارید یا نه
من که تازه با اون ها اشنا شدم .
تا اونجا که من فهمیدم و امتحان کردم برنامه NET Reactor یک برنامه بسیار عالی برای دات نتی هاست و می تواند کد های دات نت را به گونه ای در آورد که به راحتی نتوان آن را دیکامپایل کرد.
و اما برنامه NET Reflector کارش این است که فایل های اجرایی دات نت را می تواند کدشون رو برگردونند واقعا هم خوب بر می گردونه.

من یک برنامه ایی را نزدیک 3 ماه روش کار کردم. حال می خواهم بیرون بدهم و قفلی توسط شماره سریال cpu روی اون گذاشتم. ولی دیدم که برنامه NET Reflector راحت کدم رو برگردوند و خیلی راحت تر می توان از قفل من گذشت.
حال اومدم با برنامه NET Reactor کدم را تبدیل کردم. خیلی خوب شد حال دیگه حتی برنامه NET Reflector هم نتوانست کدم رو برگردونه اما یه مشکل.
مشکلش اینه که نسخه آزمایشیش روی انترنت یافت می شه و نسخه کاملش پولیه.
حاله این نسخه آزمایشی اول برنامه یعنی قبل از اجرای خود برنامه یک پیغام می دهد که این برنامه با NET Reactor محافظت شده است و ... که من نمی خوام پیغام بده که طبیعتا باید نسخه کاملش تهیه گردد.

و اما از شما می خواهم که بپرسم اولا چگونه باید کاملش رو گیر بیارم ؟ آیا در بازار یا اینترنت هست ؟ ثانیا اگر نه برنامه ی بهتری هست یا نه؟


در ضمن اگر خواستید نسخه آزمایشی برنامه .NET Reactor رو می تونید از سایت
http://www.filedudes.com/_NET_Reactor-download-37018.html
دانلود کنید .

با تاخیر

سال نوتون مبارک

ممنون خداحافظ

hdv212
یک شنبه 04 فروردین 1387, 23:33 عصر
خب طبق قوانین سایت، گذاشتن Warez ممنوعه، ولی پیشنهاد میکنم یه نگاهی هم به برنامه ی XenoCode (http://www.xenocode.com/) بندازی، اینم برنامه ی خوبی برای محافظت از فایلهای اجرایی هست، حتی میتونه توسط تکنولوژی Virtualization برنامه ی شما رو بدون نیاز به DotNet FrameWork اجرا کنه.

arshia_m
چهارشنبه 07 فروردین 1387, 22:37 عصر
بگردیدمش
یافتمش
گذاردمش
تا بگیرندش
وببرندش


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

gdevnb
پنج شنبه 22 فروردین 1387, 09:45 صبح
سلام

می خواستم ببینم تو این مدت کسی درباره net reactor چیزی بدست آورده
این برنامه به نظرم خیلی بهتره ولی هنوز نتونستم کرکش رو بدست بیارم
اگر کسی چیزی بدست آورد ما رو هم بی نصیب نذاره
ممنون

سلام دوست عزیز
سیستمی که دات نت ریکتور برای محافظت از برنامه شما ارائه داده در واقع سیستمی هستش که داره از خودش هم محافظت میکنه.چطور میخوای از برنامه ای که خودشو نمی تونه محافظت کن برای محافظت از کدت استفاده کنی ؟
اینو گفتم که برای ورژن های جدیدش دنبال لایسنس نگردی چون فکر نمی کنم گیر بیاری.(منظورم کرک خود نرم افزار هست نه اینکه قابل شکستن نیست)
آخرین ورژنی که کرکش رو دیدم 2.9.0.5 بودش. فکر کنم الان ورژن جدیدش 3.7 باشه
ولی در کل برنامه خیلی جالبی هست.

sinpin
پنج شنبه 22 فروردین 1387, 14:43 عصر
در راستای طرح بهینه سازی تالار سی شارپ؛ چندین تاپیک مستقل در هم ادغام شدند.

دیدن لینک زیر هم ممکن است مفید باشد :
http://barnamenevis.org/forum/showthread.php?t=41559

hack.ir
پنج شنبه 22 فروردین 1387, 17:47 عصر
سلام
بحث خیلی داغ بود گفتم واسه دوستانی که یه کم گیج شدن توضیح بدم چون یه جاهاییشو خودمم نفهمیدم و یاد جلسات مناقصه های دولتی افتادم. بگذریم.
اصولاً کد های جاوا و دات نت و امثالهم که به Managed Code معروف هستند بعد از کامپایل exe واقعی (Machine Code) نمیشن و در هنگام اجرا توسط engine مربوطه (مثلاً کد دات نت توسط دات نت فریم ورک) به کد ماشین همون پردازنده تبدیل می شن. برای همین به اونا غیر وابسته به پلتفرم می گم یعنی رو هر رایانه ای با هر سیستم عاملی که engine نصب باشه قابل اجرا هستند. کد تولید شده توسط کامپایلر این زبونها به یه زبون حد واسط (یعنی نه سورس و نه کد ماشین) تبدیل میشه که تو دات نت به اون MSIL و تو جاوا ByteCode می گن.
خوب این زبانهای حد واسط راحتر از کد ماشین قابل تبدیل به سورس کد هستن پس راحت تر کرک میشن. داستان کرک شدن و جلوگیری از اون تو مایه های داستان مرغ و تخم مرغه و نمی خوام وارد اون بشم اما یادمه آخرین تکنولوژی که شنیدم قراره بیاد استفاده از PKI در سطح پردازنده بود یعنی شما سریال CPU رو می دی کمپانی adobe اونا با سازنده CPU تماس می گیرن و از روی سریال public key شما رو بدست می آرن و فتوشاپ رو رمز شده میدن خدتتون و فقط رو pc شما کار خواهد کرد.
در تفاوت زبونهای سطح پایین مثل C, Assembly, ... با سطح بالاها مثل جاوا یا دات نت باید بگم خوب یا بدی وجود نداره و بستگی داره بخوایم چیکار کنیم. اما به طور کلی هر چی سطح زبون می ره بالا performance فدای design میشه یعنی سرعت میاد پایین اما تولید، نگهداری و توسعه آسونتر میشه.
اما اینا اصلاً مهم نیست. تو کشورهای پیشرفته کلید روی ماشین می ذاری دزد نمی بره اما بعضی جاهای دیگه با کلی دزدگیر و ... بازم دزد ماشینو می بره.
امروزه نرم افزارها اونقدر ساختار پیچیده ای دارن پیدا می کنن که نه تنها سورس کد دیگه ارزشی نداره حتی اسناد طراحی مثل دیاگرام های UML اون رو هم اگر بدن بازم به کار نمیاد.
پیشنهاد می کنم ذهن خودتونو با این چیزا خسته نکنید و در حد عرف از ابزارهای مربوطه مثل obfuscator ها استفاده کنید. باور کنید اگر برنامتون کرک بشه یعنی خیلی خوب بوده و باید خوشحال باشید.
جالب اینجاست که رو ویندوز کرک شده با ویژوال استودیو و سایر ابزارهای گران قیمت کرک شده 4 خط کد می نویسیم بعد انتظار داریم کرک نشه و تازه یادمون میفته کرک عجب کار بدیه !

man_iran
یک شنبه 13 مرداد 1387, 19:58 عصر
سلام
من اکثر جوابها را خوندم ولی درست نفهمیدم ngen را از کجا باید گیر بیارم :لبخند:
گفتید که با فریم ورک منتشر شده.
یعنی وقتی ویژوال 2005 را نصب می کنم اون هم نصب می شه؟

کار کردن با اون چه طوریه ؟
لطفا کامل توضیح بدید (گیرایمون کمه) :لبخند:

__H2__
دوشنبه 14 مرداد 1387, 02:32 صبح
سلام


من اکثر جوابها را خوندم ولی درست نفهمیدم ngen را از کجا باید گیر بیارم :لبخند:

برنامه مذکور یکی از ابزارآلات اصلی Framework است و با Framework نصب شده و در محل ان نیز قرار دارد


C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen .exe


برنامه مذکور را میتوانید با سوییچ ؟/ در cmd اجرا کنید تا اطلاعات حالات مختلف سوییچ هایش را نشان دهد.



>ngen.exe /?

Usage: ngen <action> [args] [/nologo] [/silent] [/verbose]
ngen /? or /help

/nologo - Prevents displaying of logo
/silent - Prevents displaying of success messages
/verbose - Displays verbose output for debugging

Actions:
ngen install <assembly name> [scenarios] [config] [/queue[:[1|2|3]]
Generate native images for an assembly and its dependencies and install them in the Native Images Cache
If /queue is specified compilation job is queued up. If a priority is not specified, the default priority used is 3.

ngen uninstall <assembly name> [scenarios] [config]
Delete the native images of an assembly and its dependencies from
the Native Images Cache.

ngen update [/queue]
Update native images that have become invalid
If /queue is specified compilation jobs are queued up.

ngen display [assembly name]
Display the ngen state

ngen executeQueuedItems [1|2|3]
Executes queued compilation jobs.
If priority is not specified all queued compilation jobs are done.
If priority is specified compilation jobs with greater or equal.
priority than the specified are done.

ngen queue [pause|continue|status]
Allows the user to pause and continue the NGen Service Queue, and to query its status.

Scenarios:
/Debug - Generate images that can be used under a debugger
/Profile - Generate images that can be used under a profiler
/NoDependencies - Generate the minimal number of native images required by this scenario

Config:
/ExeConfig:<path to exe> - Use the configuration of the specified executable assembly
/AppBase:<path to appbase directory> - Use the specified directory as the appbase


ابزار فوق اسمبلی شما را به Native تبدیل کرده و به نوعی ان را نصب یا رجیستر میکند و Native شده آن را در زیر پوشه های C:\Windows\assembly قرار میدهد.

این Native سرعت بسیار خوبی دارد و مخصوص سخت افزار و سیستم عامل جاری از IL به Native کامپایل شده.

ولی باید توجه داشت که برای هر رایانه باید جداگانه عمل فوق انجام شود.
و اگر هم بتوانید نسخه Native کامپایل شده را از مسیر فوق بردارید، باز فایده ندارد و کار نخواهد کرد و حتماً باید برای هر رایانه جداگانه انجام شود.
===========================
من بعد از زدن پست فوق، صفحات قبلی تاپیک را هم دیدم، دوستان لینک msdn ابزار فوق را هم داده بودند، که بسیار کاملتر از توضیحات ناقص من است.
http://msdn.microsoft.com/en-gb/library/6t9t5wcf(VS.80).aspx

man_iran
دوشنبه 14 مرداد 1387, 09:48 صبح
مرسی از توضیحات

من برنامه را پیدا کردم:تشویق: ولی وقتی اجراش می کنم سریع بسته می شه!
نگفتید نحوه کار کردن با اون چطوره؟ مثلا من یه برنامه نوشتم با سی شارپ. حالا چطور می تونم به وسیله این برنامه کدهاش را تغییر بدم (ناخواناش کنم)

گفته بودید که باید برای هر کامپیوتر جداگانه این کار را باید انجام داد! منظورتون چیه؟
یعنی اگر یه برنامه نوشتم باید برای اجرای آن روی هر سیستمی این عمل را انجام داد؟

regbyte
دوشنبه 14 مرداد 1387, 12:01 عصر
آیا این امکان وجود دارد که هنگام نصب برنامه، از ngen.exe استفاده شود و Native Code روی سیستم مورد نظر نصب شود(چون ظاهرا Native برنامه فقط روی سیستمی که تبدیل شده کار می کند)؟

لطفا راهنمایی کنید.

رضا عربلو
دوشنبه 14 مرداد 1387, 19:14 عصر
در واقع native Code ها به CLR کمک می کنند تا زمانی را که برای optimize کردن اسمبلی های دات نت را صرف می کند را صرفه جویی کند. و برنامه های دات نت تنها با داشتن native code ها (بدون اسمبلی های دات نت) اجرا نخواهند شد.

man_iran
سه شنبه 15 مرداد 1387, 09:29 صبح
کسی نیست ngen را توضیح بده!!

شما حساب کنید یه فایل exe دارید که با سی شارپ تولیدش کردید حالا برای کار با این برنامه باید چه کار کرد؟

fat_roze2000
دوشنبه 25 شهریور 1387, 14:54 عصر
http://barnamenevis.org/forum/showthread.php?p=595138#post595138

sadafmahjoobi
چهارشنبه 22 خرداد 1392, 13:36 عصر
این تاپیکه خوبیه،امیدوارم فعال شه