-
بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
دوستان عزیز سلام.
میخواستم با دوستان جمع بشیم و بحثی پیرامون امنیت برنامه ها در مقابل کرک شدن راه بندازیم.
منظور از این تاپیک اینه که انواع روش های ممکن رو برای سخت تر شدن کرک کردن برنامه ها یاد بگیریم.
توجه کنید گفتم سخت تر شدن؛ نه غیر قابل کرک شدن. چون هیچ چیز قطعی نیست.
از دوستان میخوام که هر چیزی که به ذهنشون میرسه بگن. نظر دوستان هرچند ساده؛ قابل بحث هست. پس دریغ نکنید.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
مطلب اول رو خودم مینویسم.
یکی از راههای متداول برای سخت کردن عمل کرک شدن برنامه ها؛ استفاده از Toolsهایی به نام Packer هست که این ابزارها معمولا 2 کار انجام میدهند.
الف) Pack کردن برنامه که باعث میشه کرکر در زمان کرک کردن برنامه با اشتباهاتی روبرو بشه که بعدا در مورد این موضوع صحبت میکنیم.
ب) معمولا ابزارهای Packer میتونن حجم برنامه های Compile شده شما رو تا حد زیادی کم کنن. من خودم این کاهش حجم رو به میزان چهار پنجم تجربه کردم.
اما داستان به همینجا ختم نمیشه.
این Toolsهای خوب و کارآمد مثل یک چاقوی دوطرفه عمل میکنن.
توضیح: اگه شما برنامتون رو با UPX پک کنین. میتونین اون رو با همون UPX آنپک (UnPack) کنین.
نکته: میتونین از Packer های پولی استفاده کنین. تا کرکر امکان دسترسی به اون رو نداشته باشه.
نکته: اگه تونستید از سایت های Crack & Serial رجیستر Packer مورد نظر رو پیدا کنین پیشنهاد من به شما اینه که اونو فراموش کنید. چرا که برنامه ای که نتوانسته از خود دفاع کنه؛ چطوری میتونه از برنامه شما دفاع کنه؟
منتظر نظرات شما دوستان هستم.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
خوب مطلب بعدی رو هم خودم مینوسم.
همونطور که میدونید اصل کرک کردن بر پایه به هم زدن دستورات شرطی دربرنامه هست. به طور مثال شرط زیر را:
If StrRegCode = "123" Then
MsgBox "Register Success!"
End If
به شرط زير تغيير ميدهند:
If StrRegCode <> "123" Then
MsgBox "Register Success!"
End If
شما میتونید دستورات چک کردن رجیستر بودن/نبودن برنامه را به تعداد بیشتر از یک بار در برنامه؛ و در جاهای مختلف به کار ببرین.
نکته: معمولا برنامه ها یک بار و آن هم موقع Start یا Load شدن برنامه؛ رجیستر را چک میکنند.
نکته: معمولا کرکرها برفرض عادی بودن برنامه دست به کار میشن. و اگه جایی رو دستکاری کنن و برنامه کرک نشده باشه؛ فکر میکنن شرط رو اشتباه پیدا کردن. و اونو به حالت اول برمیگردونن تا کار برنامه مختل نشه و به دنبال شرط بعدی میرن.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نه. مثل اینکه کسی افتخار نمیده تا یه بحث راه بندازیم.
اشکالی نداره. مطلب بعد رو هم خودم مینویسم.
یکی از بحث های مهم در امنیت برنامه؛ لو رفتن الگریتم Coding یا Encoding هست که برنامه نویس از اون برای ساخت RegCode یا همون Register Code استفاده میکنه. که در صورت کشف این الگریتم توسط کرکر؛ ایشون میتونن برای برنامه شما KeyGen بسازن.
توصیه: همیشه سعی کنین از پیچیده ترین روش Encode/Decode که میتوانید استفاده کنید.
نکته: بعضی از برنامه نویسان هنگام رجیستر کردن Userها اطلاعاتی مانند نام – میل و مثلا تلفن رو از اونها میگیرن و RegCode از کد شدن این اطلاعات درست میشه.
توصیه: سعی کنید به این اطلاعات؛ اطلاعاتی که از سیستم User گرفتید هم اضافه کنید. یعنی هر سیستم RegCode مخصوص خود را داشته باشد. چون در غیر این صورت اولین RegCodeی که صادر میکنید؛ آخرین هم هست. زیرا اون RegCode به سرعت بین Userها پخش میشه.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
خوب اگه فقط رجیستری رو مد نظر قرار بدیم انتی های پیشرفته روز دنیا این قابلیت رو دارن که مسیر تغیرات رجیستری رو به شما نشون بدن (البته خودم هم قبول دارم که خودشون هم از رجیستری برای این کار استفاده میکنن)پس بد نیست علاوه بر رجیستری جاهای مختلف دیگه هم این کد هالحاظ بشه
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
majjjj
خوب اگه فقط رجیستری رو مد نظر قرار بدیم انتی های پیشرفته روز دنیا این قابلیت رو دارن که مسیر تغیرات رجیستری رو به شما نشون بدن (البته خودم هم قبول دارم که خودشون هم از رجیستری برای این کار استفاده میکنن)پس بد نیست علاوه بر رجیستری جاهای مختلف دیگه هم این کد هالحاظ بشه
دوست عزيز majjjj ممنون که در بحث شرکت کردين.
اما من در هيچ کدوم از پست هاي قبلي از رجيستري ويندوز صحبت نکردم.
و فکر ميکنم شما منظور منو اشتباه متوجه شديد. منظور من از RegCode اون SerialNumber ي هست که بعد از خريد برنامه به User ميدين. به هر حال پست شما دليلي شد که در اين تاپيک از Windows Registery هم سخني به ميان بياد.
امنيت برنامه ها و Windows Registry
همونطور که دوست خوبمون جناب majjjj اشاره کردن؛ بعضی از Programmerها میان و کد رجیستر برنامه رو در رجیستری قرار میدن. یا اینکه میان و یه کلید تو رجیستری میسازن که نشان دهنده رجیستر شدن برنامه هست.
نکته: برنامه هایی هستند به نام Registry Monitor که کارشون زیر نظر داشتن تغییرات رجیستری ویندوز هست. و میتونن تمام کار هایی رو که شما انجام میدین رو لیست کنن.
نکته: از SerialNumber که بگذریم؛ بعضی از برنامه نویسان تنظیمات و اطلاعات برنامه رو تو رجیستری ذخیره میکنن. مثلا: یکی از برنامه های مطرح Folder Security که من Analyze کردمش؛ آدرس پوشه های Lock شده رو تو رجیستری قرار میداد. که من تونستم با اضافه کردن یک کاراکتر به آدرس پوشه؛ و ReStart کردن سیستم. پوشه رو از قفل بودن در بیارم.
توصیه: همیشه سعی کنید مشخصات رجیستر برنامه، اطلاعات کلیدی برنامه و غیره رو به صورت رمز یا EnCode شده در یک فایل در مسیر برنامه قرار بدید. به دو ولیل:
الف) سخت تر شدن دسترسی دیگران به اطلاعات شما.
ب) با عوض شدن ویندوز اطلاعات شما از بین نمیرود.
ج) Backup و Restore به سادگی و با سرعت بیشتری انجام میشود.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
برای اینکه برنامه هایی بنویسید که در مقابل کرکر های مقاوم باشند باید خودتون کرکر خوبی باشید .
پیشنهاد می کنم اول برید کرک کردن یاد بگیرید .
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نظرتون در مورد Hex editor چی هست؟
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
برای سخت تر شدن کرک می تونید از Hash ها ، CRC,... استفاده کنید . ولی اینها هم فقط باعث می شوند که برنامه دیرتر کرک بشوند!
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
برای اینکه برنامه هایی بنویسید که در مقابل کرکر های مقاوم باشند باید خودتون کرکر خوبی باشید
دوست عزيز M8SPY . من نميگم کرکر خوبي هستم. اما اينقدر که بدونم روش هاي متداول Crack چيه؛ از اين مقوله سر رشته دارم. و اينکه من نميخوام اينجا درس بدم. فقط ميخوام تبادل اطلاعات داشته باشيم.
نقل قول:
نظرتون در مورد Hex editor چی هست؟
دوست خوبم KeyhanCPU من منظور شما رو نميفهمم! خوب HexEditor هم يک Tools هست که در معمولا در کرک کردن برنامه ها ازش استفاده ميشه. لطف کنيد واضحتر بنويسيد.
نقل قول:
برای سخت تر شدن کرک می تونید از Hash ها ، CRC,... استفاده کنید . ولی اینها هم فقط باعث می شوند که برنامه دیرتر کرک بشوند!
آقاي Smart_Boy عزيز.
1) اگه اطلاعاتي داريد که به درد عموم ميخوره لطفا اونو براي استفاده ديگران بنويسيد.
2)به پست اول دقت کنيد عبارت سخت تر شدن کرک کردن برنامه ها رو ميبينيد.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
در رابطه با نحوه کار کرکرها با hex editor ها بگید
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
.:KeihanCPU:.
در رابطه با نحوه کار کرکرها با hex editor ها بگید
دوست من KeihanCPU ما ميخوايم اينجا ياد بگيريم که چگونه امنيت برنامه هامون رو ببريم بالا. نه اينکه کرک کردن ياد بديم.
تازه اگه بخوايم کرک هم ياد بديم چون به برنامه نويسي با VB مربوط نميشه. ادمين محترم پست رو ميبنده:لبخند::چشمک:
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
اینطور که میبینم دوستان هیچ علاقه ای به این مبحث ندارن. در صورتی که این یکی از جنجالی ترین مباحث بین برنامه نویسان هست. چرا که هر برنامه نویسی بعد از پیشرفت در کار خود؛ به فکر کسب درآمد از راه برنامه نویسی هست. و فرض کنید ساعت های طولانی و کسل کننده رو پشت سر میگذارین و از سالیان سال تجربیات خود استفاده میکنین تا یک برنامه بنویسین. و به جای کسب درآمد از آن؛ باید دست روی دست بگذارید و شاهد استفاده غیر مجاز از برنامه خود باشید. برنامه ای با طرفداران زیاد؛ اما دریغ از یک ریال درآمد برای برنامه نویس. فقط و فقط به دلیل رعایت نکردن نکات ساده امنیتی.
پس بیایید تا با به اشتراک گذاشتن تجربیاتمان در زمینه امنیت برنامه ها؛ کابوس کرک شدن برنامه هایمان را هرچه بیشتر از خود دور کنیم.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
من تکنیک های زیر رو پیشنهاد میکنم ، ترجمه و پیاده سازی اون به عهده خودتون.
1. garbage instructions:
insert many many garbage instructions to hide special instructions, disturb analysis and make people fret;
2. garbage loops:
same as the first item;
3. time comparing:
classic method, as step in/over need much longer than normal execution;
4. check parent process:
if target process is debugged, its parent process usually are not explorer.exe :)
5. check debugger:
windows provides some APIs to check if process is being debugged, such as: IsDebuggerPresent/NtQueryInformationProcess.
of course, you could also test CreateFile/PEB(just like IsDebuggerPresent to do).
6. dynamic encrypt/decrypt:
make analysis much more complex; re-encrypt the instructions which are passed could prevent cracker to check the old instructions effectivelly;
7. IAT encrypt:
stop the tools, e.g: ImpREC to recover IAT;
8. Fuzzy the instructions:
there are many ways to fuzzy the instructions, e.g: fuzzy the OEP instructions or fuzzy a random codes in process;
9. call:
use call instruction to confuse the cracker;
10. self-debug:
windows allows only one debugger to debug the target process, so we could use two or more processes. one process used to debug the special process to prevent cracker to debug the special process.
if we let one process to hook one interrupt, we could use this interrupt to decode or fuzzy some part codes;
11. SEH:
raise an exception manually to change process flow, such as: memory access exception, interrupt (int3,int1 or others), invalid instruction, invalid eip and so on;
12. multi-thread:
when a process is debugged and enter a breakpoint, all threads may be suspended. We could use this method to stop cracker:
a. change flow with multi-thread: modify main thread codes in sub thread, if sub thread is suspended, then main thread will fail;
b. use multi-thread decrypt main/sub thread codes;
13. anti-SMC:
use Timer or sub thread to set core memory space to READONLY access in a short time;
14. CRC checksum:
check codes CRC checksum to do a self test;
15. destroy debug environment:
modify DR register, interrtup process (int 1, int 3) or handle special interrupt by ourselves;
16. anti-DUMP:
set some useless memory space to NO_ACCESS, then some dump tools (e.g: LordPE) would not dump this process;
17. monitor keyboard:
monitor keyboard input, e.g: F7, F8, F9, F10;
18. Lock display:
lock display to prevent cracker to see the screen content;
19. destroy SEH environment:
invoke SetUnhandledExceptionFilter to stop debugger to catch exception;
20. debug parent process:
anti-debug;
21. CC protection or CopyMem-II protection:
such as modify all jump to CC (int 3), then we could use INT 3 handler to process the jump to correct address;
CopyMem-II means copy ourselves to another memory space to prevent to dump;
22. anti Attach:
destroy passed instruction to anti-attach; or create a process which doesn't support attach mode (require NT or later system);
23. instruction pre-fetch:
use CPU pre-fetch feature to disturb step trace, e.g:
mov word ptr [@@], 20cdh
@@:
nop
nop
24. create polymorphism packer codes:
25. save sensitive data to random space:
26. P-code:
use virtual CPU to run P-code to anti-debug;
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
خوب شما بگید بیشتر چکار میکنید که برنامهاتون کرک نشن
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
پست قبلی من واضح بود ، پیاده سازی اون تکنیک ها میتونه به امنیت برنامه های شما خیلی کمک کنه ، در ضمن اگه شما یه کراکر خوب باشید بهتر میتونید متوجه بشید که طی فرآیند کرک کردن یه برنامه چی میتونه اعصاب کراکر رو خراب کنه ، پس پیشنهاد میکنم یه سری به کتاب Crack و تکنیک های نفوذ به نرم افزار از انتشارات ناقوس بزنید ، کتاب جامعی هستش.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
Nima NT
پست قبلی من واضح بود ، پیاده سازی اون تکنیک ها میتونه به امنیت برنامه های شما خیلی کمک کنه ، در ضمن اگه شما یه کراکر خوب باشید بهتر میتونید متوجه بشید که طی فرآیند کرک کردن یه برنامه چی میتونه اعصاب کراکر رو خراب کنه ، پس پیشنهاد میکنم یه سری به کتاب Crack و تکنیک های نفوذ به نرم افزار از انتشارات ناقوس بزنید ، کتاب جامعی هستش.
کتاب مزخرف و گندی هست
اگر زبان برنامه نویسی شما وی بی باشه
از این تکنیک ها استفاده کنید
فایل خودتونو به صورت pcode کامپایل کنید ( کرک pcode اسان هست ولی خیلی ها نمی دونن)
از یه چند تایمر برای چک کردن رجیستر شدن برنامه استفاده کنید ( از کار انداختن تایمر راحته ولی خیلی ها بلد نیستن)
از Crc چک و الگوریتم های هش استفاده کنید
هیچ موقع سریال برنامه را تو یه متغییر قرار ندین ( سریال فیش میشه)
تو الگوریتم برنامه خود از فرمول های پیچیده ریاضی استفاده کنید
تا جایی که می تونید به جای if از while استفاده کنید.(تجربه میگه)
از if های تو در تو استفاده کنید
سعی کنید چند فایل را به هم وابسته کنید و چک قفل یا رجیستر شدن برنامه را در انها هم چک کنید
کد را طوری بنویسید که وقتی کرکر خواست پچ کنه سیستم شات داون بشه (تجربه میخواد)
واسه کرکر با توابع Api مزاحمت ایجاد کنید . مثلا با Sleep و Blockinput و ...
در اخر هم برنامه را با پکر نه با یه پروتکتور قوی مثل themida یا Execryptor یا punisher و ... پروتکت کنید
مبحث پکر با پروتکتور جداست
موفق باشید
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
koruir
خوب مطلب بعدی رو هم خودم مینوسم.
همونطور که میدونید اصل کرک کردن بر پایه به هم زدن دستورات شرطی دربرنامه هست. به طور مثال شرط زیر را:
If StrRegCode = "123" Then
MsgBox "Register Success!"
End If
به شرط زير تغيير ميدهند:
If StrRegCode <> "123" Then
MsgBox "Register Success!"
End If
شما میتونید دستورات چک کردن رجیستر بودن/نبودن برنامه را به تعداد بیشتر از یک بار در برنامه؛ و در جاهای مختلف به کار ببرین.
نکته: معمولا برنامه ها یک بار و آن هم موقع Start یا Load شدن برنامه؛ رجیستر را چک میکنند.
نکته: معمولا کرکرها برفرض عادی بودن برنامه دست به کار میشن. و اگه جایی رو دستکاری کنن و برنامه کرک نشده باشه؛ فکر میکنن شرط رو اشتباه پیدا کردن. و اونو به حالت اول برمیگردونن تا کار برنامه مختل نشه و به دنبال شرط بعدی میرن.
این کد هایی که نوشتی اشتباه محض است (هر دوشون )
اینطوری براحتی سریال اصلی برنامه را میشه پیدا کرد . پچ کردنشم فوق العاده راحت است (حتی برای مبتدی)
سریال برنامه یعنی 123 را اصلا نباید دخالت بدی براحتی بدست میاد
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
.:KeihanCPU:.
در رابطه با نحوه کار کرکرها با hex editor ها بگید
دوست عزیز من نمی دونم هگز ادیتور این وسط چه کاره هست
من تا حالا این همه کرک کردم اصلا ازش استفاده نکردم
اصلا هیچ ربطی به مسائل امنیت هم نداره
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
در مورد Encode كردن دوستان ميشه يكم توضيح بديد.
Encode يك دستور تو VB هست يا همين كه برنامه نويس تغييراتي تو كدنويسي با تغيير كاراكترها و سپس با محاسبات رياضي به حالت اول برگرداندن است؟
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
این کد هایی که نوشتی اشتباه محض است (هر دوشون )
اشتباه محض نيستن ! اينها فقط يه مثالن براي شرح كار كراكر .
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
debugger
این کد هایی که نوشتی اشتباه محض است (هر دوشون )
اینطوری براحتی سریال اصلی برنامه را میشه پیدا کرد . پچ کردنشم فوق العاده راحت است (حتی برای مبتدی)
سریال برنامه یعنی 123 را اصلا نباید دخالت بدی براحتی بدست میاد
دوست عزيز سلام. ممنون که در بحث شرکت کردين.
منظود من از نوشتن اين دو کد اين بود که به زبون کاملا ساده به دوستان بفهمونم که چطوري ميشه که دستور شرطي که براي برنامه نوشته ميشه به سادگي کرک ميشه. در واقع ميخواستم فکر دوستان رو به عوض شدن = به <> معطوف کنم. همين.
نقل قول:
در مورد Encode كردن دوستان ميشه يكم توضيح بديد.
Encode و Decode به روشي گفتي ميشه که با اون ميتوني مثلا يه رشته متني رو به رمز بنويسي. و بعد به سادگي خودتون اون متن رو بازيابي کنيد.
نقل قول:
مبحث پکر با پروتکتور جداست
مطلب جالبي هست. صادقانه بگم چيزي در مورد تفاوتشون نميدونستم. ميشه بيشتر توضيح بدين؟ :لبخند: آخه من تا الان فقط از UXP استفاده ميکردم. که فکر کنم فقط Packer باشه!
نقل قول:
واسه کرکر با توابع Api مزاحمت ایجاد کنید . مثلا با Sleep و Blockinput و ...
برام خيلي جالبه بدونم چطوري ميتونم کرکر رو به اين حالت :عصبانی++: در بيارم
نقل قول:
کد را طوری بنویسید که وقتی کرکر خواست پچ کنه سیستم شات داون بشه (تجربه میخواد)
دوست عزيز ميشه خواهش کنم از تجربياتتون ما رو هم بهره مندکنيد؟:خجالت:
نقل قول:
هیچ موقع سریال برنامه را تو یه متغییر قرار ندین ( سریال فیش میشه)
من چيزي که به فکرم نميرسه. ميشه بيشتر توضيح بدين؟
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
از Crc چک و الگوریتم های هش استفاده کنید
از بین بردن این جور تکنیک ها خیلی راحته ، بهتره برید سراغ تکنیک های هش غیر متقارن
نقل قول:
هیچ موقع سریال برنامه را تو یه متغییر قرار ندین ( سریال فیش میشه)
موافقم ولی تولید سریال واقعی و مقایسه اون با کد دریافتی جزو ناشیانه ترین کارهاست :اشتباه:
نقل قول:
تو الگوریتم برنامه خود از فرمول های پیچیده ریاضی استفاده کنید
100 ٪ شکسته میشه ، این گونه روشها 5 سالی میشه که منسوخ شده ، فقط استفاده از شیوه های رمزنگاری RSA و پازل زمانی توصیه میشه.
نقل قول:
تا جایی که می تونید به جای if از while استفاده کنید.(تجربه میگه)
واسه کراکر های حرفه ای بیشتر شبیه یه شوخیه.
نقل قول:
از if های تو در تو استفاده کنید
در همه موارد موثر نیست
نقل قول:
کد را طوری بنویسید که وقتی کرکر خواست پچ کنه سیستم شات داون بشه (تجربه میخواد)
بهش میگن بمب منطقی ، استفاده از این جور تکنیک های نباید تو یه جای برنامه باشه ، فقط هم به شات دان فکر نکنید ، کراکر میتونه با دستور Shutdown -a کل بمب رو خنثی کنه ، به فکر فرمت و از این جور حرفا باشید.
نقل قول:
واسه کرکر با توابع Api مزاحمت ایجاد کنید . مثلا با Sleep و Blockinput و ...
استفاده از این جور توابع زیاد مزاحم کراکر نمیشه ، چون میتونه از بیخ لیست این توابع رو از Import Table حذف کنه.
........................................ از نقطه نظراتتون هم ممنونم.:تشویق:
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
موافقم ولی تولید سریال واقعی و مقایسه اون با کد دریافتی جزو ناشیانه ترین کارهاست
نيما جان خواهش ميکنم راه حل رو همينجا بگين تا همه استفاده ببرن؟
فکر کنم منظور شما اينه که به جاي اينکه سريال واقعي رو درست کنيم.(مثلا نام و ميل طرف رو Encode کنيم) و ببينيم که با سريال وارد شده يکي هست يا نه؟ بيايم و برعکس عمل کنيم و (سريال رو Decode کنيم) و ببينيم که با مثلا نام و ميل وارد شده يکي هست يا نه؟
به عبارت ساده تر سورس Encode تو برنامه نباشه؛ و از Decode استفاده بشه. درسته؟
نقل قول:
استفاده از این جور توابع زیاد مزاحم کراکر نمیشه ، چون میتونه از بیخ لیست این توابع رو از Import Table حذف کنه.
منظورتون اينه که ميشه توابع API رو Enable/Disable کرد؟ لطفا توضيح بدين.
البته شیوه های رمزنگاری RSA و پازل زمانی هم نميدونم چيه!!!
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
Nima NT عزیز من هر چی گفتم شما اومدی یه چیزی روش گزاشتی
اینجا صحبت از امنیت است. صحبت از رتبه کرکر ها نیست
هیچ پروتکشنی تا حالا نتونسته از دست حرفه ای ها سالم بیرون بیاد
شکی نیست که کسی که themida , Asprotect و .... خودشو فول انپک و کیجن می کنن بهترین ها هستن ( مثال بود )
ما اینجا میخواهیم به امنیتی برسیم که همه نتونن کرک کنن . نمی خواهیم بدیم بهترین ها کرک کنن ( که تعدادشون هم کم هست )
من هر چی نوشتم بر حسب تجربه بود. اگر میخوای یه کرک می بنویسم ببینم میتونی کرک کنی
کرک می را با FSG پک می کنم ( که پکر ساده ای است ) اما اینو میدونم که فقط تو انپکش می مونی
چرا ؟ چون من oep و crc32 پکر را تو تایمر و جاهای دیگه چک کردم. اگر فایل را انپک کنی برنامه متوجه میشه که انپک شده بعدش یه بلایی سرت میاره که دیگه نگی خنثی کرد و شوخی بود و موثر نیست و .....
البته این فقط یکی از 100 روتین من بود
=============================
در مورد فرق بین پکر و پروتکتور :
پکر یک برنامه ساده است که حجم برنامه را به میزان قابل توجهی پایین می اورد و جلوی افراد مبتدی از ریسورس کردن برنامه میگیرد.
معمولا برنامه هایی که پک میشن .اولین دستورشون pushad هست. و با استفاده از قانون پشته انپک می شوند. طرز انپک کلی به این صورت است : اولین مقداری که وارد استک میشه روش بریک پوینت میزاریم . همه میدونید که اولین مقدار وارد شده اخرین مقدار خارج شده . وقتی اولین مقدار میخواد خارج بشه دیباگر می ایستد . چون روش قبلا بریک پوینت گزاشته بودیم .در واقع اینجا جایی هست که از کد های پکر خارج شدیم. و به oep رسیدیم . در اینجا دامپ می گیریم و تمام ( به صورت کلی گفتم)
ولی پروتکتور به روش بالا اصلا نمیشه کاری از پیش بد
معمولا پروتکتور ها حجم فایل را بالا می برند
از متد های VM , Antidebug,anti trace , anti dump ,Api redirection ,Stolen byte , Stolen Code,Code redirection,crc check,.....
استفاده می کنن. که کار کرک را بسیار دشوار می کنن.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
koruir
نيما جان خواهش ميکنم راه حل رو همينجا بگين تا همه استفاده ببرن؟
فکر کنم منظور شما اينه که به جاي اينکه سريال واقعي رو درست کنيم.(مثلا نام و ميل طرف رو Encode کنيم) و ببينيم که با سريال وارد شده يکي هست يا نه؟ بيايم و برعکس عمل کنيم و (سريال رو Decode کنيم) و ببينيم که با مثلا نام و ميل وارد شده يکي هست يا نه؟
به عبارت ساده تر سورس Encode تو برنامه نباشه؛ و از Decode استفاده بشه. درسته؟
منظورتون اينه که ميشه توابع API رو Enable/Disable کرد؟ لطفا توضيح بدين.
البته شیوه های رمزنگاری RSA و پازل زمانی هم نميدونم چيه!!!
دوست عزیز نمیشه که APi را enable , Disable کرد. این کار را با LordPe انجام میدن
این توابع را به کل حذف می کنن. همین. باید سررشته داشته باشی
در کل باید بگم که اینا همش مباحث شیرین Reversing هست که به این زودی نمیشه یاد بگیری. اصلا توضیح بدم میگی این چیه اون چیه ؟
در کل داشتم تو انجمن می گشتم که چشمم به این تاپیک خورد . دیگه حوصله کل کل ندارم.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
جناب دیباگر زیاد به روتین های خودتون مطمئن نباشید و لطفا" از لحن مناسب تری استفاده کنید ، به قول شاعر پارسی گو ، سعدی :
گرفتم ز تو ناتوان تر بسی است از تو توانا تر هم آخر کسی است.
به نظره بنده بهتره یه سری به بخش امنیت نرم افزاری بزنید ، یا اینکه دنبال پست های جناب هادی دلفی ( همکار بنده در شرکت ایران نوین ) بگردین ، تا ببینید که کرک کردن برنامه های پک شده زیاد سخت نیست.
در مورد اینکه شما میگین توابع API رو نمیشه حذف کرد باید خدمتتون عرض کنم بنده برنامه ای رو برای خودم کرک کردم که از آوردن اسمش معذورم ( اگه خواستی بهت پیغام خصوصی میدم ) ، که این برنامه 20 تایمر داشت که به صورت Runtime تولید میشد ، وبا سرعت بالا وجود قفل رو چک میکرد اگر کد وجود نداشت برنامه رو خاتمه میداد ، من عوض اینکه از ایجاد 20 تایمر جلوگیری کنم اومدم و با SoftICE تابع مربوطه به ExitProcess رو از توابع Import شده حذف کردم ، حالا اگه این تایمر ها تونستن برنامه رو ببندن.
در ضمن تعداد کراکر های حرفه ای بر خلاف نظر شما خیلی هم کم نیستن.
اگه فقط بخوایم تو ایران دنبال این موضوع باشیم باید بگم با یه لشگر طرفیم.
نقل قول:
چون من oep و crc32 پکر را تو تایمر و جاهای دیگه چک کردم. اگر فایل را انپک کنی برنامه متوجه میشه که انپک شده بعدش یه بلایی سرت میاره که دیگه نگی خنثی کرد و شوخی بود و موثر نیست و .....
این کار شما برای کراکر هایی مثل Magic و گروه هایی مثل Unreal یه شوخیه تا یه Crackme !
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
دوست عزیز
??????????
بقیه دوستان همشون دوستان صمیمی بنده هستن و منو هم میشناسن . من خودم برای هدف دیگه ای اومدم اینجا
یکمی از مباحث reversing میخوام فاصله بگیرم . بنا به دلایل شخصی
در ضمن اصلا شما استاد ما هستین . من فقط اومدم کمی راهنمایی کنم
از گناه ما بگذرید
خداحافظ
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
من نگفتم من استاد کسی هستم ، من از لحاظ علمی قد این حرفا نیستم ، فقط خواستم بگم که دست کم گرفتن کراکر ها شیوه درستی برای نوشتن یه قفل مطمئن نیست ، همشه سعی کنیم حریف خودمون رو خیلی بالاتر از سطح واقعی تصور کنیم تا بتونیم لااقل به جای اینکه با یه برنامه متوسط به یه نبرد بریم با یه برنامه مطمئن و سخت کارزار کنیم ،..
امیدوارم همیشه موفق و موید باشید.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
فکر کنم اگه مدیر بخش اینجا رو ببینه درش رو تخته کنه ، بی زحمت Crackme های خودتون رو تو بخش امنیت نرم افزار بذارید ، این کار شما یه کمی خلاف قانون تالار می باشد ، واسه من فرقی نداره که مدیر تاپیک رو قفل کنه یا نه ولی چون دوست دارم بحث ادامه پیدا کنه اینو میگم ، بحث رو بیشتر واسه ارائه تکنیک ( از لحاظ نظری ) ادامه بدید نه از لحاظ ایجاد چالش.
متشکرم.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
تجربه ثابت کرده که این طور تاپیک ها آخرش یا حذف میشه یا قفل.
شما همتون یا همین حالا استادین یا در آینده استاد خواهید شد.
از بحث های الکی خودداری کنید و فقط به موضوع تاپیک بپردازید.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
فایل خودتونو به صورت pcode کامپایل کنید
با توجه به اینکه گفتین: کرکش آسونتره، چرا توصیه میکنین؟ منظورم اینه که چرا از روش Natıve استفاده نکنیم؟
اگه ممکنه توضیح بفرمایین. ممنون
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
شاید این سوال رو از من نپرسیدین ولی چون دارم از فزولی میمیرم دوست داشتم جواب بدم.
با اجازه جناب دیباگر.
علت اینه که کرک کردن این نوع از فایل های VB آسونه ولی هرکسی بلد نیست ، به عبارتی کل مطلب ساده هستش ولی به علت عدم فراگیر بودن میتونه به دوام برنامه شما در بازار تا حدی کمک کنه.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
فقط هم به شات دان فکر نکنید ، کراکر میتونه با دستور Shutdown -a کل بمب رو خنثی کنه ، به فکر فرمت و از این جور حرفا باشید.
به نظر من اصلا به هيچي فكر نكنيد !!:متعجب:
اخه فرمت كه...
نقل قول:
چون من oep و crc32 پکر را تو تایمر و جاهای دیگه چک کردم. اگر فایل را انپک کنی برنامه متوجه میشه که انپک شده بعدش یه بلایی سرت میاره که دیگه نگی خنثی کرد و شوخی بود و موثر نیست و .....
جهت اطلاع كليه دوستان :
با تغيير دادن حتي يك بايت از يك فايل ، بدونه هيچ گونه استثنا CRC فايلها تغيير پيدا مي كنه !!
يك كار مي شه كرد !! اينكه بيايد فايلو پك كنيد و از طريقه برنامه ي PEiD بياييد و CRC فايل رو عوض كنيد !! ولي اين روش فقط روي برخي برنامه هاي كم امنيت كار مي كنه (مثله fsg)!
برنامه هاي قدرتمند مثله themida اجازه ي همچين كارايي رو نمي ده !! تازه اين روش بر رويه برخي از برنامه ها كار سازه !!
نقل قول:
البته این فقط یکی از 100 روتین من بود
ببخشيد ! ولي مثله اينكه شوخيتون گرفته !!
شما بگو من 100000 تا تايمر مي زارم !! 100 بار در اجراي برنامه چك مي كنم !!!200 بار در وسط برنامه !!!! 300 بار هم در اخره برنامه !!!!!
آقاي ديباگره عزيز !! ايا قبول داريد كه چك كردنه CRC توسط دستورات شرطي (حالا چه if باشه يه هر چيزه ديگه اي) صورت مي گيره !؟
آيا قبول داريد كه دستورات شرطي (به هر تعداد و به هر روش{سخت و اسان}) قابل شكستن هستند !؟
خب پس هيچي ، ولش كن ... :لبخند:
:تشویق:
نقل قول:
در کل باید بگم که اینا همش مباحث شیرین Reversing هست که به این زودی نمیشه یاد بگیری. اصلا توضیح بدم میگی این چیه اون چیه ؟
خداييش اين جمله رو خيلي حال كردم :لبخند:!!
دوست عزيز !! ديباگر جان !!
اينجا انجمن هست !! و افراد زيادي به اينجا ميان تا از همديگه چيزي ياد بگيرن !!
حالا اينكه شما مي گي نمي توني ياد بگيريو ... به اين زوديا نمي شه ياد بگيري قضيه ش چيزه ديگه است !!!!!
يعني بچه ها بايد بشينن ،دست رو دست بزارن ... بعد از 4 -5 ماه ، و بعد از مدتي خود به خود ياد مي گيرن !؟
نه خير جانم !! شما كه بلدي يادشون بده !! از كم شروع كن تا ...
ولي در كل روشهايي كه دوست عزيز نيما گذاشتن بهترين راهه !!
انگليسي هست !! ولي با جستجو در مورد انها در نت به نتيجه خواهيد رسيد :لبخندساده:
نقل قول:
1. garbage instructions:
insert many many garbage instructions to hide special instructions, disturb analysis and make people fret;
2. garbage loops:
same as the first item;
3. time comparing:
classic method, as step in/over need much longer than normal execution;
4. check parent process:
if target process is debugged, its parent process usually are not explorer.exe :)
5. check debugger:
windows provides some APIs to check if process is being debugged, such as: IsDebuggerPresent/NtQueryInformationProcess.
of course, you could also test CreateFile/PEB(just like IsDebuggerPresent to do).
6. dynamic encrypt/decrypt:
make analysis much more complex; re-encrypt the instructions which are passed could prevent cracker to check the old instructions effectivelly;
7. IAT encrypt:
stop the tools, e.g: ImpREC to recover IAT;
8. Fuzzy the instructions:
there are many ways to fuzzy the instructions, e.g: fuzzy the OEP instructions or fuzzy a random codes in process;
9. call:
use call instruction to confuse the cracker;
10. self-debug:
windows allows only one debugger to debug the target process, so we could use two or more processes. one process used to debug the special process to prevent cracker to debug the special process.
if we let one process to hook one interrupt, we could use this interrupt to decode or fuzzy some part codes;
11. SEH:
raise an exception manually to change process flow, such as: memory access exception, interrupt (int3,int1 or others), invalid instruction, invalid eip and so on;
12. multi-thread:
when a process is debugged and enter a breakpoint, all threads may be suspended. We could use this method to stop cracker:
a. change flow with multi-thread: modify main thread codes in sub thread, if sub thread is suspended, then main thread will fail;
b. use multi-thread decrypt main/sub thread codes;
13. anti-SMC:
use Timer or sub thread to set core memory space to READONLY access in a short time;
14. CRC checksum:
check codes CRC checksum to do a self test;
15. destroy debug environment:
modify DR register, interrtup process (int 1, int 3) or handle special interrupt by ourselves;
16. anti-DUMP:
set some useless memory space to NO_ACCESS, then some dump tools (e.g: LordPE) would not dump this process;
17. monitor keyboard:
monitor keyboard input, e.g: F7, F8, F9, F10;
18. Lock display:
lock display to prevent cracker to see the screen content;
19. destroy SEH environment:
invoke SetUnhandledExceptionFilter to stop debugger to catch exception;
20. debug parent process:
anti-debug;
21. CC protection or CopyMem-II protection:
such as modify all jump to CC (int 3), then we could use INT 3 handler to process the jump to correct address;
CopyMem-II means copy ourselves to another memory space to prevent to dump;
22. anti Attach:
destroy passed instruction to anti-attach; or create a process which doesn't support attach mode (require NT or later system);
23. instruction pre-fetch:
use CPU pre-fetch feature to disturb step trace, e.g:
mov word ptr [@@], 20cdh
@@:
nop
nop
24. create polymorphism packer codes:
25. save sensitive data to random space:
26. P-code:
use virtual CPU to run P-code to anti-debug;
چند وقت پيش (هنوز نرفته بودم دانشگاهه لعنتي) يه برنامه ي امنيتي نوشتم كه در جشنواره ي پروفسور حسابي مقام دوم در كليه رشته ها رو كسب كرد ، اين برنامه براي محافظت از فايلهايه اجرايي هست و از كپي برداريه اونا جلوگيري مي كنه !!
نمي گم برنامه غير قابله كركه!! ولي هر كس فكر مي كنه مي تونه كركش كنه ، پيغام خصوصي بده تا براش بفرستم.
روش هاي بالا ، روشهاي خوبي هستند !
ولي روشهاي انتي كركينگ ، رابطه ي مستقيم با ابتكاري كه خوده شما به خرج مي ديد ، داره !!
و هر چه از روشهاي ديگران استفاده كنيد ! برنامه ي شما زودتر كرك مي شه !!
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
شما بگو من 100000 تا تايمر مي زارم !! 100 بار در اجراي برنامه چك مي كنم !!!200 بار در وسط برنامه !!!! 300 بار هم در اخره برنامه !!!!!
دوست عزیز من گفتم روتین : نگفتم تایمر
روتین با تایمر فرق می کنه داداش
اشتباه از من بود که شرکت کردم . شما به بزرگی خودتان ببخشید
در ضمن میگی بیا اینجا یاد بده و ..... من از کرک خیلی وقته زده شدم .و هیچی هم بلد نیستم شما خودت با این حرف های تخصصی که میزنی استادی پس خودت بیا اینجا یاد بده
ماشااله تو جشنواره هم مقام گرفتی
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
دوست عزیز من گفتم روتین : نگفتم تایمر
منظوره منم تایمر نبود ! من گفتم 100000 داشته باشی ... روتین سر جایه خودشه
نقل قول:
روتین با تایمر فرق می کنه داداش
شوخی می کنی !؟ فک می کردم یکیین:گیج:
نقل قول:
در ضمن میگی بیا اینجا یاد بده و ..... من از کرک خیلی وقته زده شدم .و هیچی هم بلد نیستم شما خودت با این حرف های تخصصی که میزنی استادی پس خودت بیا اینجا یاد بده
وقتشو ندارم
:متفکر:
نقل قول:
ماشااله تو جشنواره هم مقام گرفتی
اصلا قابلتونو نداره عزیزم ... :قلب:
در کل فرقی نمی کنه ! وقتی themida کرک شه ! دیگه وای به حاله من و شما :ناراحت:
متاسفانه یا خوشبختانه (به نظر من خوشبختانه) کرک همینجور در حال توسعه بین کاربران رایانه ها هست. علم خیلی جالبی هست!
باید برم ... بای
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
MFiRE
منظوره منم تایمر نبود ! من گفتم 100000 داشته باشی ... روتین سر جایه خودشه
شوخی می کنی !؟ فک می کردم یکیین:گیج:
وقتشو ندارم
:متفکر:
اصلا قابلتونو نداره عزیزم ... :قلب:
در کل فرقی نمی کنه ! وقتی themida کرک شه ! دیگه وای به حاله من و شما :ناراحت:
متاسفانه یا خوشبختانه (به نظر من خوشبختانه) کرک همینجور در حال توسعه بین کاربران رایانه ها هست. علم خیلی جالبی هست!
باید برم ... بای
سلام
به نظر من هر چی قفل امنیتی برنامه ساده تر باشه بهتر ه و قابل کرک شدن نیست من چند روز پیش یک قفل نرم افزاری برای برنامه شرکت خودمون نوشتم که خیلی ساده هست اصلا از هیچ فرمولی استفاده نشده و بسیار بسیار ساده هست.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
یعنی چون ساده ست ، کرک نمی شه !؟
می شه بیشتر توضیح بدین ؟
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
MFiRE
یعنی چون ساده ست ، کرک نمی شه !؟
می شه بیشتر توضیح بدین ؟
منظورم اینه که در کل از فرمول های پیش پا افتاده استفاده کنید مثلا شماره سریال مادربرد
را بگیرید این باشه 5699984112 حالا مثلا شما یک دستور شرطی بزارید اگه چهارمین حرف
عدد 9 بود به جاش حرف T و عدد 3 قرار بده که در مجموع کل میشه 569T0984112 حالا یک
دستور شرطی دیگه میزاری . به نظر من اصلا نباید به این شکل عمل کنی که به عدد اول 2 تا
اظافه بشه به عدد هشتم 9 اظافه بشه و الی آخر کراکر ها اولین کاری که می کنند از این
روش استفاده می کنند و بعد ش از راه مختصات شهر و ساعت ساخت و از این جور حرف ها.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
سلام
چند روزی نبودم :بوس:
ولی دوست عزیز بازهم قابله کرک شدنه !!
خب بازم فرقی نداره ! اخه شما می گی که از دستوراته شرطی استفاده کنیم !
کلیه دستورات شرطی قابله کرک شدنه ! هر چی می خواد باشه !!
اگه نشه براش Patch ساخت ، می شه براش لودر نوشت و خیلی کارهایه دیگه !
به هر حال شما از دستورات شرطی استفاده کردی ! و یک مقدار رو چک می کنی ، حالا این چک کردن با دستوراته شرطی انجام می شه.
یعنی شما می گی:
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
تمام شد رفت پی کارش (خداییش end if رو حال کردین ... جدیده:لبخند:)
حالا کرکر می گه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
راستی اینم بگم که فرقی نداره که شما از کدوم روش استفاده کردی ! اون اولی که گفتین و دومی ، فرقی نداره !
البته قابله ذکره که این چیزایی که گفتم فقط در مورده برنامه هایی هست که یه سریال دریافت می کنند و مجوز ورود رو می دن !!
من نمی دونم چرا موقع افطار می یام میشینم سایته برنامه نویس رو نگاه می کنم !؟؟ شما می دونین !؟
اقا ما بریم افطار ... هر چند که دیر شده :لبخند::گیج:
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
دقیقا یادم نیست کی ولی یکی از دوستان امضاش این بود:
نقل قول:
اگر می خواهید برنامه تان کرک نشود اصلاً برنامه ننویسید
فکر کنم این تاپیک هم آخرش به همین جمله ختم میشه.
این که نشد یکی یه چیزی میگه نفر بعدی حرف قبلی رو رد میکنه.
سوء تفاهم پیش نیاد منظورم این نیست که چرا هی ایده های هم رو نقض می کنید. منظورم اینه که آخرش چه باید کرد که برنامه کرک نشود؟
من هم فکر می کنم جلوگیری از کرک برنامه غیر ممکن باشه. ولی باز هم خودم تو برنامه هام سعی می کنم تا اونجا که می تونم حداقل دست کرکرهای مبتدی رو بسته نگه دارم.
هنوز هم منتظر ایده های دوستان برای جلوگیری از کرک شدن برنامه هستم، همینطور دلایل منطقی برای رد ایده ها.:چشمک:
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
MFiRE
یعنی شما می گی:
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
تمام شد رفت پی کارش (خداییش end if رو حال کردین ... جدیده:لبخند:)
حالا کرکر می گه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
دوست عزیز شما فکر کنم افطار تون دیر شده و روزه هم داشتی ضعف کردین. و اینها را همین جور الکی نوشتین رفتین افطار .
هیچ برنامه نویسی از این روش استفاده نمی کنه که شما استفاده کردین منظورم :
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
اگه اینطوری بود هر کی می تونست کرک کنه. اینجوری ها هم که فکر می کنید نیست که کرکر بیاد بگه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
ببین هیچ کراکری تا نقصی از برنامه پیدا نکنه و فرمولی نداشته باشه نمی تونه برنامه را کرک کنه.
[/quote]
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
ببخشيدها ولي چرا اينقدر بهونه ميگيريد؟ منظور MFiRE اين بود که براي رجيستر از هر چيزي که استفاده بشه؛ نهايتا بايد بايه دستور شرطي چک بشه. و کرکر هم مياد و دستور شرطي رو براي رد شدن از قفل نرم افزاري برعکس ميکنه. همين.
نقل قول:
ببین هیچ کراکری تا نقصی از برنامه پیدا نکنه و فرمولی نداشته باشه نمی تونه برنامه را کرک کنه
در ضمن scarce جان؛ بزرگترين نقص همون استفاده از دستورات شرطي هست. که البته راهي به جز اين هم نيست. و فکر کنم دوستان بدونن که کرکر برنامه رو خط به خط اجرا ميکنه تا شرط مورد نظر رو پيدا کنه. البته نه در همه موارد.
تا اونجايي هم که من ميدونم دوستان به دو دليل ميان به فروم.
1.ياد گرفتن
2.ياد دادن
پس جايي براي کل کل نمي مونه.
البته در همين فروم؛ در قسمت امنیت در نرم افزار و برنامه نویسی ميتونين CrackMe هاي خودتون رو ارايه بدين تا اساتيد روش کار کنن. و بهتون قول ميدم که از کار کردن روي CrackMe هاي قوي استقبال کنند. اما پيشنهاد ميکنم که قبل از هر کاري اول قوانين اونجارو بخونين.
با آرزوي موفقيت براي همه ي دوستان.
دادار يار.
يا حق.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
اگه اینطوری بود هر کی می تونست کرک کنه. اینجوری ها هم که فکر می کنید نیست که کرکر بیاد بگه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
متاسفانه یا خوشبختانه بر خلاف فرمایش شما دقیقا" همین طوره ، کراکر در بعضی موارد کاری نداره که فرمول چیه و... فقط به برنامه میگه اجرا شو .... همین.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
درضمن دوست عزیز ، جناب " Scarce" ، بنده قبلا" کراکر بودم ولی الان ترک کردم ، این طوری که شما درباره قفل های نرم افزاری صحبت کردید گمان میکنم سر رشته ای از کرک نداشته باشید یا لااقل زیاد سراغ این مقوله نرفته اید ، به جز در موارد قفل های سخت افزاری کرک کردن دیگر برنامه ها زیاد هم سخت نیست ، شما میتونید این مطلب رو تو تالار امنیت برنامه نویسی جستجو کنید ، جناب بردیا از اساتید کرک ایران تو این تالار فعالیت دارن و بنده با نوشتن برنامه و کرک شدن از جانب ایشون سطح پیشرفت دریافت میکردم ، خودتون میتونید به پست ها دقت کنید ، بنده از سطح 1 از 10 شروع کردم و الان به سطح 6 از 10 رسیدم و در این فاصله ابدا" امنیت رو ساده نگرفتم و تا میتونستم قفل رو پیچیده میکردم ، حالا بازم شما میگید بهتره بیایم و قفل های نرم افزاری ساده بنویسیم.؟!!!!!
و در مورد صحبت قبلی شما :
نقل قول:
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
برنامه هایی که با عنوان قفل نرم افزاری نوشته میشن نهایتا" میان یه جا صحت یه عملی رو بررسی میکنن این در زبان اسمبلی یعنی JNZ ، کراکر ها برنامه رو در دیباگر لود میکنن و میان در همون قسمت به جای کلمه JNZ ، نقیض اون رو یعنی JE رو وارد میکنن بدین ترتیب اگه شما کد صحیح رو به برنامه بدین برنامه خطا میده و میگه کد اشتباهه و اگه کد غلط وارد بشه برنامه با تشریفات اضافی فعال شدن قفل رو اعلام میکنه.
خودتون یه برنامه با VB یا هر زبان دیگه بنویسید و امتحان کنید............. !
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
اگه اینطوره ما تسلیم شدیم. ولی پیشنهاد جالبی برنامه خودمو میدم کرک کنن شاید شما درست گفته باشید.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
یه چند روزی نبودم ... ببین چه خبر شده ... داغونمون کردن !
نقل قول:
دقیقا یادم نیست کی ولی یکی از دوستان امضاش این بود:
نقل قول:اگر می خواهید برنامه تان کرک نشود اصلاً برنامه ننویسید
فکر کنم این تاپیک هم آخرش به همین جمله ختم میشه.
این که نشد یکی یه چیزی میگه نفر بعدی حرف قبلی رو رد میکنه.
سوء تفاهم پیش نیاد منظورم این نیست که چرا هی ایده های هم رو نقض می کنید. منظورم اینه که آخرش چه باید کرد که برنامه کرک نشود؟
من هم فکر می کنم جلوگیری از کرک برنامه غیر ممکن باشه. ولی باز هم خودم تو برنامه هام سعی می کنم تا اونجا که می تونم حداقل دست کرکرهای مبتدی رو بسته نگه دارم.
هنوز هم منتظر ایده های دوستان برای جلوگیری از کرک شدن برنامه هستم، همینطور دلایل منطقی برای رد ایده ها.
:عصبانی:
من ایده ای ندیدم !
ببینید من چیزی رو نقض نکردم !
فقط منظورم این بود :
سادگی برنامه = کرک 100% تضمینی :گیج:!!!!
:عصبانی:
نقل قول:
دوست عزیز شما فکر کنم افطار تون دیر شده و روزه هم داشتی ضعف کردین. و اینها را همین جور الکی نوشتین رفتین افطار .
هیچ برنامه نویسی از این روش استفاده نمی کنه که شما استفاده کردین منظورم :
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
اگه اینطوری بود هر کی می تونست کرک کنه. اینجوری ها هم که فکر می کنید نیست که کرکر بیاد بگه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
ببین هیچ کراکری تا نقصی از برنامه پیدا نکنه و فرمولی نداشته باشه نمی تونه برنامه را کرک کنه.
:عصبانی:
همینجور نوشتی رفتی یعنی چی !؟
من نگفتم کسی می یاد یه شرطه اینجوری می زاره ! منظورم این بود که کلیه شرط هایی که شما می شناسی به این صورت عمل می کنه (یا یه چیزی شبیه به این) !
پس در هر صورت چه یه دونه شرط چه صد دونه شرط بزاری بازم قابله کرک شدنه :عصبانی++:
راستی در مورد نقص برنامه و فرمول ! داخله دنیایه کرک هیچ نقصی پنهان نمی مونه ... بستگی به کرکرش داره ! ولی به هر حال قابل پیدا شدنه ! و وقتی هم پیدا شد برای مثال اگه چیزی رو چک می کرد ، بازم بر می گشت به همین :
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
:تشویق:
نقل قول:
ببخشيدها ولي چرا اينقدر بهونه ميگيريد؟ منظور MFiRE اين بود که براي رجيستر از هر چيزي که استفاده بشه؛ نهايتا بايد بايه دستور شرطي چک بشه. و کرکر هم مياد و دستور شرطي رو براي رد شدن از قفل نرم افزاري برعکس ميکنه. همين.
100 درصد !
ببینم دوستانی که اعتراض کردید ! شما دستوره شرطی می شناسید که با این چیزی که من نوشتم فرق داشته باشه ! مثلا :
اگر سریاله مادربورد باقالی بود کشمشش کن و به کاره کرکر اهمیت نده و بی خیال در کل:لبخند:
یا
اگر سریال مادربورد <=> XXXXXX بود فلان کار و انجام بده !
اصلا منطق نداره ! پس یا مثله اونیه که مثال زدم یا شبیه اونه !
نقل قول:
متاسفانه یا خوشبختانه بر خلاف فرمایش شما دقیقا" همین طوره ، کراکر در بعضی موارد کاری نداره که فرمول چیه و... فقط به برنامه میگه اجرا شو .... همین.
قربونه آدمه چیز فهم :تشویق:
روش های زیادی وجود داره که برنامه ها رو کرک کرد !
یعنی به عبارتی می شه گفت از در نشد از پنجره !
نقل قول:
اگه اینطوره ما تسلیم شدیم. ولی پیشنهاد جالبی برنامه خودمو میدم کرک کنن شاید شما درست گفته باشید.
شاید نه حتما :لبخندساده:
ببخشید یه خورده تند بود !
:بوس:
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
اگر می خواهید برنامه تان کرک نشود اصلاً برنامه ننویسید
آقا این جمله بالا Bug داره:لبخند:. من یه روش بهتر سراغ دارم.
فرض کنید که شما یه برنامه خوب مینویسید. و کلی قفل روش میزارید.
منه کاربر بعد از کلی تو کف بودن برا برنامه:کف: میام و یه سرچی میکنم برای کرک.
میبینم که کرکر عزیز برنامه رو کرک کرده و رایگان در اختیار من گذاشته.
نتیجه: من با حرص و طمع باور نکردنی:شیطان: کرک رو دانلود میکنم. و بعد از استفاده از برنامه, به ریش برنامه نویس میخندم:قهقهه:.
اما حالت دوم:
اینو من خودم توی یه برنامه خوب خارجی (Avant Browser) دیدم.
برنامه نویس میاد و میگه آقا برنامه مجانی. ولی خداییش وجدان داشته باشید. این شماره حساب من. اگه برنامه به دردتون خورد من رو هم فراموش نکنید.
نتیجه: هنوز هیچ قفل نرم افزاری نوشته نشده که به اندازه معرفت کاربر قوی باشه.
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
سلام
جالب بود (:
نقل قول:
نتیجه: من با حرص و طمع باور نکردنی کرک رو دانلود میکنم. و بعد از استفاده از برنامه, به ریش برنامه نویس میخندم
اگه ریش نداشت چی !؟
نقل قول:
داشتيد، کمکهاي شما براي من قابل قبول و تحسين برانگيز مي باشد
.مي توانيد هر مقدار به مرورگر «اونت» کمک کنيد Paypal حمايت شما مرورگر «اونت» را زنده و قدرتمند نگه مي دارد. اگر قصد کمک داريد دکمه کمک مالي را انتخاب کنيد. شما توسط
.تمام فرمهاي کمک امنيت بالا دارند
!خدا نگهدار شما
Anderson
اینم متنه کمک مالیه این برنامه !
ولی خوب اینم یه روشه دیگه !
راستی نظرتون در مورد این کد چیه :
اگر سریال مادربورد = معرفت بود
برنامه اجرا شه
:لبخند:
-
نقل قول: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن
نقل قول:
نوشته شده توسط
MFiRE
یه چند روزی نبودم ... ببین چه خبر شده ... داغونمون کردن !
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
شاید نه حتما :لبخندساده:
ببخشید یه خورده تند بود !
:بوس:
آره یه خورده چه عرض کنم یه خورده تند بود اینجوری باید می نوشتی .
شما بهم پیشنهاد دادید که برنامه بدم دوستان کرک کنن دادم ولی بر سرشون چه بلایی اومد؟ :متفکر:. کرکر درسته از دستورهای شرطی عبور می کنه.! اما از بعد دستور شرطی نمی تونند به همین راحتی بگذرند :گیج: یا اگه بگذرند یا سیستمشون به باد می ره یا برنامه به طور غیر عادی اجرا میشه که فکر کنم کل سیستم خراب نمیشه بعضی قطعات :لبخند: البته بستگی به اهمیت برنامه ها داره از نظر پولی !!. حالا اگه باور نداری قفل نرم افزاری که نوشتم می زارم تو این بخش شما هم سر و کله بزنید با این برنامه.