نوشته شده توسط
Mohammad .net
با سلام
آیا نوشتن یک برنامه obfuscator خیلی مشکله ؟
یک مدته میخوام روی این موضوع مطالعه کنم ولی نمیشه چرخ رو دوباره اختراع کرد مخصوصا اینکه ما امکان فروش بین اللملی هم نداریم و این برنامه هم بسیار پیچیده هست .
من شخصا فکر کنم اگر بخرم بهتره چون واقعا نمیتونم ریسک کنم و برنامه هام رو همینطور بدم بیرون .
نمونه کد ریسورس شده
بخش چک کردن لایسنس (هر چند در انتهای کد درست دیکد نشده اما ابزارهای دیگه ایی هستند که همون قسمت آخر رو هم صاف و درست میدن دست هکر )
شما باشید برای کدی که ماه ها و یا شاید بیش یکسال زحمت کشیدید میدید دست یکنفر اونم به این راحتی سورسش کنه و استفاده کنه ؟
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.Management;
namespace ClassBuilderLicensing
{
public class Licensing
{
public string GetMyKey
{
get
{
try
{
string str2 = "";
string[] strs1 = Strings.Replace(GetMACAddress(), "-", ":", 1, -1, CompareMethod.Binary).Split(":".ToCharArray());
str1 = String.Concat(new string[]{"00452", strs1[0], "62-FE", strs1[1], "CB", strs1[2], strs1[4], "-", strs1[3], "RC", strs1[5]});
}
catch (string str1)
{
ProjectData.SetProjectError(str1);
str1 = "";
ProjectData.ClearProjectError();
}
return str1;
}
}
// Decompilation not complete! (2)
public string GetMACAddress()
{
string str2;
ManagementObject managementObject;
ManagementObjectCollection managementObjectCollection;
ManagementObjectEnumerator managementObjectEnumerator;
str2 = "";
ManagementClass managementClass = new ManagementClass("Win32_NetworkAdapterConfiguration ");
managementObjectCollection = managementClass.GetInstances();
managementObjectEnumerator = managementObjectCollection.GetEnumerator();
managementObject = (ManagementObject)managementObjectEnumerator.Curre nt;
if (!BooleanType.FromObject(managementObject["IPEnabled"])) goto IL_0056 else goto IL_0043;
str2 = managementObject["MacAddress"].ToString();
IL_0054: leave.s IL_0072
if (managementObjectEnumerator.MoveNext()) goto IL_0024 else goto IL_005f;
IL_005f: leave.s IL_0072
if (managementObjectEnumerator != null)
{
((IDisposable)managementObjectEnumerator).Dispose( );
}
IL_0071: endfinally
IL_0072: leave.s IL_0086
ProjectData.SetProjectError(e);
str2 = "";
ProjectData.ClearProjectError();
IL_0084: leave.s IL_0086
return str2;
}
}
}