# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > امنیت در نرم افزار و برنامه نویسی > حرفه ای: محافظت خیلی قوی از سورس کد با .NET Reactor

## NASA's Spaceman

سلام
این نرم افزار واقعا قوی هست و من خودم تستش کردم با آخرین قدرتش که سورس ها رو پیچیده کرد هر چی سعی کردم تا با red gate بازش کنم به هیچ وجه باز نشد
اینم لینک دانلود
فقط دوستان تشکر فراموش نشه
http://soft98.ir/software/programmin...T-Reactor.html
با آرزوی نابودی تمام ه.ک.ر ها و نرم افزار های ه.ک از سراسر جهان
با سپاس Spaceman

----------


## محمد آشتیانی

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

----------


## NASA's Spaceman

بفرما
https://www.zeta-uploader.com/en/dl-...oader.com%2fen
نکته ای که درباره این نرم افزار یادم رفت بگم اینه که سرعت اجرا شدن برنامه رو هم پایین نمیاره
امیدوارم که به این راحتی ه.ک نشه
با سپاس Spaceman

----------


## محمد آشتیانی

دوست عزیز البته به نظرم این از SmartAssembly بهتره ، اما نهایتا قابل نفوذه
http://s5.picofile.com/file/81366159...on403.zip.html

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

----------


## NasimBamdad

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



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

----------


## NASA's Spaceman

من تو سایت های خارجی کلی گشتم و به آخرین نتیجه ای که رسیدم این بود
راه نفوذش خیلی سخت هست و هر کسی بلد نیست
اکثر شرکت های بزرگ از این نرم افزار استفاده میکنن منتها از نسخ قبلیش که راه نفوذش راحت تر بوده
و چیزی که من توی سایت های خارجی دیدم نوشته بودن نسخه 2 این نرم افزار راه نفوذ راحت تری داشته ولی این نسخه 4 تمامی اون نقطه ضعف ها رو پوشش داده و چیزی دیگه ای که نوشته بودن این بود که باید نتظر مون و دید که آیا این نسخه نقطه ضعف داره یا نه
و الان از همه چی بهتر همین هست و باید منتظر موند و دید در آینده چی میشه
دوستان تشکر لطفا فراموش نشه
با سپاس Spaceman

----------


## Mojtaba0

اینم کاری نیست متاسفانه  :ناراحت: 

براحتی میشه نفوذ کرد بهش.البته کدهاش مبهم تر از نمونه های دیگست.

پچ شد/
http://s5.picofile.com/file/81366451...tched.rar.html

----------


## morteza5358

خخخخخخخخخخ
فکر کنم این بحث هم بی فایده باشه :))
به قول استاد Mohammad.Ashtiani اونی که کرم کرک کردن داره به راحتی میاد باز میکنه حالا شما هر کاری میخوای بکن :)
لامصب اینا اگه اینقد وقت که گذاشتن برای ساخت این برنامه ها اگه میذاشتن برا یه کار دیگه الان جایزه نوبل داشتن...

راستی سلام :))

----------


## morteza5358

دوستان عزیز
کسی میتونه این فایل رو باز کنه؟
من که نتونستم
کسی میتونه بفهمه چطوری بسته شده؟
فکر کنم بتونیم از این فایل به نتیجه ای برسیم :)

http://morteza5358.persiangig.com/CS...NCutter32x.rar

----------


## Mojtaba0

http://s5.picofile.com/file/8136659384/de.PNG

----------


## Mojtaba0

> دوستان عزیز
> کسی میتونه این فایل رو باز کنه؟
> من که نتونستم
> کسی میتونه بفهمه چطوری بسته شده؟
> فکر کنم بتونیم از این فایل به نتیجه ای برسیم :)
> 
> http://morteza5358.persiangig.com/CS...NCutter32x.rar


*محافظت: Eazfuscator - ضعیف*

----------


## morteza5358

دوست عزیز من فقط یه مشت اسم متد میبینم
کد ها رو نمیشه دید
ببینید تو این عکس 2 تا کلاس هست که عکس قفل داره!!!!
چطوری میشه کد هارو دید؟؟؟؟؟؟؟
اصلا چطوری اینطوری شده؟؟؟؟ :)))))

----------


## Mojtaba0

من که نمیدونم dll شما چی هست.فقط deObfuscate کردمش و بعد Reflector متدهاشو نشون میده دیگه.

*یعنی این سورس فایل شما نیست؟* 

البته اینو بگم بعد از deob... ممکن اضافاتی مثل کلاسها و متدها و متغیرهای اضافی تو کدهاش باشه یا تغییر اسمی تو متدها و کلاسها و...
یا مثلا متد تو متد برای ر سیدن به متد و کلاسی که متد توش هست.
 ولی کلیت سورس همون هست.

مثلا متد چک کردن license

public bool method_16()
{
    DateTime time = new DateTime(0x7dc, 2, 15);
    if (DateTime.Now.Subtract(time).Days < this.vmethod_4())
    {
        return false;
    }
    RegistryKey key = null;
    try
    {
        key = Registry.CurrentUser.OpenSubKey(this.method_14(), false);
        if (key == null)
        {
            return !this.method_15();
        }
    }
    catch
    {
        return true;
    }
    long num = 0L;
    long num2 = 0L;
    long num3 = 0L;
    try
    {
        long num4 = (long) key.GetValue(string.Empty, 0);
        num = num4 / 0x4e20L;
        num4 = num4 % 0x4e20L;
        num2 = num4 / 200L;
        num4 = num4 % 200L;
        num3 = num4 / 2L;
    }
    catch
    {
        return true;
    }
    finally
    {
        key.Close();
    }
    time = new DateTime((int) num, (int) num2, (int) num3);
    return (DateTime.Now.Subtract(time).Days > this.vmethod_4());
}



دانلود کنید خبر بدین:
http://s5.picofile.com/file/8136673250/ed.rar.html

----------


## Mojtaba0

فایلی که deobfuscate شده براحتی با reflector باز میشه.
لیست متدها رو هم که میبینید.(مثل عکسی ک قبلا گذاشتم)
شما متدهای تو در تو رو پیش برید به سورس مورد نظر میرسید./
لطفا لطفا اینجا سعی در حل مشکل بکنیم.(اینجا آموزش نفوذ نیست که خوب)

*ما اینجا میخوایم امنیت کد را بالا ببریم و راه نفوذ رو تا حد امکان مسدود کنیم.
*این که چطور نفوذ صورت میگیره و چرا شما نمیتونین مهم نیست..چون شما کرکر نیستین. مهم اینه که کرکر براحتی میتونه به سورس برسه و این امنیت دات نت رو زیر سوال میبره متاسفانه.

*چیزی که مهمه اینه که امنیت به حدی بالا بره که سورس لو نره و تا حدی جلوی کرک رو بشه گرفت.*

*تا حالا خوب داریم پیش میریم.اینکه پروتکتورهای مختلف رو تست میکنیم و ...

پس ادامه میدیم تا بتونیم به نتیجه برسیم و بهترین روش حفاظت رو بکار ببریم.*

----------


## morteza5358

> فایلی که deobfuscate شده براحتی با reflector باز میشه.
> لیست متدها رو هم که میبینید.(مثل عکسی ک قبلا گذاشتم)
> شما متدهای تو در تو رو پیش برید به سورس مورد نظر میرسید./
> لطفا لطفا اینجا سعی در حل مشکل بکنیم.(اینجا آموزش نفوذ نیست که خوب)
> 
> *ما اینجا میخوایم امنیت کد را بالا ببریم و راه نفوذ رو تا حد امکان مسدود کنیم.
> *این که چطور نفوذ صورت میگیره و چرا شما نمیتونین مهم نیست..چون شما کرکر نیستین. مهم اینه که کرکر براحتی میتونه به سورس برسه و این امنیت دات نت رو زیر سوال میبره متاسفانه.
> 
> *چیزی که مهمه اینه که امنیت به حدی بالا بره که سورس لو نره و تا حدی جلوی کرک رو بشه گرفت.*
> ...


سلام
من کاملا با شما موافقم
همون طور هم و تو سوالاتم مشخصه میخوام ببینم چطور این فایل قفل گذاری شده.
من هم مثل بقیه بجه ها واقعا واقعا نگران امنیت برنامه هام هستم.
خیلی دردناکه که با یه درگ کردن طی یه ثانیه زحمت های طولانی که کشیدی رو به باد میدن.. :(

اما از این ها گذشته من هنوز اسمارت اسمبلی رو ترجیح میدم. به خاطر امکانات منحصر به فردش.
به پروژه خیلی ساده رو با اسمارت پیچیده کردم ببینید به نظرم با اون برنامه که معرفی شد برابری میکنه
به نظرم امکان String Encoding اسمارت اسمبلی خیلی میتونه کمک کنه...


با احترام

----------


## esafb52

سلام دوستان البته خودتون استاد هستید ولی در حین تست این فایل ها دقت کنید اجراشون نکنید پارسال بود فکر کنم برای تست نمونه برنامه هایی رو درا نجمن گذاشته بودن که یا برای سرقت اطلاعات بودن یا خرابکاری فکر کنم تایپیک اش باشه اگه سرچ کنید
موفق باشی

----------


## morteza5358

> سلام دوستان البته خودتون استاد هستید ولی در حین تست این فایل ها دقت کنید اجراشون نکنید پارسال بود فکر کنم برای تست نمونه برنامه هایی رو درا نجمن گذاشته بودن که یا برای سرقت اطلاعات بودن یا خرابکاری فکر کنم تایپیک اش باشه اگه سرچ کنید
> موفق باشی


:|
ذهن ناقص من میگه همچین برنامه هایی رو لااقل تو این تاپیک نمیذارن. اینجایی که همه خودشون یه پا  آنتی ویروس هستند :)

----------


## NASA's Spaceman

بعضی از موارد مهم جهت پیچیده کردن الگوریتم کد ها
1-استفاهد از توضیحات در بین خطوط
2-استفاده از این نرم افزار ها
3-اگه امکانش هست از وب سرویس استفاده شه
این لینک هم اطلاعات خوبی داخلش هست
دوستان اگه کسی مواد بیشتری رو میدونه بزاره تا همه استفاده کنن
و اون دوستمون هم راست میگه لطفا هیچ کس فایل exe ها رو باز نکنه تا مشکلی پیش نیاد(قصد توهین به کسی رو نداریم، کلی گفتیم)
با سپاس Spaceman

----------


## sohil_ww

بعضی از دوستان تو همین تالار هستن که که ادعا دارن با الگوریتم های مبهم سازی که دارن می تونن غیر قابل نفوذ کنن کد ها رو 
کاری ندارم که کد ها غیر قابل نفوذ می شن مسئله اینه که برای این کار باید چه کرد منظورم بحث آموزشیه الان قربونش برم همه با یه reflector یا Desmart کد ها رو رفع ابهام می کنن اگه روشی هست که کمی کارو پیچیده تر کنی که هرکسی نتونه خیلی خوشحال می شم دوستان لینک آموزشی یا هر داکیمونت دیگه ای رو ارائه کنن

----------


## Mojtaba0

> به نظرم امکان String Encoding اسمارت اسمبلی خیلی میتونه کمک کنه...


این ویژگی چی هست چی میکنه؟

/ویرایش شد/

برنامه هایی که با Smart و تمام حفاطت ها محافظت میشن رو براحتی میشه به سورس رسید.
ضمنا رشته ها هم بصورت کامل قابل سرچ هستن بعد از DeObfuscate.
(شاید منظور شما قبل از DeObfuscate باشه که این مورد اهمیتی نداره برای کرکر)

مثلا همون فایل test پست قبلی شما رشته ها براحتی قابل رویت هستن.
مثلا من "message" رو ویرایش کردمش.
ببینین:
http://s5.picofile.com/file/81368360...tched.rar.html

*منظورتون رو واضح تر بگین./ لطفا همون پاسخ رو ویرایش کنید که تاپیک شلوغ نشه.*

----------


## morteza5358

> این ویژگی چی هست چی میکنه؟


ببین این میاد رشته های تو کد ها رو Encode میکنه
چیزهایی مثل پسورد ها، کوئری ها و ... همین ویژگی خودش چندین قسمت داره که قابل تنظیمه.
واقعا عالیه باز هم غیر از string Encoding  چندین ویزگی دیگه هم داره این اسمارت اسمبلی.
به نظر من اگه همه این ها رو روی یه پروژه اعمال کنیم کار خیلی خیلی خیلی سخت میشه
به همین خاطره که میگم هنوز به اسمارت اسمبلی ایمان دارم.. :)

مثل اینکه بچه ها خوششون نمیاد وگر نه یه پروژه میگذاشتم ببینم میتونین دیکد کنین یا نه... :(

به غیر از این مسائل، اسمارت ویژگی هایی داره که میتونه خیلی کمک کنه از جمله گزارش خطا های برنامه. من خودم ازش استفاده میکنم. دقیقا مشخص میکنه تو کدوم خط خطا اتفاق افتاده و گزراش کامل برات ارسال میکنه.

با احترام

----------


## Mojtaba0

خوب من فکر میکنم بهتره اینجا اول بیایم و نرم افزارهای Obfuscater رو باهم مقایسه کنیم و دلیل برتری هریک رو لیست کنیم.

*موارد مهم در برتری:*
*1-پیچیده بودن و نامفهوم بودن کدها پس از DeObfuscate
-یعنی وقتی پروتکشن رو برداشتیم باز هم کدها پیچیده و تودرتو و با اسامی نامفهوم باشه  کلاسها و متدهای تودرتو برای رسیدن به سورس تولید شده باشه

- اسم کنترل ها و کلاس ها و متدها و... با سورس اصلی فرق کنه.
(بعضیا بصورت مثلا textBox1,2,3,... هستن ولی بعضیا اسامی نامفهوم مثل  bfgbnd5erwr که مسلما نامفهوم برتری داره)

- رشته ها انکریپت شده باشن و قابل سرچ توسط ریفلکتور نباشن (تا حالا ندیدم)

2-محافظتش طوری باشه که قبل از DeObfuscate اصلا تو Reflector باز نشه. (بعدش که مسلما باز میشه)

3-... (موارد مهم دیگر را شما پیغام خصوصی کنید اضافه کنم)


نتایج تست رو کامل همینجا اعلام کنید و از نظرات کلی که مثلا این خوبه و بدون ذکر دلیل خودداری کنید که هم از شلوغی جلوگیری کنیم و هم راحت تر نتیجه گیری کنیم.

به امبد موفقیت /*

----------


## morteza5358

خب دوستان من امروز وقتمو گذاشتم برا این قضیه :)
یه فایل اینکد کردم ببینید میتونین بازش کنین؟(کد مورد نظر برنامه چیه؟)
خداییش اگه اینو پیدا کردین نا امید میشم :))
من که خودم نتونستم دیکد کنمش...
هر کس بازش کرد دستورات داخل متد کلیک باتن رو بذاره...

با احترام

----------


## Mojtaba0

> خب دوستان من امروز وقتمو گذاشتم برا این قضیه :)
> کد مورد نظر برنامه چیه؟


موندم بگم؟ نگم؟ (فقط ناامید نشین و ادامه بدین)

*سطح امنیت: ضعیف (بهتر از سایرین!)
*دارای آتی دیباگ و آنتی دامپ هست ولی با این وجود براحتی میشه دورشون زد متاسفانه.
*
کد مورد نظر 5358*
آقا ناامید نباش خدا بزرگه/

*یه ایده:
*استرینگ ها رو قبل از کامپایل خودمون انکریپت یا انکد کنیم و موقع فراخوانی دیکریپت یا دیکد کنیم مثلا جای اینکه کد "1" رو وارد کد نویسی کنیم از تبدیل مبنای64 استفاده کنیم "MQ==" وارد کد کنیم تا قلبلیت سرچ نداشته باشه! یعنی اصلا اون رشته هایی که استفاده میشه برای نمایش تو سورس موجود نباشه و تبدیل شدش فقط باشه که موقع استفاده عکس تبدیل بشه و نمایش بده.(کار میکنم روش خبر میدم)

----------


## NASA's Spaceman

اینی که میگی چجوری میشه؟
با سپاس Spaceman

----------


## Mojtaba0

> اینی که میگی چجوری میشه؟
> با سپاس Spaceman


مثلا یه برنامه کوچک انکریپت به md5 برا خودمون بنویسیم و همیشه کنار دستمون باشه. هر وقت میخوایم یه رشته ای تو برناممون استفاده کنیم انکریپت کنیم و اونو تو کد برنامه قرار بدیم.

مثلا فرض کنید یه انکدر داریم برای خودمون حالا هرچی md5,...

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

موقعی که میخوایم تو برنامه یه مسیج بدیم مثلا:

MessageBox.Show("اطلاعات ورودی اشتباه است", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);


میایم و اول دیکد میکنیم معادل انکد شده اون رشته ها رو بعد مسیج رو نشون میدیم.اینطوری:

string str2 = mydecoder("dcldsnjlnsdvknsvkwnalkscna");
string str1 = mydecoder("sdcdsvscsdcsdcsdsdvsfbfjhh");
MessageBox.Show(str2, str1, MessageBoxButtons.OK, MessageBoxIcon.Error);

اون رشته ها هم که تو مسیج جدید نوشتم با همون برنامه که انکد میکنه و دست خودمون هست بدست میاد.
با این کار وقتی تو ریفلکتور پیغام مسیج باکس رو سرچ کنن چیزی پیدا نمیشه.
امیدوارم تونسته باشم منظورمو برسونم.

----------


## NASA's Spaceman

یعنی اول یه بار با نرم افزار های مبهم سازی مبهمشون کنیم و بعد اون کد مبهم رو بجای کد اصلی بزاریم؟
با سپاس Spaceman

----------


## NASA's Spaceman

یه مورد دیگه که الان به ذهنم رسید
نرم افزار های مبهم سازی چجوری عمل میکنن و چجوری کد ها رو مبهم میکنن؟
و نحوه  کار الگوریتم های این مبهم ساز ها چیه؟
ایا میشه خودمون یکی برا خودمون بسازیم؟
با سپاس Spaceman

----------


## Mojtaba0

> یعنی اول یه بار با نرم افزار های مبهم سازی مبهمشون کنیم و بعد اون کد مبهم رو بجای کد اصلی بزاریم؟
> با سپاس Spaceman


نه !
این نمونه رو ببینید.(download)
رویداد کلیک اول رو ما داریم دست خودمون . اصلا همین برنامه رو داریم دست خودمون.
رویداد کلیک دوم رو میزاریم تو برنامه برای دیکد.مثلا یه متد با عنوان decoder

مثلا میخوایم رشته "خطا" رو تو یه متغیر ذخیره کنیم.

حالت عادیش اینه که:
string str = "خطا"

ولی ایده من:
string str = decoder(P3D/kE8knuk=)


سوال دوم شما:
خوب شما باید یسری کلاسها و متدهای تودرتو تو برنامتون بذارین و از اسامی نامفهوم استفاده کنید که خوب این کار توسط خودتون منطقی نیست ولی خوبیش اینه که دیگه قابل شناسایی با ابزار کرک نیست.البته مبهم سازها در حد سرسام آوری این کاررو میکنن که دسترسی به سورس رو توسط سودجو منتفی میکنه.ولی در مورد کرک کاری نیست.
البته یسری از مبهم سازی ها هم شامل کاراکترهای غیرمجاز و دستکاری هدر و ... میشه که شما نمیتونین خودتون انجام بدین.

----------


## Mojtaba0

*به یه ایده جدید برخوردم:(عکسو ببینید)*



*در مورد برنامه نویسی runtime  که با خط مشخصه تو عکس کسی چیزی بلده ؟*

*یعنی بجای اینکه دستور رو مستقیم بدیم دستور رو بصورت رشته بدیم که اجرا بشه.*

مثلا یه رشته درست کنیم اینطوری:

string str1 = @"MessageBox.Show("test");"

*بعد این رشته رو بدیم برنامه که به صورت runtime به دستور تبدیل کنه و اجرا کنه؟*

----------


## morteza5358

سلام
به نظر من این کار از بیخ اشتباهه :)
فرض کنید یه برنامه چند نخی داریم. اونوقت میخوایم چیکار کنیم؟
غیر از این، فکر کنم با این کار سرعت اجرای برنامه پایین میاد.
به نظر من حرف آقای Mohammad.Ashtiani کاملا درسته، ما مث بچه آدم برنامه مون رو مینویسیم و در نهایت تمام سعی خودمونو میکنیم برای مبهم سازی کدها ( با نرم افزار ها)
اینکه فکر کنیم میتونیم 100 درصد جلو کرک شدن رو بگیریم داریم اشتباه میکنیم.

با احترام

----------


## NASA's Spaceman

فقط یه نکته لطفا کسی فایل های exe رو اجرا نکنه در صورت اجرا مسولیت هر گونه اتفاقی بعهده کسی هست که اجرا کرده
من اینجا از یه روش دیگه برای رمز گزاری استفاده کردم امیدوارم این یکی به این راحتی نشه فهمید
http://uplod.ir/nae9b5dgktsg/Windows...ion409.rar.htm
و اینم دومیش
http://uplod.ir/cw12tytqrvk7/Windows...on409+.rar.htm
و تنها چیزی که من میخوام این هست اون چیزی که تو تکست باکس قرار میگیه چیه؟
با سپاس Spaceman

----------


## Sir-Programmer

> خب دوستان من امروز وقتمو گذاشتم برا این قضیه :)
> یه فایل اینکد کردم ببینید میتونین بازش کنین؟(کد مورد نظر برنامه چیه؟)
> خداییش اگه اینو پیدا کردین نا امید میشم :))
> من که خودم نتونستم دیکد کنمش...
> هر کس بازش کرد دستورات داخل متد کلیک باتن رو بذاره...
> 
> با احترام


آقا خدا شاهده فایل این دوستمون هم واسه آنتی ویروس ما ویروس بود (Eset Nod32) ! ولی من میدونستم که با مبهم سازی فایل ، آنتی ویروس ها بهش گیر میدن حالا بیخیال ! 
حالا این یکیو میزارم که امیدوارم اینبار حذف نشه

----------


## esafb52

> *به یه ایده جدید برخوردم:(عکسو ببینید)*
> 
> 
> 
> *در مورد برنامه نویسی runtime  که با خط مشخصه تو عکس کسی چیزی بلده ؟*
> 
> *یعنی بجای اینکه دستور رو مستقیم بدیم دستور رو بصورت رشته بدیم که اجرا بشه.*
> 
> مثلا یه رشته درست کنیم اینطوری:
> ...


با سلام 
بفرما 
http://www.codeproject.com/Articles/...ode-at-Runtime

----------


## esafb52

با سلام میشه بگین به غیر از رفلکتور با چه برنامه هایی میتونین سورس کد رو ببینین؟

----------


## NASA's Spaceman

دوست عزیز به هیچ عنوان اسم هیچ نرم افزار هکی رو تو این تاپیک نمیارید و هیچ آموزشی ازش نمیدیم و به هیچ عنوان کسی نرم افزار های دیگری رو هک نمیکنه
این رو کلی گفتم لطفا کسی به هیچ عنوان اسمی از روش های هک نیاره
این پروژه هایی که میبینی یه سری برنامه های کوچولو هستن که میخوایم تست کنیم و ببینیم ایمنی برنامه در برابر هک چقدر هست 
با سپاس Spaceman

----------


## NASA's Spaceman

نتیجه نهایی کل این تاپیک

برای محافظت از سورس کد چند تا کار رو باید انجام بدین که 100 درصد نیست ولی میزان امنیتش بالاست
1-comment  توی برنامه زیاد باشه بطوری که وقت خودتون میخواین رمز رو بخونین هم گیج بشین
2-رمز رو هیچ وقت ننویسین مثل نمونه زیر
نمونه اشتباه 
            if (textBox1.Text == "dzfbfgbfxb")
            {

            }
نمونه صحیح
            string تست = "dg";            string q = "er";
            string बहग = تست + q;
            if (textBox1.Text == बहग)
            {
            }

نکته:اینی که من نوشتم یه نمونه خیلی خیلی ساده هست برای یادگیری آسون همه و شما خودتون باید یه الگوریتم برا خودتون بسازین و هر برنامه الگوریتمش با برنامه قبلی باید تفاوت داشته باشه
3-اسم تکست باکستون رو حتما به یه چیز دیگه عوض کنین
4-تا جای ممکن از چند تا زبون مختلف استفاده کنین از سه تا زبون به بالا بجز انگلیسی(برا اینکه همه انگلیسی رو بلد هستند ولی تعداد ادمای خیلی کمی هستن که به سه زبون یا بیشتر مسلط باشن و معمولا این شامل هکر ها نمیشه)
5-هنگام مبهم سازی فقط از یه نرم افزار استفاده نکنین و از دو تا یا بیشتر استفاده کنین
6-بعد از انجام همه اینکارها میتونین قانون کپی رایت رو بخرین که اینطوری اگه نرم افزار هک شد از طریق دادگاه هکر رو پیدا و مجازات میکنن
7-سعی کنین یه بخش بزارین که موقعیت فعلی نرم افزار و آی پی که داره ازش استفاده میکنه رو برای سازنده بفرستین تا در صورت بروز هک بتونین راحت تر هکر رو گیر بیارین و برای انجام اینکار حتما باید توی نصب برنامه توی قوانین که هنگام نصب تیک میزنیم بنویسین که کاری انجام میدین رو که قانونی باشه و باعث دردسر براتون نشه
8- توی کد هاتون از دستور try و catch استفاده کنین تا درصورت بروز مشکل اون دیالوگ باکس تو زمان اجرای فایل exe نمایان نشه
با وجود تمامی این موارد باز هم تا وقتی هوش مصنوعی قدرتمندی اختراع نشه امنیت هنوز 100 درصد نیست
با سپاس Spaceman

----------


## morteza5358

سلام
یه انتقاد :
این کاری که شما میگی به نظر من خوب نیست. :)
بابا شما فرض کنید یه سال تموم کد نوشتین، حالا بخواین این کارا رو با پروژتون انجام بدین بیچاره میشین که :))
به نظر من راهکاری پیدا کنین که کدنویسیتون رو عوض نکنه. بلکه بیاد از اون کدهایی که نوشتین محافظت کنه.
این که بیایم یه جوری کد بنویسیم که خودمون هم گیج بشیم به نظر من خنده داره :)
این که اسم اشیاء رو کامل عوض کنیم .....

در کل نظر من اینه:
برنامه باید جوری نوشته بشه که اگه 10 سال دیگه رفتیم سراغش برامون گیج کننده نباشه.
اسامی داخل پروژه باید کاملا واضح باشه.
کل پروژه باید جوری باشه که اگه سورس رو به کسی دادیم به راحتی ازش سر در بیاره.
و...

در نهایت بیایم یه راهکاری پیدا کنیم که از این پروژمون محافظت کنه
ما سعی خودمونو تو پیچیده کردن کد ها میکنیم.(البته با نرم افزارها و بعد از اتمام پروژه)
ولی با اینکه خودمون کد نویسی رو سختش کنیم رو باهاش مخالفم.

با احترم به بقیه دوستان

----------


## NASA's Spaceman

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

----------


## elec60

> با سلام میشه بگین به غیر از رفلکتور با چه برنامه هایی میتونین سورس کد رو ببینین؟
> من لینکی که میذارم برنامه دانا مال مدارس هست که با سی شارپ و فریم ورک 2 نوشته شده و سریال هم نداره و اصلا بجز مدارس به درد کسی نیخوره ولی من دوس داشتم کدهاش رو ببینم اما نتونستم ببینین میتونین ؟!http://www.akserver.ir/do.php?filena...75212414b1.zip


Jetbrains DotPeek

----------


## elec60

من با Jetbrain DotPeek چند تا از کنترلهای DotNetBar رو دیکامپایل کردم و کپی کردم تو word و متغیرهای عجیب و غریب رو find و replace کردم و بعد از صرف زمان قابل توجهی تونستم سورس رو دربیارم، زمانبره ولی کلا شدنیه، مبهم سازی فقط کار رو سخت تر میکنه و نمیتونه جلوی کار رو بگیره، مثل قفل فرمون ماشینه که فقط یکم وقت دزده رو میگیره

----------


## Mojtaba0

> 1-comment  توی برنامه زیاد باشه بطوری که وقت خودتون میخواین رمز رو بخونین هم گیج بشین
> 2-رمز رو هیچ وقت ننویسین مثل نمونه زیر
> نمونه اشتباه
> نمونه صحیح
> 3-اسم تکست باکستون رو حتما به یه چیز دیگه عوض کنین
> 5-هنگام مبهم سازی فقط از یه نرم افزار استفاده نکنین و از دو تا یا بیشتر استفاده کنین
> 6-بعد از انجام همه اینکارها میتونین قانون کپی رایت رو بخرین که اینطوری اگه نرم افزار هک شد از طریق دادگاه هکر رو پیدا و مجازات میکنن
> 7-سعی کنین یه بخش بزارین که موقعیت فعلی نرم افزار و آی پی که داره ازش استفاده میکنه رو برای سازنده بفرستین تا در صورت بروز هک بتونین راحت تر هکر رو گیر بیارین و برای انجام اینکار حتما باید توی نصب برنامه توی قوانین که هنگام نصب تیک میزنیم بنویسین که کاری انجام میدین رو که قانونی باشه و باعث دردسر براتون نشه
> 8- توی کد هاتون از دستور try و catch استفاده کنین تا درصورت بروز مشکل اون دیالوگ باکس تو زمان اجرای فایل exe نمایان نشه
> با سپاس Spaceman


سلام و تشکر از وقتی که میذارین (من یه نتایجی دارم میگیرم تو تاپیک جدید که زدم لیست میکنم)

*1- منظورتون از کامنت گذاری چیه؟چه تاثیری در پیچیده شدن داره؟/
2*-* رمز اصلا نباید استاتیک باشه* مثلا در نمونه شما یا فایلی که گذاشتین.رمز باید از یه الگوریتم پیچیده و اونم از یه کد سخت افزاری سیستم ساخته بشه تا روی هر سیستم یکتا و متمایز از سیستمهای دیگه باشه/ *"قفل نرم افزاری"* رو تو فروم سرچ کنید اطلاعات خوبی بدست میارید./
3- تایید میشه./
*4- منظورتون رو توضیح بدین.یعنی تو کامنت ها؟/
*5- تایید میشه/ فقط از مچ بودن اونا مطمین بشید و سرعت برنامه هم تست کنید/
6- تایید میشه/
7- اینکار ممکنه موجب نگرفتن کپی رایت بشه/ولی میتونین مثلا به بهانه بررسی نسخه بروز یکارایی بکنیم!/
8- تایید میشه/ از اصول برنامه نویسی حرفه ای کنترل استثناها هست./

البته این تمام کاری که برای حفاظت باید بکنیم نیست./
https://barnamenevis.org/showthread.p...-%D9%86%D8%AA)
دارم کاملش می کنم/
موفق باشید/

----------


## محمد آشتیانی

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

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


موفق باشید

----------


## Mojtaba0

> http://uplod.ir/nae9b5dgktsg/Windows...ion409.rar.htm
> و اینم دومیش
> http://uplod.ir/cw12tytqrvk7/Windows...on409+.rar.htm
> با سپاس Spaceman


*فایل اول* با *Enigma* پروتکت شده که ورژن 1 تا 3 براحتی آنپک میشن. ورژن 4 سخت تر میشه کار کرکر که البته نسخه فول 4.2 رو پیدا نکردم.کسی پیدا کرد نسخه غیر از 64بیتی بذاره برای عموم./

*فایل دوم* با *.Net Reactor* که البته بدلیل* پیچیده بودن کدها* من با یه 15دقیقه ای وقت نتونستم دورش بزنم ولی یه کرکر فک کنم کار راحتی باشه براش./

*درخواست*: *ممنون میشم راجع به کل روشی که در حفاظت از فایل دوم داشتین توضیح بدین.
فقط با reactor محافظت کردین یا محافظت دیگری یا کار دیگری؟
ابتکاراتی هم تو سورس داشتین؟
*




> حالا این یکیو میزارم ...


با Confuser محافظت شده و عین سورس قابل رویت هست./
امنیت پایین./

----------


## NASA's Spaceman

> سلام
> دوستان عزیز البته این تاپیک حرکت خوبیه ، اما بعضا خیلی مفید و تخصصی نیست
> با ارائه راهکارهای غیر عملی و غیر اصولی مثل تعویض اسم کنترل ها ، شلوغ کردن بی مورد کد و موارد دیگری از این قبیل  نه تنها کمکی به حفاظت از کد نمی کنید بلکه عملا دارید اصول کدنویسی استاندارد رو  هم زیر سوال می برید.
> به هر ترتیب لازم دیدم بنده هم نظر خودمو خدمتتون عرض کنم
> 
> تقریبا هیچکدوم از این راهکارهایی که اینجا بحث شده ، قابل استفاده تو یه *پروژه واقعی* نیست
> 
> 
> موفق باشید


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

----------


## NASA's Spaceman

> *فایل اول* با *Enigma* پروتکت شده که ورژن 1 تا 3 براحتی آنپک میشن. ورژن 4 سخت تر میشه کار کرکر که البته نسخه فول 4.2 رو پیدا نکردم.کسی پیدا کرد نسخه غیر از 64بیتی بذاره برای عموم./
> *فایل دوم* با *.Net Reactor* که البته بدلیل* پیچیده بودن کدها* من با یه 15دقیقه ای وقت نتونستم دورش بزنم ولی یه کرکر فک کنم کار راحتی باشه براش./
> *درخواست*: *ممنون میشم راجع به کل روشی که در حفاظت از فایل دوم داشتین توضیح بدین.
> فقط با reactor محافظت کردین یا محافظت دیگری یا کار دیگری؟
> ابتکاراتی هم تو سورس داشتین؟*


در مورد engima کل اینترنت رو زیر و رو کردم چیزی پیدا نکردم غیر از همون نسخه که طرز کارش رو نفهمیدم چه فرقی داشت با نسخه قبلی و یه قابلیت داره به اسم virtual box که امنیت رو خیلی بیشترش میکنه و خودم طرز استفادش رو یاد بگیرم به بقیه هم یاد میدم
و اما در مورد اون سورس کد دقیقا از همون 8 روش که نوشته بودم استفاده کردم منتها بدون کپی رایت و ردیاب
و مشکل این هست که اونی که با reactor مبهم شده بود به راحتی میشه از مبهم درش آورد، خودم تستش کردم
ولی با engima به این راحتی ها نبود و نشد و جالبیش این هست که از مبهم که درش آوردم باز هم نمیشد فهمید چی توی تکست باکس قرار میگیره و فقط با نگاه به سورس اصلیش میشه فهمید
و ابتکارش هم این بود که از یه الگوریتم ساده استفاده کردم و فقط اون الگوریتم یه مشکل داره و جواب رو استاتیک میکنه و الان میخوام روش کار کنم تا بتونم جوابش رو مثل شماره سریال متفاوت بسازم
نیاز داره که روش یکمی کار کنم
با سپاس Spaceman

----------


## Mojtaba0

> جالبیش این هست که از مبهم که درش آوردم باز هم نمیشد فهمید چی توی تکست باکس قرار میگیره و فقط با نگاه به سورس اصلیش میشه فهمید
> با سپاس Spaceman


*شما دقیقا reactor رو deob...  کردی و کدهاش نامفهوم بود حتی بعد از deob... ؟یا Enigma رو ؟*

_کلا از حفاظت این فایل reactor خوشم اومده.بیشتر تستش میکنم ببینم چطوره._

*میتونید یه برنامه رو با سه تا فایل بذارین ببینم شما چطور کار کردین؟*
همون برنامه رو مثلا سه فایلشو میخوام:
1-سورس یا کامپایل شده اصلی (خروجی Visual Studio)
2-محافظت شده (Obfuscated)
3-از محافظت بیرون اومده (DeObfuscated) (اینم بدین چون نمیدونم شما با چی کار میکنید)

*در مورد رمز یونیک هم کلمه "قفل نرم افزاری"و "سریال هارد"و "سریال CPU"و ...  رو سرچ کنید تو فروم اطلاعات خوبی بدست میارید.*

----------


## morteza5358

> سلام
> دوستان عزیز البته این تاپیک حرکت خوبیه ، اما بعضا خیلی مفید و تخصصی نیست
> با ارائه راهکارهای غیر عملی و غیر اصولی مثل تعویض اسم کنترل ها ، شلوغ کردن بی مورد کد و موارد دیگری از این قبیل  نه تنها کمکی به حفاظت از کد نمی کنید بلکه عملا دارید اصول کدنویسی استاندارد رو  هم زیر سوال می برید.
> به هر ترتیب لازم دیدم بنده هم نظر خودمو خدمتتون عرض کنم
> 
> تقریبا هیچکدوم از این راهکارهایی که اینجا بحث شده ، قابل استفاده تو یه *پروژه واقعی* نیست
> 
> 
> موفق باشید


جانا سخن از زبان ما میگویی.... :)

در مورد نرم افزار ها هم بگم تا وقتی *خود این برنامه ها کرک شدن* و ما داریم ازشون استفاده میکنیم چه انتظاری داریم که کسی نتونه پروژه ما رو دیکد کنه؟؟ :))

----------


## NASA's Spaceman

> جانا سخن از زبان ما میگویی.... :)
> 
> در مورد نرم افزار ها هم بگم تا وقتی *خود این برنامه ها کرک شدن* و ما داریم ازشون استفاده میکنیم چه انتظاری داریم که کسی نتونه پروژه ما رو دیکد کنه؟؟ :))


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

----------


## Mojtaba0

> در مورد نرم افزار ها هم بگم تا وقتی *خود این برنامه ها کرک شدن* و ما داریم ازشون استفاده میکنیم چه انتظاری داریم که کسی نتونه پروژه ما رو دیکد کنه؟؟ :))


*بحث کرک و بحث امنیت سورس دو مقوله جدا هستن.*

من تا وقتی از امنیت سورس مطمین نباشم برنامه رو نمیدم بازار.

ولی در مورد کرک بقول یکی از دوستان "بالاخره هر قفلی روزی باز(شکسته) میشه".

*بحث سخت کردن کرک خیلی مهمه.*

نقل قول از منبعی که یادم نیست:
برنامه ای که 20000تومن قیمتش هست و کرکشم اونقدر پیچیده که مثلا 1ماه وقت میبره ممکنه هیچ وقت کرک نشه چون ارزششو نداره کرکر یه ماه عمرشو بذاره واسه 20000تومن.
ولی پروژه هایی مثل مثلا PES یا Adobe یا Win یا ... که هم طرفدار دارن و هم قیمت قابل توجهی ارزش وقت گذاشتن رو دارن برا کرک.

پس ما نهایت تلاش برای حفظ سورس و سخت کردن کار کرک رو باید انجام بدیم.

----------


## Sir-Programmer

آقا اگه امکان داره بگید از میان این نرم افزار های مبهم ساز کدومشون کار کرکر هارو یه مقدار سخت تر میکنه ؟.Net Reactor یا The Enigma Protector یا Smart Assembly یا DeepSea Obfuscator ؟ یا نرم افزار های دیگه ای واسه مبهم سازی وجود داره که کارش بهتر باشه

----------


## NASA's Spaceman

Net Reactor از لحاظ امنیت خیلی قوی هست ولی یه سری نقطه ضعف ها داره که قوی ترین بحساب نمیاد
Smart Assembly افتضاحه
Obfuscator قبل از مبهم سازی با بقیه نرم افزار ها ابتدا با این مبهم کنین و بعد برین سراغ بقیه
The Enigma Protector فوق العاده قوی هست منتها ورژن 4.2 که جدید هست که البته نسخه کامل این ورژن هنوز نیومده و نسخه قبلیش خوب عمی میکنه
با سپاس Spaceman

----------


## Sir-Programmer

از بین .NET Readctor و Engima Protector کدومشون قویترن ؟

----------


## NASA's Spaceman

از نظر من enigma  قویتر هست
اگه عجله ندارین صبر کنین تا نسخه جدیدش کامل شدش بیاد تا امنیت بالاتر بره
و یه نکته که یادم رفت بگم با enigma که میخواین کار کنید برای امنیت بیشتر باید از virtual box این نرم افزار استفاده کنین که خودمم هنوز بلد نیستم کار کردن باهاش رو این روزا سرم شلوغه احتمالا هفته دیگه خودم برم یاد بگیرم چجوری باهاش کار کنم و بعدش آموزش کار باهاش رو میذارم اینجا
و خیلی قابلیت های خوبی داره که میتونین روی نرم افزارتون اعمال کنین و بعضی هاش بی نهایت بدردبخور هستن
با سپاس Spaceman

----------


## Mojtaba0

*یه لیستی از Obfuscator ها:*
https://barnamenevis.org/showthread.p...=1#post2090311

دوستانی که فرصت دارن سرچ و دانلود کنن و نمونه کار بذارن بررسی کنیم امنیتش رو.

موفق باشید./

----------


## elec60

> با آرزوی نابودی تمام ه.ک.ر ها و نرم افزار های ه.ک از سراسر جهان
> با سپاس Spaceman


اگه هكرها و كركرها نبودن چطوري ميخواستي از Visual Studio و SQL Server و Office و ... استفاده كني؟!

تو ايران با اين درآمدا كه نميشه اين محصولات رو خريد!!

ورژنهاي free هم كه زياد به كار نميان.

----------


## Hajivandian

> اگه هكرها و كركرها نبودن چطوري ميخواستي از Visual Studio و SQL Server و Office و ... استفاده كني؟!


SharpDevelop و MySql, SQlite و LiberOffice و ...  :متفکر:

----------


## elec60

درسته اينا وجود دارن، ولي هيچ IDE به VS نميرسه.

----------


## morteza5358

> *یه لیستی از Obfuscator ها:*
> https://barnamenevis.org/showthread.p...=1#post2090311
> 
> دوستانی که فرصت دارن سرچ و دانلود کنن و نمونه کار بذارن بررسی کنیم امنیتش رو.
> 
> موفق باشید./


سلام
دوستان من یه فایل رو انکد کردم ببینید سطح امنیتش چقدره.
هدف پیدا کردن کد برنامه هستش..
لینک دانلود

نام نرم افزار محافظت کننده : The Enigma Protector v3.70

----------


## Mojtaba0

> سلام
> دوستان من یه فایل رو انکد کردم ببینید سطح امنیتش چقدره.
> هدف پیدا کردن کد برنامه هستش..
> لینک دانلود
> موفق باشید


سلام و تشکر از شما که شروع به تست پروتکتورها کردین.لطفا* نام برنامه محافظ* رو هم با* ورژن دقیق* ذکر کنید.(الان پستتون رو ویرایش کنید لطفا)
دوستان دیگه هم هرکی برنامه ها رو که *لیست* کردم تونست دانلود کنه و نصب و یه خروجی پروتکت شده با تنظیم حداکثری حفاظت بگیره و بذاره برای تست تا بتونیم بهترین Obfuscator رو پیدا کنیم.
کد مورد نظر: 5358morteza / عین سورس معلومه./

*نتیجه تست:*
*The Enigma Protector v3.70*عین سورس قابل مشاهده
*مردود*

----------


## NASA's Spaceman

بفرما
مبهم شده با Eazfuscator
WindowsFormsApplication419.rar
رمز چیه؟
با سپاس Spaceman

----------


## Mojtaba0

> بفرما
> مبهم شده با Eazfuscator
> WindowsFormsApplication419.rar
> رمز چیه؟
> با سپاس Spaceman


کلمه مورد نظر: dHDVd74JGVBDss

*نتیجه تست:**Eazfuscator v4.5*عین سورس فقط با تغییر نام متدها قابل مشاهده*مردود*

----------


## Mojtaba0

آقایون فقط بخاطر اینکه من سورس اصلی رو داشته باشم و با پروتکت شده مقایسه کنم بیزحمت یکاری کنید:

یا موقع آپلود هر دو فایل با محافظ و بی محافظ رو بذارین.

یا این فایلی که ضمیمه کردمو محافظت کنید تا هر بار یه فایل محافظ شده آپ کنید و من با این مقایسه کنم.

با تشکر از شما./

----------


## Mr.reCoder

درود،

اجازه میخوام بعنوان یه برنامه نویس عرض کنم که "محافظت از کدهای Managed اسمبلی دات نت بوسیله کدهای Unmanaged اسمبلی غیر دات نت کاریست نشدنی!"

----------


## NASA's Spaceman

من که دنبال اون لیست نمیرم
هر چی دانلود میکنم نسخه دمو هست کرک هاشون هم نیست
با سپاس Spaceman

----------


## Mojtaba0

> درود،
> 
> اجازه میخوام بعنوان یه برنامه نویس عرض کنم که "محافظت از کدهای Managed اسمبلی دات نت بوسیله کدهای Unmanaged اسمبلی غیر دات نت کاریست نشدنی!"


میشه بیشتر توضیح بدین ؟

----------


## morteza5358

سلام
این همون پروژه قبلی با یه کد جدید:
این رو با یه طرفند دیگه انکد کردم. هدف پیدا کردن کد برنامه
امیدوارم خستتون نکرده باشم :))

----------


## Mojtaba0

> سلام
> این همون پروژه قبلی با یه کد جدید:
> این رو با یه طرفند دیگه انکد کردم. هدف پیدا کردن کد برنامه
> امیدوارم خستتون نکرده باشم :))


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

شما خروجی مبهم شده یه برنامه رو دادین به مبهم ساز دوم.
کد مورد نظر: ffx100

*نتیجه تست:*
*Confuser v1.x
*عین سورس فقط با تغییر نام متدها قابل مشاهده
*مردود

**نتیجه تست:*
*Dotfuscator ورژن ؟
*عین سورس فقط با تغییر نام متدها قابل مشاهده
*مردود*

----------


## saied7468

سلام به همه دوستان
لطفا اینو هم تست کنید و نظرتون رو بگید.ممنون
فکر کنم نتیجه بد نباشه!

----------


## Securebit

محافظت: ترکیبی از مبهم سازها + یک پروتکتور نیتیو.

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

سختی 1 از 10

----------


## saied7468

سلام جناب *Strong Bytes*
ممنون برا وقتی که گذاشتی  من سعی کردم از معروف ترین ابزار ها برای مبهم سازی استفاده کنم ولی بازم سورس در امد ولی واقعا چند نفر تو همین انجمن به غیر از شما توانایی باز گردوندن سورس رو دارن چون فکر کنم ترکیب چند مبهم ساز بهترین روشی هست که می شه استفاده کرد و فکر  کنم تعداد افرادی که می تونن سورس رو بر گردونن کم باشه  ؟

چه راههای دیگه ای برا محافظت از سورس می تونید پیشنهاد بدید ؟ ممنون

----------


## NASA's Spaceman

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

----------


## NASA's Spaceman

> محافظت: ترکیبی از مبهم سازها + یک پروتکتور نیتیو.


دوست عزیز این پروتکتور نیتیو یعنی چی؟
چی هست؟
کارش چیه؟
لطفا اگه میشه یه توضیح درموردش بده
با سپاس Spaceman

----------


## Securebit

> من سعی کردم از معروف ترین ابزار ها برای مبهم سازی استفاده کنم ولی بازم سورس در امد


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




> ولی واقعا چند نفر تو همین انجمن به غیر از شما توانایی باز گردوندن سورس رو دارن


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

----------


## Securebit

> دوست عزیز این پروتکتور نیتیو یعنی چی؟ چی هست؟ کارش چیه؟ لطفا اگه میشه یه توضیح درموردش بده با سپاس Spaceman


توضیح کامل رو اینجا مطالعه بفرمایید.

----------


## Mojtaba0

> محافظت: ترکیبی از مبهم سازها + یک پروتکتور نیتیو.


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

من بهترین روشی که به ذهنم میرسه همینه.
به نظر شما بهترین روش برای حفظ سورس و سخت کردن کرک اپلیکیشن دات نتی چیه؟

----------


## saied7468

سلام دوست عزیز اینطور که پیداست بهترین روش همونطور که جناب *NASA's Spaceman* گفتن نوشتن الگوریتم مبهم سازی بصورت شخصی برای برنامه های خودتون هست چون اینطوری طرف مجبوره با وقت زیاد روش معکوس کردنش رو پیدا کنه و نمی تونه از ابزار های اتوماتیک استفاده کنه .

پیشنهاد من اینه که یه تاپیک اختصاصی ایجاد کنیم و توش در مورد روش های ایجاد الگوریتم مبهم سازی و نمونه های کاربردی  اون رو با کمک اساتید مثل :*NASA's Spaceman* و *Strong Bytes* و NimaNT  و ... بزاریم

----------


## NasimBamdad

این تاپیک رو ایجاد کردم ، لطفا استاید نظرات خود رو اعلام کنند

لیـــــــــنک

----------


## Mojtaba0

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

ممنون میشم جواب سوالم تو پست 76 رو هم بدین لطفا.

*لینک فایل*

مشخصات حفاظت: Armadillo و Reactor هردو آخرین ورژن

با تشکر./

----------


## Securebit

> ممنون میشم جواب سوالم تو پست 76 رو هم بدین لطفا.


شرمنده به دلیل اینکه تبلیغ نشه نمی تونم جواب سوال شما رو بدم.

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

سختی 1 از 10

----------


## Mojtaba0

> شرمنده به دلیل اینکه تبلیغ نشه نمی تونم جواب سوال شما رو بدم.


یعنی برای امنیت بالا باید از پروتکورهای ایرانی استفاده کرد که ذکر نمیکنید؟

ممنون از پاسخ شما./

----------


## Securebit

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

----------


## morteza5358

سلام
دوستان عزیز من همچنان تا پیدا کردن یه روش مناسب (نسبی) برای محافظت از کد ها دست بردار نمیشم.. :))
یه پروژه پروتکت کردم ببینید امنیتش چقدره...
ممنون میشم پروژه هایی که میذارم امنیتش رو در مقایسه با پروژه های دیگه بگین.
هدف: پیدا کردن کد برنامه

*لینک دانلود*

*دوستان عزیز من این پروژه رو معمولی برنامه نویسی کردم (خودم کد ها رو پیچیده نکردم) و بعد از کامپایل با 2 تا نرم افزار پیچیده کردم.
از عزیزان خواهش میکنم امنیت این فایل رو تست کنید. در صورتی که امنیتش قابل قبول بود ابزار پروتکت کردنش رو معرفی میکنم.... :)*

اینم سورس برنامه:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApplication1
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            string ramz = "***";
            if (txtCode.Text == ramz)
            {
                MessageBox.Show("OK");
            }
            else
            {
                MessageBox.Show("NO");
            }
        }
    }
}




موفق باشید

----------


## Mojtaba0

> سلام
> دوستان عزیز من همچنان تا پیدا کردن یه روش مناسب (نسبی) برای محافظت از کد ها دست بردار نمیشم.. :))
> یه پروژه پروتکت کردم ببینید امنیتش چقدره...
> *لینک دانلود*
> موفق باشید


سلام
لطفا فایلی که برای تست میذارین حفاظت های انجام شده رو بنویسین.(پست قبلی رو ویرایش کنید)
قبلا ورژن Enigma 3.7 تست شده و عین سورس ازش بیرون میاد ولی مال شما نمیدونم دقیقا چی هست.

نتیجه تست:
Enigma ورژن ؟
به سورس با متدهای تودرتو رسیدم که رمز رو در نیاوردم.
ولی کرک براحتی میشه کرد چون سورس هرچند غیر اصلی قابل تحلیل هست ولی اگه قفل نرم افزاری خوبی بذارین مسلما کار تحلیل سورس بهم ریخته سختتر میشه.
من تازه کار با ابزار محدود نتونستم به سورس اصلی برسم.(یعنی سورس از دید یه تازه کار امنه)

حفاظت های انجام شده رو تو پست بنویسین.

اساتید اگه یه تستی بزنن ممنون میشم.

----------


## NasimBamdad

بی زحمت این رو هم تست کنید


Protected Link


سورس :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace Test1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            string ramz = "***";
            if (textBox1.Text == ramz)
            {
                MessageBox.Show("OK");
            }
            else
            {
                MessageBox.Show("NO");
            }
        }
    }
}


اول با Crypto Obfuscator For .Net آبفیوز شده . بعد با Engima Protector 4.20 پروتکت شده . ببینید مناسبه یا نه

----------


## Securebit

> سلام
> دوستان عزیز من همچنان تا پیدا کردن یه روش مناسب (نسبی) برای محافظت از کد ها دست بردار نمیشم.. :))
> یه پروژه پروتکت کردم ببینید امنیتش چقدره...
> ممنون میشم پروژه هایی که میذارم امنیتش رو در مقایسه با پروژه های دیگه بگین.
> هدف: پیدا کردن کد برنامه
> 
> *لینک دانلود*


سختی 1 از 10

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

----------


## morteza5358

> سختی 1 از 10
> 
> از این به بعد شرمنده دوستانی میشم که از مبهم سازهای تجاری عمومی استفاده میکنند چون همگی به سادگی از مبهم خارج میشوند.


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

----------


## Securebit

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


شما فایلی که از مبهم خارج شده رو دانلود و با رفلکتور باز کنید سورس مشخص هست، رمز ((:

----------


## NASA's Spaceman

> سختی 1 از 10
> 
> از این به بعد شرمنده دوستانی میشم که از مبهم سازهای تجاری عمومی استفاده میکنند چون همگی به سادگی از مبهم خارج میشوند.


دوست عزیز میشه بگین این مبهم ساز های تجاری عمومی که میگن کدوم دسته از مبهم ساز ها هستن؟(لطفا اسم مبهم ساز ها رو بنویسین)
و اینم یه فایل که داخلش دو تا فایل هست که یکی با .net reactor و دیگری با enigma مبهم شده
و از یه تکلوژی دیگه هم استفاده کردم که هر وقت رمز های این دو فایل دراودند اون نرم افزارش و اموزشش رو هم میذارم
https://www.zeta-uploader.com/en/dl-...oader.com%2fen
منتظر هستم و لطفا هر جور که میتونین این دو فایل رو باز کنین تا رمز هاشون مشخص بشه
با سپاس Spaceman

----------


## Mojtaba0

سلام
یه پروتکتور جدید پیدا کردم که الگوریتم جدیدی برای مخفی کردن سورس اصلی بکار برده.
فکر میکنم همون بحث Runtime Compile هستش.

پروتکتور: PV Logiciels\dotNet Protector 5

نمونه برنامه محافظت شده با این پروتکتور:

*دانلود*
هدف: رسیدن به سورس اصلی.

----------


## Securebit

> دوست عزیز میشه بگین این مبهم ساز های تجاری عمومی که میگن کدوم دسته از مبهم ساز ها هستن؟(لطفا اسم مبهم ساز ها رو بنویسین)


تمام پروتکتورها یا مبهم سازهای تجاری یا غیر تجاری عمومی که نسخه ای از آن برای دانلود وجود دارد.

----------

