PDA

View Full Version : بحث درمورد روش کد کردن توابع برنامه در لایسنس



once4ever
دوشنبه 06 خرداد 1387, 19:37 عصر
ابتدا بگم که سطح علمیم در زمینه کرک حد صفر هست.
با توجه به مطالبی که تو همین انجمن خوندم یک ایده ای گرفتم که هم خواستم اساتید در مورد این ایده و ضریب امنیتش (دلسرد شدن کرکرها) و همچنین میزان امنیتی که پک کردن فایلهای دات نت داره منو راهنمایی کنند.
میدونم فقط جنبه گیرنده مطلب دارم و کمکی به اساتید نمیکنم اما شاید کمک بشه برای کسانی که در سطح من هستند تا یک قدم به موضوع کرک نزدیکتر بشن.
(اسپشیالی فور آقای کشاورز : امیدوارم قوانین اینجارو (http://barnamenevis.org/forum/showthread.php?t=105690) نقض نکرده باشم )
توضیح: یک فایل آماده کردم که از هیچ روش آنتی کرک استفاده نمیکنه و فقط نام تابعی که . باید انجام بشه داخل سریال نامبر برنامه قرار دادم.
سوال اول: اصلا این روش در زمینه کرک می ها قرار میگیره؟ (اگر مربوط به کرک نیست پس امنیت آن در چه سطحی هست)
نکته: اگر کد سریال نامبر اشتباه باشه یا به یک exception بر میخوریم یا اینکه نهایتا تابع اشتباهی صدا زده میشه! (در اینجا هیچ اسمی برگردانده نمیشود.)
برنامه با دات نت 2005 نوشته شده . سریال نامبر با الگوریتم Rijndael کد شده.
در صورتی که احتیاج به سریال نامبر هست بفرمایید.
(لطفا اگر این تاپیک از پایه غلط هست! عفوووو بفرمایید ;) )

مهران موسوی
دوشنبه 06 خرداد 1387, 20:39 عصر
اگه Crack Me شما تحت فريم ورك دات نت نبود ... ميتونستم تستش كنم و نتيجه رو بگم ... اگه مقدوره با Win32 پياده سازيش كنيد ... در ضمن اطلاعات جامع تري در ضمينه ي كرك مي اعلام كنيد ... بگيد كه اگه سريال درست وارد بشه چه اطفاقي رخ ميده ...

Sir.V65j
دوشنبه 06 خرداد 1387, 21:52 عصر
سریال رو ذکر کنین شاید فرجی بشه!(حال تسته درست و غلط ندارم)
مهران جان دات نت هیچ غولی نیست که اینجوری win32 رو گرفتین میدونم یکم اولش سخته ولی با یکم ور رفتن با فایل های دات نت می بینین آسون تر از مهندسیه معکوس فایل های دات نت چیزی وجود نداره

once4ever
دوشنبه 06 خرداد 1387, 22:37 عصر
اگه مقدوره با Win32 پياده سازيش كنيبرنامه تبدیلشو پیدا میکنم و یدونه win32 میذارم.
البته خود دات نت واقعا با یک مهندسی معکوس حل میشه ولی برنامه های ofuscator یکم کارو سخت میکنند انگار (شایدم نمیکنند!)
اینو داخل باکس بنویسید و یکبار کلید register بزنید (با این کار این کد داخل setting برنامه ذخیره میشه و دفعه بعد دیگه احتیاجی به اینکار نداره)

+t0354Z6/+4jDzHYiq6CwwLT1SFOvnd0PEN4LpLdXn0=
اگر سریال نامبر درست باشه پیغام Done میده در غیر اینصورت نامی که برمیگردونه خالی هست.
شاید بجای کرک باید درمورد کی جن چک بشه!
(هربار میام اینجا منتظرم موردضرب و شتم قرار گرفته باشم :افسرده: )

once4ever
چهارشنبه 08 خرداد 1387, 12:43 عصر
همچنان منتظر نظرات و راهنماییهای دوستان هستم

مهران موسوی
چهارشنبه 08 خرداد 1387, 13:08 عصر
دوست عزيز شما ابزاري رو براي تبديل .Net به Win32 پيدا نخواهيد كرد ...


مهران جان دات نت هیچ غولی نیست که اینجوری win32 رو گرفتین میدونم یکم اولش سخته ولی با یکم ور رفتن با فایل های دات نت می بینین آسون تر از مهندسیه معکوس فایل های دات نت چیزی وجود ندارههمون اولش هم فكر نكنم سخت باشه ... فقط ميخوام بدونم ابزار خاصي براي Debug كردن دات نت وجد داره يا نه ؟؟

once4ever
چهارشنبه 08 خرداد 1387, 15:00 عصر
دوست عزيز شما ابزاري رو براي تبديل .Net به Win32 پيدا نخواهيد كرد ... منظور من تبدیل دات نت به برنامه ای که احتیاج به فریم ورک دات نت نداشته باشه. که برنامه اش هم هست.
به هر حال موضوع تاپیک یه چیز دیگه است.
ممنون

once4ever
پنج شنبه 09 خرداد 1387, 12:03 عصر
دیگه هیچ نظری نبود؟ همین؟!!!

Sir.V65j
پنج شنبه 09 خرداد 1387, 14:26 عصر
مهران جان از reflector و پلاگین هاش استفاده کن!
هنوز نتونستم کد های برنامه رو درست و حسابی ببینم !
درس و مقش هم اجازه نمی ده روش کار کنم خودمم نتونم حتماً توی انجمن های دیگه مطرح می کنم تا شاید فرجی بشه.

once4ever
پنج شنبه 09 خرداد 1387, 14:47 عصر
مهران جان از reflector و پلاگین هاش استفاده کن!با رفلکتور یا پلاگینهاش! تونستید سورس ببینید؟!

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

Fh_prg
شنبه 11 خرداد 1387, 09:26 صبح
رشته اصلي كد نشده اينه :

cc6.cc5.cp1.cp3.cc1.cp2

كه بعد از كد شدن تبديل ميشه به اين :

+t0354Z6/+4jDzHYiq6CwwLT1SFOvnd0PEN4LpLdXn0=

كه در واقع همون كد فعال سازي هست

cc6,cp3,.... اسم بعضي از متدهاي تعريق شده در كلاس Library هست و برنامه بعد از گرفتن كد فعال سازي از كاربر اون رو
از حالت كد خارج ميكنه و اگه درست ديكد بشه تبديل ميشه به رشته اصلي كه اسم متدهايي كه بايد اجرا شن به ترتيب توش هست و برنامه تو يك حلقه هر جا اسم متدي از كلاس فوق رو پيدا كرد اون متد رو اجرا ميكنه
پس اگه متدها به ترتيب رشته اصلي اجرا شن با داشتن سورس برنامه خيلي راحت ميشه فهميد كه با اجرا شدن متدهاي ccx اين رشته به وجود مياد :

qwertyuiopasdfgh!jklzxcvbnm!

وبا اجرا شدن متدهاي سري cpx اين رشته توليد ميشه :

done!

كه همين رشته به عنوان جواب به كاربر نمايش داده مشه

سورس قسمتهايي از برنامه :




public void cc6()
{
this.code = "opasdfgh!" + this.code;
}

public void cc5()
{
this.code = "qwertyui" + this.code;
}

public void cp1()
{
this.pass = this.pass + this.code[8].ToString();
this.pass = this.pass + this.code[12].ToString();
}

public void cp3()
{
string str = "";
foreach (char ch in this.pass)
{
str = ch.ToString() + str;
}
this.pass = str;
}

public void cc1()
{
this.code = this.code + "jklzxcvbnm!";
}

public void cp2()
{
this.pass = this.pass + this.code[0x19].ToString();
this.pass = this.pass + this.code[2].ToString();
this.pass = this.pass + this.code[0x10].ToString();
}

public void a()
{
int num = 0;
string str2 = "";
KeyManager manager = new KeyManager();
Library library = new Library();
MethodInfo[] methods = typeof(Library).GetMethods();
foreach (string str3 in manager.Name.Split(new char[] { '.' }))
{
foreach (MethodInfo info in methods)
{
if (info.Name == str3)
{
info.Invoke(library, null);
}
num++;
str2 = str3;
}
}
this.b = library.Pass;
}



واما در مورد پكري كه استفاده كردي...امنيتش نمره صفر ميگيره گرچه براي جلوگيري از تازه كارها بسيار مناسبه
اين روش ميتونه امنيت نسبتا خوبي حتي چندين برابر پروتكشنهاي تجاري ايجاد كنه ولي همونطور كه تو تاپيكهاي مشابه گفتم كركر با داشتن يك كد فعال سازي متونه براي هميشه دخلش رو بياره

برنامه آنپك شده و كرك شده رو ضميمه كردم كه با اين كد فعال ميشه كه در واقع همون رشته اصلي هست :

cc6.cc5.cp1.cp3.cc1.cp2

حالا فرض كن يك برنامه با همين روش توليد كردي و به تعداد زياد در بازار پخش كردي وبا داشتن مشخصات سيستم مشتري كد فعال سازي توليد ميكني ، فقط كافيه كه من برنامه كرك شده با كد بالا رو منتشر كنم تا برنامه روي همه سيستمها با مشخصات مختلف اجرا بشه و اين يعني نابودي درآمد فروش برنامه

از اين روش نه چندان جديد در برنامه هاي غير دات نت هم استفاده ميشده با اين تفاوت كه اونجا ما با آدرس توابع يا متدها تو حافظه برنامه كار ميكنيم نه با اسمشون

فكر ميكنم اگه سورس كامل برنامت رو بذاري كمك خيلي زيادي به دوستان دات نت كارت در يادگيري يك روش امنيتي خوب ميكني

once4ever
شنبه 11 خرداد 1387, 11:55 صبح
بسیار عالی بود جناب Fh_prg
با دیدن کدها هم شگفت زده شدم و هم خیلی ناراحت!! (بخاطر توانایی پکر)
با توجه به توضیحاتی که دادید ممنون میشم به سوالهام جواب بدید تا روش بهتری ارائه کنم
1.
واما در مورد پكري كه استفاده كردي...امنيتش نمره صفر ميگيره گرچه براي جلوگيري از تازه كارها بسيار مناسب بنظرم میرسه با دیدن سورس برنامه خیلی راحت پی به نحوه کار قفل بردید. اگر درست هست ایا با استفاده کردن از یک پکر بهتر پتچ کردن سختتر میشود یا اینکه تاثیری نداشت؟ (مهمترین سوالم)
2.
ولي همونطور كه تو تاپيكهاي مشابه گفتم كركر با داشتن يك كد فعال سازي متونه براي هميشه دخلش رو بياره شما سرالی که با الگوریتم Rijndael قرار داده بودم مستقیم دیکد کردید یا از سورس برنامه استفاده کردید؟ آیا امکان دیکد شدن کدهای Rijndael بدون داشتن کلید هست ؟
(اگر مورد 1و2 بخاطر بد بودن پکر باشد من با یک پکر دیگه میذارم تا چک کنید پیلیز)


اين روش ميتونه امنيت نسبتا خوبي حتي چندين برابر پروتكشنهاي تجاري ايجاد كن با توجه به توانایی و تسلط بسیار بالای شما از این جمله این استنباط میکنم که خود این روش میتونه روش خوبی باشه به شرطی که عملکرد محسوسی!! در مقابل نادرست بودن سریال نداشته باشه :) (و لااقل به این صورت سورس نشه :(( )

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

Fh_prg
دوشنبه 13 خرداد 1387, 17:42 عصر
اين سورسي كه اينجا گذاشتي به هيچ وجه سورس كركمي نيست ! همه قسمتهاي اصليش حذف شده.
عزيزم من نيازي به سورس شما ندارم اگه دارم تو اين سايت به سوالها جواب ميدم فقط واسه اينه كه ديگران يه چيزي ببينن ياد بگيرن اگه نميخواستي سورس رو بذاري خيلي راحت ميگفتي نميخوام....
اين كارت يعني احمق فرض كردن ديگران !

پكري كه استفاده كردي فعلا بهترين امنيت رو براي دات نت داره! فكر Themida رو از سرت بيرون كن فعلا قدرت كافي رو براي دات نت نداره...

كليد ديكد تو خود برنامه بود و من راحت پيداش كردم

درجه سختي : آسان - البته ميتوني با يكم فكر و ابتكار خيلي قويترش كني.

once4ever
دوشنبه 13 خرداد 1387, 21:49 عصر
اين سورسي كه اينجا گذاشتي به هيچ وجه سورس كركمي نيست ! همه قسمتهاي اصليش حذف شده.از سورس برنامه دو قسمت حذف شده، یکی قسمتی که کد rijndael دیکد و انکد میکرد که نحوه کارش تو اینترنت هست و روش خاصی نداشت و تنها چون کلیدش رو قبلا استفاده کرده بودم حذف کردم و قسمت دومش هم همون روش استفاده از سریال بود که هنوز از این روش برای یک کرک می دیگه میخوام استفاده کنم (چون بنظرم خود روش هنوز میتونه مفید باشه) و درصورتی که خود روش نفوذپذیر بود حتما با سورس کامل برای استفاده و تجربه دوستان قرار میدم.

پكري كه استفاده كردي فعلا بهترين امنيت رو براي دات نت داره! متاسفانه یکم ضعف از خودش نشون داده و نمیشه بهش اعتماد کرد.

فكر Themida رو از سرت بيرون كن فعلا قدرت كافي رو براي دات نت نداره حق با شماست. گرچه یکم خوندن سورس سختتر میشه!

كليد ديكد تو خود برنامه بود و من راحت پيداش كردم منظورتون بعد از آنپک کردن هست یا قیل از اون؟ سوالم اینه: آیا با اینکه مستقیما از یک رشته برای کلید استفاده نکردم ولی باز کلید قابل شناسایی بود (بدون استفاده از سورس )

درجه سختي : آسان - البته ميتوني با يكم فكر و ابتكار خيلي قويترش كني. ممنون.
امیدوارم برنامه ای که فردا میگذارم کمی سخت تر باشه.

[پست مربوط به سورس با توضیح پاک کردم اما انگار اثری ازش نموند!]

once4ever
چهارشنبه 22 خرداد 1387, 01:05 صبح
لطفا دوستان این برنامه چک کنند.
(چندروز مسافرت بودم امروز عصر رسیدم و اولین کارم این بود که اینو بسازم و بذارم )
موضوع اصلی همون استفاده از لایسنس در بدست آوردن اسم تابع یا کلمه عبور بانک اطلاعاتی هست.
در اینجا کلمه عبور you win هست. که با لایسنس زیر کار میکنه.

Rqzh+xQZ37+rolyU2d5YTCw0JF86tWOOUuWiO5ZUXtub6dL39y urJS2lq9oH/CkDG8AY0E7wGY6pUvAk1QWe4uxv90Ez4ygcI/HpfxVUrEM=
موضوعاتی که میخوام راهنماییم کنید:
1. با توجه به آنپک شدن برنامه قبلی بخاطر ضعف پکر، آیا این برنامه هم آنپک میشه (احتمالا میشه) و اگر شد آنپک شده اش تا چه اندازه قابل استفاده هست؟ (مهم)
2. یکی از ضعفهای که داره مشخص شدن کلمه کلیدی کد rijndael از داخل برنامه هست. چه روشی برای مخفی کردنش پیشنهاد میکنید؟
نکته: امنیت خاصی برای دامپ نشدن یا کیل دیباگر و غیره استفاده نشده.
(امیدوارم پستهای بعدی -جدا از بحث حرفه ای و امنیت- در شان کسانی باشه که اینجا پست زدند و میخونند!!!)

Fh_prg
پنج شنبه 23 خرداد 1387, 16:43 عصر
هر چي صبر كردم شايد كسي جواب بده ...مثل اينكه كسي علاقه اي به دات نت نداره!

تغيير چنداني نسبت به نسخه قبليش نديدم فقط ايندفعه به جاي نام متدها از شماره اونها تو آرايه متدها استفاده شده بود
پكر مورد استفاده رو هم نميدونم چيه ولي آنپكش راحت بود
يك obfuscator هم به نظر مياد كه استفاده كردي ولي اختلال چنداني تو كارم ايجاد نكرد.
كد فعال سازي براي نسخه كرك شده :


30.2.cc4.3.cc1.7.cp2.1.cc2.10.cp1.8.cc4.0.cc3.18.c p3.3.cc4.9.cp1.4.cp3.6.cp1


در ضمن نظر خاصي براي پنهان كردن كليد ندارم خودت بهتره دنبال يك راه كارآمد باشي.

once4ever
پنج شنبه 23 خرداد 1387, 17:14 عصر
ممنون

پكر مورد استفاده رو هم نميدونم چيه ولي آنپكش راحت بود
باید یک راه حلی برای این مورد پیدا کنم.