# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > امنیت در نرم افزار و برنامه نویسی > آموزش: جلوگیری از لو رفتن سورس نرم افزار و حفاظت در برابر کپی غیرمجاز و کرک (بالاترین درجه امنیتی دات نت)

## Mojtaba0

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

*هدف:*
*1-جلوگیری از لو رفتن سورس نرم افزار
2-جلوگیری از کپی غیرمجاز نرم افزار
3-جلوگیری از کرک نرم افزار*

*اقدامات لازم:*
*1-طراحی قفل نرم افزاری
2-مبهم سازی کدها
3-جلوگیری از مفهوم سازی کدها
4-جلوگیری از نفوذ به فایلهای نرم افزار مثل فایل اجرایی و دیتابیس و...
*
با اقدامات بالا کسی که بخواد به سورس برسه یا برنامه رو کرک کنه باید تمام مراحل بالا رو دور بزنه و در نتیجه کار مشکلی رو پیشرو داره.

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

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

*By Mojtaba0*

----------


## Mojtaba0

*
طراحی قفل نرم افزاری قبلا در تاپیک های مجزا بحث شده/سرچ کنید

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

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

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

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

یعنی اقدامات لازم > مراحل 2 به بعد


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

همراه من باشید/

*By Mojtaba0*

----------


## Mojtaba0

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

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

اولین کار در حفاظت از سورس دات نت مبهم سازی و پیچیده سازی کدهاست (اصطلاحا Obfuscate). توجه داشته باشید که این کار با ایجاد کلاس ها و متدهای تو در تو و اسامی نامفهوم و کاراکترهای غیرمجاز و ... در سورس صورت می گیرد. که مسلما انجام این کار برای برنامه نویس کاری مشکل و خلاف اصول اساسی برنامه نویسی می باشد.
مثلا همه ما برای نامگذاری فرم ها از اسم Form1 یا frmMain یا امثالهم و برای رشته ها از strRegcode و ... استفاده میکنیم.اما اگر قرار باشد سورس نرم افزار ما دست افراد سودجو بیفتد باز هم باید این چنین شسته و رفته باشد.پاسخ یقینا منفی است.

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


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

همراه من باشید/
*By Mojtaba0*

----------


## NasimBamdad

اگر با ذکر مثال از نرم افزار ها ادامه بدید و آموزش این نرم افزار ها فکر کنم تاپیک پر محتوا تری داشته باشیم

----------


## Mojtaba0

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

*لیستی از مبهم سازها (Obfuscators): (آپدیت شد/ 5شهریور93)
*
SmartAssembly
Confuser
Crypto.Obfuscator.Enterprise
Eziriz.NET.Reactor
Eazfuscator
Deploy lx
Spices.Net Obfuscator
Obfusasm .NET Obfuscator
.NET Obfuscator Freeware
Skater .NET Obfuscator
Visual Studio .NET Obfuscator
Skater .NET Obfuscator Standard
.NET Obfuscator Ultimate Edition
.NET Obfuscation Software
.NET Obfuscator Professional
Professional .NET Obfuscator
Agile .NET Obfuscator
Manco .NET Obfuscator
Freeware .NET Obfuscator Skater Light
CodeObfuscate.com .NET Obfuscator
IntelliSide.com .NET Obfuscator
CooProtector.com .NET Obfuscator
Macrobject Obfuscator.NET
Obfuscator for .NET framework
CodeFort .NET & Silverlight Obfuscator
KeyObfuscator.NET - Evading Keyloggers
Obfuscator by Rixy
DeepSea Obfuscator
Agile .NET
.NET Cryptor
.NET code security tool


...


(چیز جدیدی پیدا کردین پیغام خصوصی بدین اضافه کنم به لیست)


دوستان هرکی برنامه ها رو که لیست کردم تونست دانلود کنه و نصب و یه خروجی پروتکت شده با تنظیم حداکثری حفاظت بگیره و بذاره تو *(این تاپییک)* برای تست تا بتونیم بهترین Obfuscator رو پیدا کنیم.


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

همراه من باشید/

*By Mojtaba0*

----------


## Mojtaba0

*نتیجه تست مبهم سازها: (به مرور کامل می شود)

(آپدیت شد / 7شهریور93)
*
*The Enigma Protector v3.70*
عین سورس قابل مشاهده
*مردود


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

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


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


SmartAssembly 6.8
*سورس با متدهای تودرتو همچنان کمی مبهم باقی می ماند.
*ارزش تست و مقایسه دارد*

----------


## samiasoft

ای کاش این تاپیک ادامه داشت و دوستان هرکدام رو تست و نتایج رو قرار میدادند

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

Agile .Net 6.3  

  Crypto Obfuscator 2015

----------


## milad.biroonvand

> ای کاش این تاپیک ادامه داشت و دوستان هرکدام رو تست و نتایج رو قرار میدادند
> 
> به هرحال...دوستان نظرتون در مورد این 2 پکر چیه ؟ من تقریبا تمام پکرهای موجود رو تست کردم فقط این دو بودند که انتی ویروس ها فایلشونو بعد از پک فایل مخرب ندونستند :
> 
> Agile .Net 6.3  
> 
>   Crypto Obfuscator 2015


من از اسمارت اسمیلی استفاده می کنیم و مشکلش اینه که حجم فایل exe را خیلی زیاد میکنه، آنتی ویروس ها فایل را ویروس میشناسن و فایل های linq را نمیتونه درست انجام بده.

----------


## samiasoft

> من از اسمارت اسمیلی استفاده می کنیم و مشکلش اینه که حجم فایل exe را خیلی زیاد میکنه، آنتی ویروس ها فایل را ویروس میشناسن و فایل های linq را نمیتونه درست انجام بده.


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

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

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

----------


## Reza-HNA

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


2 موردی که نام بردید از لحاظ امنیت که نمیشه روشون حساب کرد ( البته آخرین نسخه Agile بهتر شده ولی باز هم قابل آنپک هست )

ولی اگر با آنتی ویروس ها مشکل دارید ، گاهی اوقات میتونید با غیر فعال کردن بعضی آپشن ها در پروتکتور ، این مشکل رو حل کنید . 
برای مثال در ConfuserEx از 2 گزینه InvalidMetaData و Packer استفاده نکنید تا با آنتی ویروس به مشکلی بخوره .

موفق باشید ...

----------


## NasimBamdad

من از Crypto Obfuscator 2015 استفاده می کنم و مشکلی باهاش ندارم . به سختی هم آنپک میشه . حداقل به راحتی نیست

----------


## Reza-HNA

> من از Crypto Obfuscator 2015 استفاده می کنم و مشکلی باهاش ندارم . به سختی هم آنپک میشه . حداقل به راحتی نیست


به راحت ترین شکل ممکن انپک میشه  :چشمک:

----------


## NasimBamdad

> به راحت ترین شکل ممکن انپک میشه


میشه آنپکر اش رو بفرمایید ؟

----------


## Reza-HNA

> میشه آنپکر اش رو بفرمایید ؟


بله ، همون de4dot معروف قادر به آنپکش هست !

----------


## NasimBamdad

> بله ، همون de4dot معروف قادر به آنپکش هست !


دانلودش کردم . اما سورس کده همش . و اجرایی نداره . با VS هم کامپایلش کردم . ولی کلی اررور داره

----------


## Reza-HNA

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


خب این دلیل نمیشه که مشکل داشته باشه! به خاطر رفرنس هاش هست که کامپایل نمیشه .
به هر حال نکته اینجاست که Crypto Obfuscator آنپک میشه .

----------


## NasimBamdad

> خب این دلیل نمیشه که مشکل داشته باشه! به خاطر رفرنس هاش هست که کامپایل نمیشه .
> به هر حال نکته اینجاست که Crypto Obfuscator آنپک میشه .


موفق به اجراش شدم . درسته آنپک می کنه . اما نه کامل ، خیلی باید زمان گذاشت تا کد ها رو برداشت . خیلی موارد ReName بودند . 

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

----------


## rahmatipoor

سلام به همه دوستان

نظر دوستان با تجربه در مورد Eziriz.NET.Reactor چیه؟

----------


## Reza-HNA

> سلام به همه دوستان
> 
> نظر دوستان با تجربه در مورد Eziriz.NET.Reactor چیه؟


آخرین نسخه این پروتکتور ( ورژن 5 ) قابل آنپک هست . البته همه مواردی که گفتم بستگی داره به تجربه فردی که میخواد در برنامه نفوذ کنه !
موفق باشید ...

----------


## rahmatipoor

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

----------


## Reza-HNA

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


اشاره میکنم به این جمله :




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


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

----------


## NasimBamdad

میشه چند تا آنپکر نام ببرید ؟ 

ILSpy
de4dot 
net reflector


به جز اینا چه مدل های دیگه ای هم هست ؟

----------


## rahmatipoor

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


تشکر از راهنماییتون

نمونه اش رو میتونید مثال بزنید 

و اینکه با چه زبانی نوشته میشن این برنامه ها

----------


## Reza-HNA

> تشکر از راهنماییتون
> 
> نمونه اش رو میتونید مثال بزنید 
> 
> و اینکه با چه زبانی نوشته میشن این برنامه ها


با C#‎ یا Vb.net نوشته میشند :

https://github.com/yck1509/ConfuserEx/
https://github.com/lextm/obfuscar

----------


## rahmatipoor

نرم افزارهام رو کرک کردن و درخواست پول کردن. نیاز به کمک دوستان و اساتید دارم
لطفا این لینک رو ببینید ، توضیح کامل دادم.

لینک تاپیک

----------


## electera

> نرم افزارهام رو کرک کردن و درخواست پول کردن. نیاز به کمک دوستان و اساتید دارم
> لطفا این لینک رو ببینید ، توضیح کامل دادم.
> لینک تاپیک


آقای رحمتی پور تاپیک شما رو دیدم، خیلی آزار دهنده ست و راستش خیلی ناراحت شدم، خیلی بده که کلی بیایی زحمت بکشی و بعدش اینطوری بشه درسته به خیر گذشت ولی نبود راحل درست رو چیکار کنیم؟! میخواستم همونجا جواب بدم که ظاهراً قفل شده.
جالبه مشکلمون یکیه و سوالات شما دقیقاً سوال منم هست.
بعداز چندین سال و تست انواع زبانها و محیطها مثل اکشن اسکریپت، لب ویو، QT، جاوا، وب و PHP اومدم سی شارپ که برای کار من فوق العاده ست و عالی میتونم با سخت افزار رو کنترل کنم و بعد 15 روز زبانشو درک کردن و 10 روز نوشتن برنامه متوسط حالا اومدم برنامه تحویل بدم، یک ماهه درگیر این مشکلاتم!
واقعاً خیلی بده که بجای اینکه درگیر کیفیت کار، پیاده سازی ایده و... باشیم، باید درگیر امینت سورس و... باشیم چیزی که خودش یک تخصصه و ای کاش جایی بود که با یک هزینه معقول، راحل یا مشاوره مناسب میداد.
مشکلم الان نیست، مشکلم اون جاست که باید یک برنامه خاص چندین سال توسعه پیدا کنه تا به نقطه مطلوب برسه و احساس میکنم آخرش چف و بستی نداره!

1- دوستان من تخصصم الکترونیکه اگر بشه حداقل بخشی از سورس برنامه رو که قراره قفل کد شده از دانگل رو بررسی کنه را درست مبهم سازی کرد، میتونم هزاران کد فعال سازی را بصورت AES برای چند سال در داخل میکرو یا ARM قرار بدم که طی شرایط خاصی بیاد لایسنس را بررسی و بعداز چند روز برنامه را فعال یا غیر فعال کنه و حتی درصورت عدم اتصال به USB زمان رو نگه داره و طرف با لاگ گرفتن، بررسی رم و ... درصورت لو رفتن کد، هفته بعدش از کار بیافته. برای اون تیکه از سورس سی شارپ که قراره شرط هارو بررسی کنه، راحل یا ایده ای هست؟
2- دوستان نظرشون در مورد Themida چیه؟
3- اوضاع امنیت سورس در جاوا اسکریپت (با فریم ورک electron) برای برنامه نویسی سمت دسکتاپ یا سرور به بدی NET. هست یا راحل داره؟

----------


## NasimBamdad

> آقای رحمتی پور تاپیک شما رو دیدم، خیلی آزار دهنده ست و راستش خیلی ناراحت شدم، خیلی بده که کلی بیایی زحمت بکشی و بعدش اینطوری بشه درسته به خیر گذشت ولی نبود راحل درست رو چیکار کنیم؟! میخواستم همونجا جواب بدم که ظاهراً قفل شده.
> جالبه مشکلمون یکیه و سوالات شما دقیقاً سوال منم هست.
> بعداز چندین سال و تست انواع زبانها و محیطها مثل اکشن اسکریپت، لب ویو، QT، جاوا، وب و PHP اومدم سی شارپ که برای کار من فوق العاده ست و عالی میتونم با سخت افزار رو کنترل کنم و بعد 15 روز زبانشو درک کردن و 10 روز نوشتن برنامه متوسط حالا اومدم برنامه تحویل بدم، یک ماهه درگیر این مشکلاتم!
> واقعاً خیلی بده که بجای اینکه درگیر کیفیت کار، پیاده سازی ایده و... باشیم، باید درگیر امینت سورس و... باشیم چیزی که خودش یک تخصصه و ای کاش جایی بود که با یک هزینه معقول، راحل یا مشاوره مناسب میداد.
> مشکلم الان نیست، مشکلم اون جاست که باید یک برنامه خاص چندین سال توسعه پیدا کنه تا به نقطه مطلوب برسه و احساس میکنم آخرش چف و بستی نداره!
> 
> 1- دوستان من تخصصم الکترونیکه اگر بشه حداقل بخشی از سورس برنامه رو که قراره قفل کد شده از دانگل رو بررسی کنه را درست مبهم سازی کرد، میتونم هزاران کد فعال سازی را بصورت AES برای چند سال در داخل میکرو یا ARM قرار بدم که طی شرایط خاصی بیاد لایسنس را بررسی و بعداز چند روز برنامه را فعال یا غیر فعال کنه و حتی درصورت عدم اتصال به USB زمان رو نگه داره و طرف با لاگ گرفتن، بررسی رم و ... درصورت لو رفتن کد، هفته بعدش از کار بیافته. برای اون تیکه از سورس سی شارپ که قراره شرط هارو بررسی کنه، راحل یا ایده ای هست؟
> 2- دوستان نظرشون در مورد Themida چیه؟
> 3- اوضاع امنیت سورس در جاوا اسکریپت (با فریم ورک electron) برای برنامه نویسی سمت دسکتاپ یا سرور به بدی NET. هست یا راحل داره؟


به نظر بنده باید شرایط فراهم کرد که اتصال به اینترنت حتما بررسی بشه ، مثلا تحت وب شدن برنامه گزینه خوبیه . یا دیتابس از نت خوانده بشه

----------


## rahmatipoor

> آقای رحمتی پور تاپیک شما رو دیدم، خیلی آزار دهنده ست و راستش خیلی ناراحت شدم، خیلی بده که کلی بیایی زحمت بکشی و بعدش اینطوری بشه درسته به خیر گذشت ولی نبود راحل درست رو چیکار کنیم؟! میخواستم همونجا جواب بدم که ظاهراً قفل شده.
> جالبه مشکلمون یکیه و سوالات شما دقیقاً سوال منم هست.
> بعداز چندین سال و تست انواع زبانها و محیطها مثل اکشن اسکریپت، لب ویو، QT، جاوا، وب و PHP اومدم سی شارپ که برای کار من فوق العاده ست و عالی میتونم با سخت افزار رو کنترل کنم و بعد 15 روز زبانشو درک کردن و 10 روز نوشتن برنامه متوسط حالا اومدم برنامه تحویل بدم، یک ماهه درگیر این مشکلاتم!
> واقعاً خیلی بده که بجای اینکه درگیر کیفیت کار، پیاده سازی ایده و... باشیم، باید درگیر امینت سورس و... باشیم چیزی که خودش یک تخصصه و ای کاش جایی بود که با یک هزینه معقول، راحل یا مشاوره مناسب میداد.
> مشکلم الان نیست، مشکلم اون جاست که باید یک برنامه خاص چندین سال توسعه پیدا کنه تا به نقطه مطلوب برسه و احساس میکنم آخرش چف و بستی نداره!



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

البته من خودم جدیدا تغییر رویکرد دادم و دارم نرم افزارهای تحت وب کار میکنم . 

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


برنامه نویس اولیه همین سایت علی بابا (alibaba.ir) یکی از مشتریهامون مشتریش بوده میگفت که اول نرم افزار دسکتاپ تولید میکرده و اینها ازش نرم افزار گرفته بودند بعدش پشتیبانی اینها رو قطع کرده بود و رفته بود سراغ وب . الآن یکی از شرکتهای خیلی بزرگ هستند

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

ببینیم اینجا چی به سرمون میاد. خدا رو چه دیدید شاید چند سال دیگه ما هم سری توی سرها درآوردیم :لبخند:

----------


## rahmatipoor

> به نظر بنده باید شرایط فراهم کرد که اتصال به اینترنت حتما بررسی بشه ، مثلا تحت وب شدن برنامه گزینه خوبیه . یا دیتابس از نت خوانده بشه


مشکل اینجاست که خیلی از مشتریها سیستمشون به اینترنت متصل نیست مثلا مراکز نظامی

----------


## electera

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


بله همینطوره، هرکدوم معایب و مزایای خودش رو داره.
اما باور بفرمایید محیط ویژوال استدیو و #C یک چیز دیگه است، چندتا باتوم و  تکس باکس میزاری و میشینی روی اصل موضوع کار میکنی و دیگه درگیر UI و ظاهر  و... نیستی و بعداً میتونی روی زیبایی هم کار کنی اما تو وب بخش زیادی رو  باید بزاری برای دیزایین.
یک برنامه کنترل CNC یا جایی که ارتباط با سخت افزار الویت اول باشه، نمیشه به راحتی جایگزینی پیدا کرد.





> مشکل اینجاست که خیلی از مشتریها سیستمشون به اینترنت متصل نیست مثلا مراکز نظامی


دقیقاً همینطوره، یا در یک کارگاه صنعتی نمیشه وجود اینترنت را اجبار کرد ولی بودنش امکانات خوبی میده.




> https://github.com/yck1509/ConfuserEx/
> https://github.com/lextm/obfuscar


دوستان نظرشون درباره اینها چیه؟
و
1- دوستان من تخصصم الکترونیکه اگر بشه حداقل بخشی از سورس برنامه رو که   قراره قفل کد شده از دانگل رو بررسی کنه را درست مبهم سازی کرد، میتونم   هزاران کد فعال سازی را بصورت AES برای چند سال در داخل میکرو یا ARM قرار   بدم که طی شرایط خاصی بیاد لایسنس را بررسی و بعداز چند روز برنامه را  فعال  یا غیر فعال کنه و حتی درصورت عدم اتصال به USB زمان رو نگه داره و  طرف با  لاگ گرفتن، بررسی رم و ... درصورت لو رفتن کد، هفته بعدش از کار  بیافته.  برای اون تیکه از سورس سی شارپ که قراره شرط هارو بررسی کنه، راحل  یا ایده  ای هست؟
2- دوستان نظرشون در مورد Themida چیه؟
3- اوضاع امنیت سورس در جاوا اسکریپت (با فریم ورک electron) برای برنامه  نویسی سمت دسکتاپ یا سرور به بدی NET. هست یا راحل داره؟

----------


## NasimBamdad

> دوستان نظرشون درباره اینها چیه؟
> و
> 1- دوستان من تخصصم الکترونیکه اگر بشه حداقل بخشی از سورس برنامه رو که   قراره قفل کد شده از دانگل رو بررسی کنه را درست مبهم سازی کرد، میتونم   هزاران کد فعال سازی را بصورت AES برای چند سال در داخل میکرو یا ARM قرار   بدم که طی شرایط خاصی بیاد لایسنس را بررسی و بعداز چند روز برنامه را  فعال  یا غیر فعال کنه و حتی درصورت عدم اتصال به USB زمان رو نگه داره و  طرف با  لاگ گرفتن، بررسی رم و ... درصورت لو رفتن کد، هفته بعدش از کار  بیافته.  برای اون تیکه از سورس سی شارپ که قراره شرط هارو بررسی کنه، راحل  یا ایده  ای هست؟
> 2- دوستان نظرشون در مورد Themida چیه؟
> 3- اوضاع امنیت سورس در جاوا اسکریپت (با فریم ورک electron) برای برنامه  نویسی سمت دسکتاپ یا سرور به بدی NET. هست یا راحل داره؟



1- 100 تا قفل درست کن ، وقتی سورس لو بره کد های بررسی قفل رو بر میداره و تمام
2- Themida هم ظاهرا کرک شده
3- اطلاعی ندارم

----------


## reza55n

> 3- اوضاع امنیت سورس در جاوا اسکریپت (با فریم ورک electron) برای برنامه  نویسی سمت دسکتاپ یا سرور به بدی NET. هست یا راحل داره؟


سلام. تا جایی که میدونم از دات نت هم بدتره :لبخند گشاده!:  مثلاً تو NW.js سورس مستقیم تو فولدر برنامه س و تو electron هم سورس داخل یه فایل ASARه که به کمک یه بستۀ node.js کامل unpack میشه و اصلاً decompile هم نمیخواد، مثلاً سورس کامل برنامۀ اسکایپ رو میتونید با این روش بگیرید و بعد از ادیت مجدد Packش کنید!


ولی کلاً تو برنامه‌هایی که این مدلی ساخته میشن اصل کد برنامه معمولاً رو سرور قرار داره و این برنامه‌ها یه جورایی نقش همون مرورگر رو ایفا میکنن و بنظر میرسه این روش برای برقراری امنیت و جلوگیری از استفادۀ بدون مجوز ایده آل تر باشه چون بهرحال هر برنامۀ آفلاینی حتی اگه لایسنسش آنلاین باشه بازم قابل دور زدنه

----------

