ممنون که زحمت کشیدی!نقل قول:
اگر وقت کردم روش کار می کنم و تو همین پست نتیجه رو می ذارم !
با تشکر :1. (21):
Printable View
ممنون که زحمت کشیدی!نقل قول:
اگر وقت کردم روش کار می کنم و تو همین پست نتیجه رو می ذارم !
با تشکر :1. (21):
خواهش میکنم علی جان.اگر تونستید کرکش کنید بگید تا کم کم برم تو سطح متوسط.نقل قول:
سلام!
بحث جالبیه. به تازگی سرم خلوت شده، می تونم مطالب این تاپیک رو دنبال کنم.
از جنبه های مثبت این کار اینه که برنامه نویس یاد می گیره چه جوری امنیت برنامه ی خودش رو بالا ببره. (دوستمون Surpriser هم قبلا" به این مسئله اشاره کرده بودند:love:.)
دو تا درخواست داشتم:
-لطفا" باز هم CrackMe دات نت بذارید.
-اگه دیباگر خوب برای زبان های دات نت پیدا کردید، بی زحمت این جا قرار بدید.
علی جان بابت Red Gate's .NET Reflector ممنون:give_rose:. خیلی باحاله.
فقط یه سوال: راهی نیست بشه کاری کرد این Reflector نتونه ساختار و سورس برنامه تجزیه و تحلیل کنه؟
یه سوال هم از Surpriser:
اون CrackMe آخری (پست 30) سورسش فکر کنم این جوریه:
مقدار True به چی بر می گرده؟ (مربوط به چی هست؟)کد:If True Then
Console.Write(" Unregistered Version! " & ChrW(13) & ChrW(10))
Else
Console.Write(" Registered Version! " & ChrW(13) & ChrW(10))
End If
یه نکته: به دلیل کلاس های استفاده شده در این کرک می ، می تونید اون رو با فریم ورک 2 هم اجرا کنید.
موفق باشید
آرمین:11():
علي جان گفت كه اين كرك مي رو با C# نوشته:merci:. من هم با dotNet Reflector سورس برنامه رو كشيدم بيرون:نقل قول:
خب...با توجه به سورس برنامه از مقدار Number1-Myactor-Enique-Iglesias:) رو با MD5 به Hash تبديل مي كنه و در متغير str ذخيره مي كنه. با كليك روي دكمه، مقدار وارد شده توسط كاربر در جعبه متني با مقدار str مقايسه مي شه. اگر هر دو مقدار برابر بودند All Right نشون داده ميشه.کد:
public Form1()
{
this.Pass = "Number1-Myactor-Enique-Iglesias:)";
private void button1_Click(object sender, EventArgs e)
{
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
byte[] buffer = new byte[0x10];
string str = Convert.ToBase64String(provider.ComputeHash(Encoding.ASCII.GetBytes(this.Pass)));
if (this.textBox1.Text == str)
{
MessageBox.Show("All Right");
}
}
}
علي جان تو خودت استادي ولي به نظر من اين روش يه خوبي داره و يه اشكال:
خوبيش اينه كه سريال برنامه اصلا" توي سورس برنامه پيدا نيست. من سورس برنامه ي تو رو دارم ولي هر چي بگردم توش نمي تونم سريال رو پيدا كنم.:1. (10):
و اما اشكال:
اگه سورس رو داشته باشم، الگوريتم رمز نگاري تو رو هم دارم. حالا با داشتن الگوريتم Number1-Myactor-Enique-Iglesias:) رو هش مي كنم. اين هش ميشه سريال CrackMe :
==aF6SEX9EGB6o0vsJeVzsww
من يه پيشنهاد دارم. بذار از اين سورس استفاده كنيم:
سريال برنامه توي سورس برنامه پيدا نيست. الگوريتم رمز نگاري هم معلومه. (اين كه شد همون؟:1. (38):) ولي اين جا كرك كننده Number1-Myactor-Enique-Iglesias:) نداره. پس حتي با دونستن روش رمزگذاري نمي شه سريال رو به دست آورد.کد:private void button1_Click(object sender, EventArgs e)
{
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
byte[] buffer = new byte[0x10];
string str = Convert.ToBase64String(provider.ComputeHash(Encoding.ASCII.GetBytes(textBox1.Text)));
if (str == "aF6SEX9EGB6o0vsJeVzsww==")
{
MessageBox.Show("All Right");
}
}
مگر اين كه aF6SEX9EGB6o0vsJeVzsww== رو Decode بشه كه كار خيلي خيلي سختيه.:1. (27):
در اين سورس سريال Number1-Myactor-Enique-Iglesias:) هستش. اين سريال اول كد و سپس با مقدار هش مقايسه مي شه.
شاد باشيدنقل قول:
كار لذت بخشي بود. من فعلا" تازه كارم. وقتی يكم بيش تر از شما استادان ياد گرفتم، اين جا چند تا از اين ... از اين ... (اسمش چي بود؟:whistle:) آها! چند تا از این CrackMe ها قرار مي دم (البته با VB.Net) .
آرمين:11():
سلام.آفرین.زدید تو خال!نقل قول:
یه متغییر از نوع Boolean تعريف شىه كه هميشه True هست و شما از چند راه میتونید برنامرو کرک کنید که راحت ترینش اینه که brTrue رو به brFalse تبدیل کنید!
من همون دقیقه اول کدهاشو با Reflector خوندم! متاسفانه چون با زبان سی شارپ نوشته شده از کدهای اسمبلیش زیاد نمیشه سر درآورد. :whistle:نقل قول:
چشم باز هم کرک می میذاریم اما طوری میذاریم که باید کد رو تغییر بدی که واسه Net. نمیشه! :1. (38):نقل قول:
واسه Debug کردن کدهای Net. از برنامه IDA Pro باید استفاده کنی :wink:
واسه این که Reflector نتونه کد رو تجزیه کنه راهی وجود داره اونم استفاده از Protector هاست !
کلا زبان ویژوال بیسیک اگر N Code باشه به فریمورک نیاز نداره!نقل قول:
یه نکته: به دلیل کلاس های استفاده شده در این کرک می ، می تونید اون رو با فریم ورک 2 هم اجرا کنید.
اگر P Code باشه به VB Runtime 6 نیاز داره :1. (23):
خودت میدونی که MD5 هیچ وقت تا دنیا دنیاست Decode نمیشه پس واقعا این برنامه کرک نشدنیه :cool:نقل قول:
ایده توپیه :1. (10):
ولی مشکلش اینه که مثل ماله خودم کد باز هم ثابته! اگر یک نفر بدونه همه دنیا اون کد رو میدونه :1. (38):
نظراتت عالی بود آرمین جان..
موفق باشی :1. (21):
سلام.نه اصلا از سی شارپ استفاده نکردم.نقل قول:
من که با PEid چک کردم نوشت ==> C# .Netنقل قول:
2 حالت داره:
یا از Protector استفاده کردی که اینطور نیست!
یا وقتی Visual Studio رو نصب کردی حالت Defalt ی که اول برنامه میپرسه رو روی #C قرار دادی (من خودم یه بار این کا رو انجام دادم و روی VB تنظیم کردم! برنامه هایی که با #C می نوشتم به صورت VB کامپایل می شدند :wink: )
هنوز راه حلی واسه حالت دوم پیدا نکردم مگر اینکه Visual Studio رو Uninstall کنی و دوباره نصب کنی!
=========================
اين کرک مي رو هم ساختم که ديگه نميشه با Reflector باهاش کار کرد! (این همونی بود که واسه آرمین جان گفتم)
کلا بايد بي خيالش بشيد چون کدش قابل دسترسي نيست و Protect شده!
خودم که نتونستم Unprotect ش کنم! حساب کنيد اگر با PEid بازش کنيد ميگه اين برنامه با Borland Delphi نوشته شده!!
من ميرم همه جا ميگن امنيت Net. در حد تيم مليه ولي اگر راست ميگن بيان اينو کرک کنند!
البته باید راهی وجود داشته باشه! من فعلا دارم تحقیق می کنم :1. (38):
با تشکر :1. (21):کد:
http://rapidshare.com/files/259509399/Crack_Me_Protected.zip.html
سلام!
متوجه شدم! خب می تونی مثلا" CPU ID رو بگیری. بعد چند تا کارکتر بهش اضافه کنی. در آخر اونو هش کنی. این بشه سریال برنامه. این جوری سریال یک سیستم با سیستم دیگه متفاوت میشه.:wink:نقل قول:
یه نمونه دارم. اگه خواستی بگو برات بذارم.:great:
علی جان! چرا این قدر سختش کردی...:1. (28):؟ یواش یواش برو جلو... ! حالا من با این کرک می چی کار کنم؟:cry:نقل قول:
لطفا" می گی با چه برنامه ای Protect کردی؟ این Protector هایی که تو تاپیک گذاشتی، روی دات نت مشکل دارن!
من Crack_Me_Protected رو با notepad باز کردم:1. (2):؛ گفتم شاید بشه چیزی از کد ASCII برنامه در آورد. اینو پیدا کردم:
UCL data compression library
نمی دونم تا چه حد درسته. اگه واقعا" برنامه با UCL کمپرس شده باشه فکر کنم بشه با UCL 1.03 برنامه رو Decompress کرد.
مشخصات کامپایل برنامه هم این بود:
Built: Jan 10 2005 20:26:38 $
$Info: win32 ia32/little-endian flat Borland C 0x0551 $
1.03 Jul 20 2004
حدس می زنم به خاطر این بود که اون نتیجه ی عجیب با PEid به دست اومد.
(همه ی حرف هام شد حدس و گمان :1. (38):)
موفق باشید!
آرمین:11():