دلیل تمایل به حذف فریم ورک در پست قبلی عنوان شده:
دقت کنید که تنها موردی که می تونه باعث استفاده از این نرم افزارها بشه، خطرات امنیتی مربوط به کد برنامه هست نه مواردی مانند سرعت اجرا و یا سایز فایل خروجی
دلیل تمایل به حذف فریم ورک در پست قبلی عنوان شده:
دقت کنید که تنها موردی که می تونه باعث استفاده از این نرم افزارها بشه، خطرات امنیتی مربوط به کد برنامه هست نه مواردی مانند سرعت اجرا و یا سایز فایل خروجی
سلام
بببخشید که پابرهنه پریدم وسط
ولی یه سوال در مورد امنیت کد در محیطهایی که بستگی به ماشین مجازی دارند مانند دات نت و جاوا .
راستیش من در مورد دات نت تا اونجایی که میدونم نرم افزارهای مختلفی برای مقابله با نفوذ مانند آنتی دیباگرها و آنتی دی اسمبلرهای مختلفی وجود دارند مانند:
http://www.remotesoft.com/salamander/protector.html
و یا .net obfuscator ها که حتماً دوستان آشنایی با آنها دارند.
ولی در مورد جاوا هیچ اطلاعی از نرم افزاری ندارم و اینکه بدلیل اینکه جاوا کدهای خود را بصورت class کامپایل میکند و در واقع هیچگونه لفافه ای برای binary image خود مانند PE ویا COFF و یا ELF انتخاب نمیکند سریع تر از دات نت میتوان به کد اصلی دسترسی پیدا کرد.
حال اصل مطلب :با وجود چنین نرم افزارهای یاد شده چه دلیلی داره که از مزیت های .net framework استفاده نکنیم؟(یکی از مزیتهای مهم دات نت فریم ورک استفاده GAC میباشد).
ممنون میشم دلایل شما را برای اینکار بدونم و در آینده از تجربیات با ارزش دوستان استفاده کنم
آقای احمدی از جواباتون خیلی متشکرم اما یکی دیگه از تمایل هایی که میشه داشت برای حذف فریم ورک اینه که الان فریم ورک به طور پیش فرض رو ویندوزها نیست و حالا تا بیاد ویستا برا خودش انقدر جا باز کنه که عمومی شه خیلی راه تازه رو اونم فکر می کنم فقط فریم ورک 1 هست
تازه با تمام این احوال اگر هم عمومیم شه و رو همه ویندوزا فریم ورک روز همیشه باشه بازم نمیشه در حد یه Win32 روش حساب کرد
البته من به دلیل سرعت یا حجم فایل خیال این کارو ندارم فقط می خواستم تفاوتش رو بدونم
اما در مورد مذیتهای فریم ورک میشه کمی توضیح بدین-منظورم اینه زبانی که فریم ورک نداشته باشه نمی تونه کارهایی انجام بده که یه زبان با وجود فریم ورک انجام میده؟(چه کارهایی؟)چه موانعی وجود داشته که نمیشده یک زبان مستقل از فریم ورک به همین قدرت ساخته شه؟در واقع فریم ورک اومده چه نواقصی رو رفع کرده؟
مشکل مطرح شده اصلا مهم نیست چون با استفاده از یه برنامه نصاب میشه اون رو برطرف کرد. تنها مشکلی که در بالا ذکر کردم می تونه باعث حذف فریم ورک بشه.
در مورد سوال دومتون فرک کنم در این تاپیک قبلا توضیح دادم.
https://barnamenevis.org/showthread.php?t=41559
با سلام
آقای احمدی اگه Native کردن کد سرعت رو به حد اکثر می رسونه و باعث امنیت بیشتر میشه اما باعث نمیشه که برنامه بدون فریم ورک کار کنه چرا از اول خود دات نت این کار رو نمی کنه؟
دلیل منطقی و 100% شما برای اینکه مایکروسافت تا حالا خودش برنامه هاش رو (برنامه های بزرگ و قوی{که نیاز به سرعت بالا دارن}) با دات نت نوشته چیه؟فقط چون Updatesh زمان بر؟
وقتی یه کلاس رو Native کنیم چطور میشه با بقیه کد که Native نیست ربطش داد؟
مطالبی که در زمینه معماری فریم ورک .NET نوشتم دلیل این مورد رو مشخص می کنه، ایضا نحوه ارتباط کدهای Native رو به کدهای managed. می تونید اونها رو مطالعه کنید.
آقای احمدی عزیز سلام
میشه یک جواب قاطع به من بدید بر اساس تجربه خودتون . دات نت 2005 رو شما تونستید بدون فریم ورک run کنید . یعنی برنامه کار کنه . برای من هیچی مهم نیست در اینجا مثل امنیت و .... فقط می خواهم بدونم شما این کار رو کردید ؟عیبی خطایی چیزی نمی ده ؟ اگر میشه با چی ؟ چه نرم افزاری ؟
با تشکر
پروژه هایی که تا حالا با 2005 انجام دادم، همگی هسته اصلی اونها با استفاده از VC.NET و بعضا با MFC بوده که کدهای نیتیو و یا کدهای ترکیبی تولید می شده و فقط قسمتی از اونها رو با استفاده از VC# پیاده سازی کردم. پس نیازی به این کار نداشتم.
اما به نظر من اگر می خواهید یک پروژه رو کاملا با VC# پیاده سازی کنید و بعد هم به افراد زیادی بفروشید، بهتره که دردسر مربوط به تبدیل پروژه به کد نیتیو رو تحمل کنید.
من دو تا مشکل داشتم باهاش:
1- پس از native شدن باز هم میشه سورسش رو دید
2- وقتی obfuscator هم استفاده میکنم برنامم اجرا نمیشه!!!
پس فعلا بلا تکلیفم...
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
منکه این کار رو بیخیال شدم . یه قفل سخت افزاری خریدم خودش یک ابزار محافظت از سورس هم روش هست . دات نت فریم ورک رو هم نصب میکنم بره . اگر برنامه ارزش سورس شدن داشته باشه پس یعنی به درد بخوره . میرم یه قفل براش میخرم . نبود هم پس نمی ارزه بزار سورسش کنن بره
کافیه به جای فقط خوندن آخرین پست و بعد اظهار نظر کردن، حداقل 5 پست آخر رو بخونی. به این ترتیب می تونی خودت نتیجه گیری کنی. فکر نکنم کار سختی باشه.آخر یکی یه جواب درست و حسابی نداد ببینیم چی شد.
سلام بچه ها ..
لابد تا حالا اسم Binder به گوشتون خورده، Binder به برنامه هایی میگن که چند فایل اجرایی رو با هم ترکیب میکنه و در قالب یک فایل اجرایی واحد روی هارد دیسک ذخیره میکنه . من به همچین برنامه ای نیاز دارم، نمونه ی این برنامه در سایت SoflarSoft عزیز هست ولی متاسفانه همش فایل هارو با مشکل Bind میکنه، اگه کسی همچین بایندری مثل نمونه ی SalarSoft عزیز داره به منم بده ...
مرسی ... اینم لینک SalarSoft :
http://salarsoft.somee.com/magaleh/m..._part_help.htm
با سلام خدمت همگی دوستان .
میخواستم بدونم چه نرم افزاری به صورت قطعی فایل های exe تولید شده توسط دات نت را از تبدیل شدن به سورس جلوگیری میکنه . البته به همراه خود دات نت یک نرم افزار برای این کار است که یکسرس معایب از جمله تاثیر بر اجرای گزارشات چاپی را دارد و ضمنا تنها کاری که تا اون جایی که من دیدیم فقط متغیر هایی را که تعریف کرده بودم را تغییر نام داده بود و جالب اینجا بود که سورس برنامه یعنی روند برنامه نویسیس را دوباره میشد مشاهده نمود .
حالا با این اوصاف اگه ممکنه یه حرفه ای در این مورد جواب بده و یه نرم افزار جالب رو معرفی کنه
با تشکر و سپاس قبلی
شما میتونید با استفاده از Ngen فایلهای اجرایی و کتابخانه ایتونو از IL به نیتیو تبدیل کنید تا این مشکل حل شه.
reza.palang عزیز ممنون ولی باز هم این اونی که من میخوام نیست، چیزی که من میخوام اصلا ربطی به دات نت نداره، من میخوام چند فایل Exe رو با هم ترکیب کنم و به صورت یه فایل در بیارم، حالا ممکنه این فایلها اصلا دات نت نباشه.
در جواب rasoul_ras عزیز هم باید بگم که من نمیخوام کسی به فایلهای اجرایی دسترسی داشته باشه.
این موضوع برگرداندن فایل exe به سورس اصلی تقریبا تو خانواده .net وجود داره ,
شما می تونید برای امتحان یک Reflector از اینترنت دانلود نمایید . سپس یه فایل exe یا dll که
با دات نت نوشته شده رو در اون رفلکتور باز کنید , میبینید که تمام کلاس ها , متدها و ... رو مشاهده خواهید کرد .(البته اگه اون برنامه با برنامه هایی مثل XenoCode محافظت نشده باشه)
موفق باشید
لطفا قبل از سوال پرسیدن، توی سایت جستجو کنید.
اگه dll برای دات نت باشه میتونی با برنامه ی Reflector، سورس اونو ببینی :
http://www.dnzone.com/ShowDetail.asp?NewsId=31
ولی یادت باشه حق کپی رایت نویسنده ی dll رو زیر پا نگذاری(این فقط یه تعهد اخلاقیه)
شما از سایت اصلیش دانلود کن!
ممنون از همه دوستان,مشکل دان لودم حل شد.الان دارم سورس دی ال ال را می بینم,حالا می خوام بدونم که ابزاری هست که توسط اون بشه این سورس را به صورتی تبدیل کرد که بشه توی سورس فایلهاش تغییری ایجاد کرد و ذخیره کرد و از این دی ال ال تغییر یافته,در برنامه استفاده کرد؟
ممنون میشم اگه کسی بتونه پاسخ سوالم را بده.
فکر نمیکنم به این راحتی باشه، ولی میتونی سورس برنامه رو از اونجا برداری و توی یه پروژه ی جدیدی که خودت ساختی کپی کنی، البته باید ببینی دقیقه از چه کلاسهای دیگه ای استفاده کرده.
سلام.
من این پست رو تصادفی دیدم. به چنین برنامه هایی Exe Bundle میگن. می تونید از این نرم افزار برای ترکیب دو فایل EXE استفاده کنید.
من قبلا جائی دیده بودم که یک فایل اجرائی سی++ رو با یک برنامه سی شارپ ادغام کرده بود، شاید بدرد بخوره...
http://blogs.msdn.com/texblog/archiv...lications.aspx
آقایون Xenocode به طور کامل و به راحتی هرچه تمام تر میتونه فایل های شما رو به Native تبدیل کنه
اولا حجم فایلتون هرچه قدر که باشه حدود 16 مگ اضافه میشه
و هیچ گونه نیازی برای اجرا شدن به دات نت نداره.
من ورژنه 2006 Professional این برنامه رو دارم
فول هم هست یعنی هیچ نیازی به کرک نداره
ولی مشکلی که داره اینه
اگر برنامتون با بانک اطلاعاتی (SQL or Access) کار کنه برنامه زمانی که میخواد Connection رو با دیتا بیس برقرار کنه Error میده
ولی این مشکل رو توی ورژنه 2007 گرفته
ولی من خیلی گشتم نسخه فولش یا کرکش نیست
دوستان کمک کنن پیداش کنیم.
یه راه حل قابل قبول به کمک برنامه اتو پلی مدیا استودیو وجود داره
می تونی قبل از کامپایل کردن برنامه تو دات نت کارهای زیر رو انجام بدی
- برو تو قسمت چک کردن ریفرنسهای ضروری که برنامه تو به اونها وابسته است بعد یه لیست از اونا تهیه کن
- با توجه به عدم نیاز برنامه های اتوران به هرگونه فایل جانبی ....
- با Auto play media studio یه اتوران بساز طوری که بصورت خودکار تو یه وقفه کوتاه قبل از اجرای فایل دات نت شما کل ریفرنسهای برنامت رو تو ویندوز رجیستر کنه (این خیلی ساده هست و خیلی هم سریعه)
- من انجام دادم جواب داده
البته ساخت اتو ران مخفی هم امکانپذیره که به هنر شما بستگی داره
موفق باشید
دوست عزیز مطمئنی که روی ماشین مقصد، دات نت نصب نبود، چون گذشته از رفرنس هایی که در پروژه وجود داره و برنامه به اونا وابسته س، باید Clr روی سیستم نصب باشه تا بتونه اسبملی ها رو بخونه و به Native Code تبدیل کنه، چون اصلا ساختار فایلهای اجرایی تحت دات نت با فایلهای اجرایی معمولی فرق میکنه. لذا برای اجرای فایلهای دات نت، حتما بایستی clr نصب باشه.یه راه حل قابل قبول به کمک برنامه اتو پلی مدیا استودیو وجود داره
می تونی قبل از کامپایل کردن برنامه تو دات نت کارهای زیر رو انجام بدی
- برو تو قسمت چک کردن ریفرنسهای ضروری که برنامه تو به اونها وابسته است بعد یه لیست از اونا تهیه کن
- با توجه به عدم نیاز برنامه های اتوران به هرگونه فایل جانبی ....
- با Auto play media studio یه اتوران بساز طوری که بصورت خودکار تو یه وقفه کوتاه قبل از اجرای فایل دات نت شما کل ریفرنسهای برنامت رو تو ویندوز رجیستر کنه (این خیلی ساده هست و خیلی هم سریعه)
- من انجام دادم جواب داده
البته ساخت اتو ران مخفی هم امکانپذیره که به هنر شما بستگی داره
توی پستهای قبلی همین تاپیک و تاپیکهای دیگه گفتم که انجام این کار نشدنی هست و چرا! اما باز هم دوستان همون روش رو با بیان دیگه ای به عنوان یه روش جدید عنوان می کنن.
سوال من اینجاست که چرا بعضی از دوستان این همه در تلاش هستند که برنامه هاشون به صورت native اجرا بشه در صورتی که با نصب یک فریم ورک نیاز به هیچ کدام از این کارهای خلاقانه نیست. اگر هم هدف ایجاد امنیت در کدهای تولید شده است که راه حلهای بهتری وجود داره.
سلام . از دوستان کسی راه حلی واسه مخفی کردن DLL هایی که تو پروژه استفاده میشه سراغ داره ؟ یا اینکه حتی بشه چندتا Dll را در یک Dll با نام دلخواه ذخیره کرد ...
ممنون از همه
اگه منظورتون این هست که Dll هایی رو که میسازید دیگران نتونند ازش استفاده کننید و انحصاریشون کنید ، بهتره در قسمت Project Properties به ،Tab های Signing و Security سری بزنید
کسی نگفت این کار کم ارزشه، ولی شما اصل مشکل را بیان نکردید،
دلیل اینکه پرسیدم این بود که شاید روش دیگری بتونیم پیشنهاد کنیم، شما بدون بیان کردن مشکل اصلی تصمیم گرفتید که این راه حلشه، شاید روشهایه دیگری هم باشه که بکارتان بیاد.
اگر مشکل واقعی را بیان نکنید، این کاری که میخواهید انجام بدید استاندارد نیست و کمتر کسی میاد وقتش را بزاره برایه کارهایه غیره استاندارد.
حالا وقعا دلیل به این که به نظر شما باید به این وسیله متوصل چیه؟ کدام کاربری میاد بره به دات نت اسمبلی هایی که استفاده کردید نگاه کند؟؟ مگر مردوم بیکارند؟ (در دات نت دی.ال.ال وجود نداره، به اینها میگند دات نت اسمبلی)
به فرض هم نگاه کنند، این روش دلبخواهی شماست که نبییند؟ اگر که بله دلیلی داره و یا همینطوری برایه اینکه ببینید این کار انجام شدنی است (از لحاظ تئوری) دارید میپرسید.
ببینید برای مثال من داخل پروژم از یکسری DLL استفاده کردم .مثلا یکی واسه ترسیم نمودار ، یکی واسه تبدیل تاریخ و .... ولی میخوام این dll های استفاده شده را در یک DLL با نام جدید بهینه کنم .
خواهش میکنم اگه دوستان راه حلی دارن ارایه بدن و تا جایی که میشه از شاید و احتمال استفاده نکنن .
یک جایی راجع به یه نرم افزار خوندم که توضیح داده بود .Net packer هست و dll (بقول دوستان .net assembly)های مختلف استفاده شده در سطح برنامه را در یک فایل embed میکنه ولی خوب الان در دسترسم نیست .
ممنون از همه
اینجا رو یه نگاهی بندازی امیدوارم منظورتون رو برآورده کنه :
http://xbundler.oreans.qarchive.org/
http://www.filedudes.com/XBundler-screenshot-37562.html
...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست
سلام بچه ها . نسخه ای که دوست عزیزم آقا سینا تو پست قبلی لینکش نوشتن حدود 80$ قیمتشه ...
ممنون میشم اگر کسی از دوستان لینک نسخه رایگان شده یا مشابهه این نرم افزار ارایه کنه . البته منم دنبالشم .
با برنامه ای مثل Xenocode به راحتی میشه سورس کدهای نوشته شده در اسمبلی های دات نت رو مرور کرد.یعنی شکستن این کد ها ساده هست یا مشکل؟
سلام به همه ی دوستان . راستش فرصت نکردم سر حوصله با برنامه کار کنم ولی خوب یکی دوتا مثال کار کردم درست جواب داد .. بازم ممنون میشم با این نرم افزار کار کنید و نتیجه تست هاتون رو پست کنید تا بقیه دوستان هم استفاده کنن .
آشنایی با نرم افزار 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:
آخرین ویرایش به وسیله sinpin : دوشنبه 14 مرداد 1387 در 09:09 صبح