View Full Version : کمک به یک تازه کار برای فهمیدن نحوه کرک یک برنامه ساده به زبان دلفی
miladnoori67
چهارشنبه 23 بهمن 1387, 16:30 عصر
سلام
دوستان من میخواستم بدونم که اگر من به صورت کدی که براتون میزارم برای گرفتن رمز از کاربر و چک کردن اون استفاده کنم یک کرکر چگونه برنامه من رو کرک میکنه. اینو گفتم که به اطلاعاتم اضافه بشه چون واقعا برام جالبه.
procedure Tpas.Button1Click(Sender: TObject);
begin
if (edit1.Text = ADOQuery1.FieldByName('pas').AsString) then
begin
pas.Hide;
main.Show;
end;
end;
اگر دوستان لطف کنند و این حالت رو هم بگن ممنون میشم.
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text='123' then
begin
form2.Show;
form1.Hide;
end;
end;
و لطف کنید اگر برنامه ای احتیاج هستش بزارید تا دانلود کنم و یا نحوه کارتون رو به صورت کامل بگید و قدم به قدم ذکر کنید تا افرادی که توی کرک کردن مبتدی هستند مثل من هم بتونند متوجه بشن و خودشون از این به بعد بتونن با تست برنامه هاشون به این روش امنیت اون رو بهبود بدن.
تشکر پیشاپیش میکنم از شما.
:چشمک::متفکر:
حامد مصافی
چهارشنبه 23 بهمن 1387, 17:17 عصر
کرکر با استفاده از نرم افزار هایی مثل softice قد رخواهد بود تا برنامه شما را debug کند و نقطه نمایش form2 را پیدا کند. این کار با استفاده در BreakPoint ساده تر هم خواهد شد اما اگر این برنامه را با دلفی بنویسید تابع GetTextA فراخوانی نخواهد شد اما هنوز هم می شود با استفاده در تابع HMeyCpy لحظه دریافت متن TextBox را Break کرد. در مورد کد دوم این کار ساده تر هم میشه فقط کافیه تا از لیست String List در نرم افزار هایی مثل win32diassembler نقطه محل استفاده آن را در کد پیدا کند. سپس با استفاده در یک hex editor فایل اجرایی شما را باز کرده و در نقطه مذکور کد 94 (je) را به 95 (jne) تغییر دهد. آنگاه روال کاری برنامه شما معکوس شده و فقط در حالتی که کلمه رمز صحیح باشد فرم 2 را نمایش نخواهد داد.
miladnoori67
چهارشنبه 23 بهمن 1387, 18:27 عصر
لطفا سوالات من رو جواب بدید :
softice چگونه عمل میکند ؟debug به چه عملی گفته میشود؟
BreakPoint چیست؟
String List چیست؟
win32diassembler چه عملی انجام میدهد ؟
Nima NT
چهارشنبه 23 بهمن 1387, 21:17 عصر
softice چگونه عمل میکند ؟debug به چه عملی گفته میشود؟دیباک , یعنی از بین بردن خطا , در معنای خاص ( برای کراکر ) یعنی کنترل اجرای سطر به سطر برنامه شما و مشاهده نتایج حاصل.
BreakPoint چیست؟در برنامه های دیباگر استفاده میشه , یعنی شما میخوای برنامه ای رو دیباگ کنی ,لازم هست که در خط 300 ام برنامه متوقف بشه تا از اونجا به بعد شما اجرای برنامه رو سطر به سطر کنترل کنی , تنها کاری که شما انجام میدی اینه که رو نقطه 300 " نقطه توقف " قرار میدی و برنامه رو اجرا میکنه وقتی اجرای کد ها به این خط برسه برنامه متوقف میشه.
String List چیست؟کمی مبهم هست ولی فکر کنم منظور تمامی رشته هایی است که در فایل شما وجود داره چه اونهایی که شما تعریف کردی ( به صورت ثابت ) چه اونهایی که کامپایلر به فایل اضافه کرده.
win32diassembler چه عملی انجام میدهد ؟ هر برنامه وقتی قراره اجرا بشه اول به کد اسمبلی تبدیل میشه , این برنامه ها کارشون اینه که کد اسمبلی فایل شما رو استخراج کرده و به شما نشون میدن ( عموما" برای کرک کاربرد داره ).
miladnoori67
پنج شنبه 24 بهمن 1387, 23:47 عصر
دوست عزیز خیلی خیلی ممنونم و اگر این یک سوال رو که یادتون رفت جواب بدید رو هم پاسخش رو بنویسید بازم ممنونتر میشم.
softice چگونه عمل میکند ؟
Nima NT
جمعه 25 بهمن 1387, 01:02 صبح
برنامه فوق یه دیباگر هست و برنامه شما رو خط به خط اجرا میکنه , شما با اجرای هر خط از برنامه نتیجه اون رو هم میتونید با تغییر یافتن مقدار ثبات ها مشاهده کنید.
این برنامه در گذشته قوی ترین برنامه دیباگر و محبوب ترین در بین کراکر ها بود ولی امروزه تقریبا" کمتر از اون استفاده میشه.
اگر اطلاعات دقیقی از نحوه عملکرد برنامه میخواید که چطوری برنامه شما رو کنترل میکنه بهتره مطلب Single Step Debugger رو جستجو کنید.
کتاب کرک و تکنیک های نفوذ به نرم افزار هم میتونه خیلی در درک کرک به شما کمک کنه ( انتشارات ناقوس )
saeedIRHA
جمعه 25 بهمن 1387, 09:38 صبح
دوست عزیز خیلی خیلی ممنونم و اگر این یک سوال رو که یادتون رفت جواب بدید رو هم پاسخش رو بنویسید بازم ممنونتر میشم.
softice چگونه عمل میکند ؟
استفاده از گوگل هيچ ضرری نداره قبل از مطرح کردن سؤال:
http://en.wikipedia.org/wiki/SoftICE
miladnoori67
یک شنبه 27 بهمن 1387, 00:52 صبح
سلام به Nima NT , Black dal , saeedIRHA ممنون از اینهمه کمکی که به من کردید . واقعا جالب بود.
اولین تجربه کرک رو هم انجام دادم . (-: واقعا حس خیلی خوبی به آدم دست میده وقتی موفق میشه.
البته خوب نمیشه گفت کرک. ولی موفق شدم این کد رو بدوم اینکه پسورد احتیاج باشه بشکنم :
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text='123' then
begin
form2.Show;
form1.Hide;
end;
end;
اما حالا توی کرک کد دومی که گذاشته بودم به مشکل خوردم. و مشکل اینه که نمیدونم کجای این کد برنامه اقدام به چک کردن عدد دریافتی با عدد داخل بانک میکنه؟
اگر ممکنه کمکم کنید لطفا .
راستی من برای کرک از این برنامه ها استفاده کردم.
ollydbg 1.10 , wdasm32 ,PEid 0.92
سوال من اینه که از کجا باید بفهمم کی و در کدام خط برنامه اقدام به چک کردن مقدار دریافتی با مقدار داخل بانک میکنه؟
اینم برنامه :
procedure Tpas.Button1Click(Sender: TObject);
begin
if (edit1.Text = ADOQuery1.FieldByName('pas').AsString) then
begin
pas.Hide;
main.Show;
end;
end;
ممنون میشم اگر زودتر جواب بدید.
ممنون.
Securebit
یک شنبه 27 بهمن 1387, 01:33 صبح
فایل کامپایل شده تان را بگذارید تا بیشتر بتوانم کمکتان کنم.
حامد مصافی
یک شنبه 27 بهمن 1387, 09:51 صبح
اگر از دیباگر استفاده می کنید فراخوانی تابع HMemCpy را BreakPoint اعلام کنید و اگر از Dissassembler استفاده می کنید به دنبال رشته 'pas' بگردید.
miladnoori67
یک شنبه 27 بهمن 1387, 21:06 عصر
آقای BlackDal من از ollydbg 1.10 استفاده میکنم ولی در این دیباگر بعد از باز کردن فایل و جستجو تابع HMemCpy د برنامه استفاده نشده است.
ولی در روش دومی که گفتید با استفاده از wdasm32 و StringList رشته Pas رو پیدا کردم و موفق به کرک برنامه فوق کردم.
که از این بابت نهایت تشکر رو از شما دارم.
ولی یک سوالی برای من پیش اومد که اگر راهنمایی کنید من رو واقعا ممنون میشم .
در روش دوم شما با داشتن کد برنامه موفق شدید که بفهمید باید به دنبال رشته pas بگردید ولی اگر این فایل Exe بود و شما به بانک نیز دسترسی نداشتید در اون حالت چطور باید عمل میکردیم؟
و نقطه مورد نظر رو پیدا میکردیم؟
و یک سوال دیگر اینکه چرا از HMemCpy استفاده میکنید؟ و چرا در کرک این برنامه کاربردی نداشت؟
Nima NT
دوشنبه 28 بهمن 1387, 00:18 صبح
در روش دوم شما با داشتن کد برنامه موفق شدید که بفهمید باید به دنبال رشته pas بگردید ولی اگر این فایل Exe بود و شما به بانک نیز دسترسی نداشتید در اون حالت چطور باید عمل میکردیم؟
و نقطه مورد نظر رو پیدا میکردیم
باید بگردید ببینید که برنامه بعد از اینکه کد غیر صحیح بهش داده میشه چه عکس العملی داره , مثلا" اگر پیغام داد "Code is Invalid" باید دنبال همین رشته بگردین.
miladnoori67
دوشنبه 28 بهمن 1387, 12:57 عصر
آقای Nima NT اگر پیغامی در کار نبود چه باید کرد؟
و یه اشکال هم هست که اگر پیغام فارسی باشه نمیشه اونو جستجو کرد.
miladnoori67
دوشنبه 28 بهمن 1387, 13:29 عصر
آقای saeedIRHA اینم فایل کامپایل شده ای که خواسته بودید.
دوستان عزیز اگر ممکنه لطف کنید این فایل رو دانلود کنید و کاری کنید که با گرفتن هر پسوردی وارد فرم 2 شود.
نحوه کار برنامه به این صورت است که پس از ورود و گرفتن یک پسورد و مقایسه آن با پسورد صحیح فرم 2 را نمایش میدهد و در غیر این صورت اتفاقی نمی افتد.
28352
Nima NT
دوشنبه 28 بهمن 1387, 18:57 عصر
آقای Nima NT اگر پیغامی در کار نبود چه باید کرد؟
و یه اشکال هم هست که اگر پیغام فارسی باشه نمیشه اونو جستجو کرد.
اون موقع راحت ترین راه اینه ( از نظر من ) که کمی اسمبلی بلد باشی و ببینی برنامه چیکار میکنه ( Trace ) :لبخند:
Nima NT
دوشنبه 28 بهمن 1387, 19:00 عصر
نحوه کار برنامه به این صورت است که پس از ورود و گرفتن یک پسورد و مقایسه آن با پسورد صحیح فرم 2 را نمایش میدهد و در غیر این صورت اتفاقی نمی افتد.
برنامه رو با DeDe دکامپایل کن , پسورد رو میتونی راحت ببینی.
Password = 16166
miladnoori67
دوشنبه 28 بهمن 1387, 23:29 عصر
آقای NimaNT واقعا از شما ممنونم. عجب برنامه ای هستش این DEDE توی هارد داشتمش ولی کار نکرده بودم باهاش. یکی از مزایای واقعا عالی اون اینه که میشه باهاش کدهای هر Event رو که به صورت جدا دکامپایل شده دید. و واقعا کار راحت شده با این برنامه.
آقای NimaNT آیا برای زبانهای دیگه هم نرم افزارهای اینجوری وجود دارند؟
مثل VB و #C و ...
Nima NT
دوشنبه 28 بهمن 1387, 23:57 عصر
برای زبانهای دات نت هم برنامه Reflector وجود داره که بر خلاف اینکه DeDe کد اسمبلی به شما تحویل میده , برنامه مذکور سورس کد رو به ما تحویل میده , یعنی اگر شما برنامه ای با وی بی دات نت نوشته باشی , بنده در حالتی که از اون محفاظت نکرده باشی سورس کاملش رو میتونم ببینم.
برای برنامه های نوشته شده با VB 6 هم برنامه VB Decompiler وجود داره.
miladnoori67
سه شنبه 29 بهمن 1387, 01:01 صبح
آقا نیما ممکنه در این کرک می همکاری کنید؟
در ضمن ممنون از راهنمایی های شما. واقعا دوست و استاد خوبی هستید. :قلب: :خجالت: :لبخندساده: ممنوووووووون
28378
منبع فایل : PersianFox.com
Nima NT
سه شنبه 29 بهمن 1387, 01:56 صبح
یه مقدار شانسی به برنامه بده ( هر سریالی رو قبول میکنه )
miladnoori67
سه شنبه 29 بهمن 1387, 15:42 عصر
آقا نیما میشه نحوه کارتون رو توضیح بدید تا این دانشجوی تنبلتون هم متوجه بشه؟
Nima NT
سه شنبه 29 بهمن 1387, 15:49 عصر
چند روزی سرم شلوغه , چند روز دیگه از نحوه کرک کردن این برنامه برات یه فیلم آپلود میکنم.
miladnoori67
سه شنبه 29 بهمن 1387, 19:01 عصر
بابا دیگه اونقدر هم خنگ نیستم. در حد 3 یا 4 خط بنویسید کافیه.
خودم هم موفق شدم کرکش کنم منتها یه مشکل کوچولو داشتم.
Nima NT
سه شنبه 29 بهمن 1387, 21:54 عصر
بابا دیگه اونقدر هم خنگ نیستم. در حد 3 یا 4 خط بنویسید کافیه.
خودم هم موفق شدم کرکش کنم منتها یه مشکل کوچولو داشتم.
من جسارت نکردم , شاید بیشتر به خاطر تنبلی خودم هست :لبخند:
miladnoori67
چهارشنبه 30 بهمن 1387, 16:36 عصر
چرا دوستان دیگه در بحث ما شرکت نمیکنند؟
اگر میتونید کمکی کنید لطفا دریغ نکنید.
آقا نیما مثل اینکه به این زودیا سرش خلوت نمیشه. :خجالت:
Nima NT
چهارشنبه 30 بهمن 1387, 18:51 عصر
آقا نیما مثل اینکه به این زودیا سرش خلوت نمیشه. :خجالت:
این روزها حسابی گیرم , اگر مشکلی نداشته باشه بنده فیلم رو برات هفته بعد دوشنبه آپلود کنم. شرمنده.:خجالت:
miladnoori67
چهارشنبه 30 بهمن 1387, 22:32 عصر
دشمنت شرمنده. اگر بنویسی که بهتره چون بچه های دیگه هم میتونند استفاده کنند.
Nima NT
پنج شنبه 01 اسفند 1387, 19:00 عصر
اینم همون فیلم که خواسته بودی.
http://rapidshare.de/files/45453386/Cracking.rar.html
miladnoori67
پنج شنبه 01 اسفند 1387, 22:46 عصر
نیما جان میشه بگی که از کجا فهمیدی که Jz توی آدرس 00445791 رو باید حذف کنی؟
منظورم اینه که چطور پیداش کردی و فهمیدی این خط عمل نمایش فرم 2 رو بر عهده داره؟
Nima NT
پنج شنبه 01 اسفند 1387, 23:04 عصر
با جستجوی برنامه , یعنی Trace کردم.
miladnoori67
پنج شنبه 01 اسفند 1387, 23:24 عصر
پس خیلی وقت گیر بوده. درسته؟
miladnoori67
پنج شنبه 01 اسفند 1387, 23:25 عصر
نیما جان یه سوال دیگه VB_Decompiler_Lite با VB_Decompiler_Pro فرقش چیه؟
Nima NT
جمعه 02 اسفند 1387, 00:32 صبح
پس خیلی وقت گیر بوده. درسته؟
چون حجم برنامه کم بود زیاد نه.
نیما جان یه سوال دیگه VB_Decompiler_Lite با VB_Decompiler_Pro فرقش چیه؟
دقیقا" نمی دونم.
miladnoori67
جمعه 02 اسفند 1387, 13:42 عصر
VB_Decompiler_Lite کد برنامه رو به زبان اسمبلی برمیگردونه.VB_Decompiler_Pro تا اونجایی که میتونه سعی میکنه برنامه رو به کد اصلی برگردونه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.