ورود

View Full Version : گفتگو: بحث پیرامون امنیت برنامه ها در مقابل کرک شدن



koruir
سه شنبه 01 مرداد 1387, 23:42 عصر
دوستان عزیز سلام.
میخواستم با دوستان جمع بشیم و بحثی پیرامون امنیت برنامه ها در مقابل کرک شدن راه بندازیم.
منظور از این تاپیک اینه که انواع روش های ممکن رو برای سخت تر شدن کرک کردن برنامه ها یاد بگیریم.
توجه کنید گفتم سخت تر شدن؛ نه غیر قابل کرک شدن. چون هیچ چیز قطعی نیست.

از دوستان میخوام که هر چیزی که به ذهنشون میرسه بگن. نظر دوستان هرچند ساده؛ قابل بحث هست. پس دریغ نکنید.

koruir
سه شنبه 01 مرداد 1387, 23:44 عصر
مطلب اول رو خودم مینویسم.
یکی از راههای متداول برای سخت کردن عمل کرک شدن برنامه ها؛ استفاده از Toolsهایی به نام Packer هست که این ابزارها معمولا 2 کار انجام میدهند.

الف) Pack کردن برنامه که باعث میشه کرکر در زمان کرک کردن برنامه با اشتباهاتی روبرو بشه که بعدا در مورد این موضوع صحبت میکنیم.

ب) معمولا ابزارهای Packer میتونن حجم برنامه های Compile شده شما رو تا حد زیادی کم کنن. من خودم این کاهش حجم رو به میزان چهار پنجم تجربه کردم.

اما داستان به همینجا ختم نمیشه.
این Toolsهای خوب و کارآمد مثل یک چاقوی دوطرفه عمل میکنن.
توضیح: اگه شما برنامتون رو با UPX پک کنین. میتونین اون رو با همون UPX آنپک (UnPack) کنین.

نکته: میتونین از Packer های پولی استفاده کنین. تا کرکر امکان دسترسی به اون رو نداشته باشه.

نکته: اگه تونستید از سایت های Crack & Serial رجیستر Packer مورد نظر رو پیدا کنین پیشنهاد من به شما اینه که اونو فراموش کنید. چرا که برنامه ای که نتوانسته از خود دفاع کنه؛ چطوری میتونه از برنامه شما دفاع کنه؟

منتظر نظرات شما دوستان هستم.

koruir
چهارشنبه 02 مرداد 1387, 11:04 صبح
خوب مطلب بعدی رو هم خودم مینوسم.
همونطور که میدونید اصل کرک کردن بر پایه به هم زدن دستورات شرطی دربرنامه هست. به طور مثال شرط زیر را:


If StrRegCode = "123" Then
MsgBox "Register Success!"
End If

به شرط زير تغيير ميدهند:


If StrRegCode <> "123" Then
MsgBox "Register Success!"
End If


شما میتونید دستورات چک کردن رجیستر بودن/نبودن برنامه را به تعداد بیشتر از یک بار در برنامه؛ و در جاهای مختلف به کار ببرین.

نکته: معمولا برنامه ها یک بار و آن هم موقع Start یا Load شدن برنامه؛ رجیستر را چک میکنند.

نکته: معمولا کرکرها برفرض عادی بودن برنامه دست به کار میشن. و اگه جایی رو دستکاری کنن و برنامه کرک نشده باشه؛ فکر میکنن شرط رو اشتباه پیدا کردن. و اونو به حالت اول برمیگردونن تا کار برنامه مختل نشه و به دنبال شرط بعدی میرن.

koruir
چهارشنبه 02 مرداد 1387, 23:37 عصر
نه. مثل اینکه کسی افتخار نمیده تا یه بحث راه بندازیم.
اشکالی نداره. مطلب بعد رو هم خودم مینویسم.

یکی از بحث های مهم در امنیت برنامه؛ لو رفتن الگریتم Coding یا Encoding هست که برنامه نویس از اون برای ساخت RegCode یا همون Register Code استفاده میکنه. که در صورت کشف این الگریتم توسط کرکر؛ ایشون میتونن برای برنامه شما KeyGen بسازن.

توصیه: همیشه سعی کنین از پیچیده ترین روش Encode/Decode که میتوانید استفاده کنید.

نکته: بعضی از برنامه نویسان هنگام رجیستر کردن Userها اطلاعاتی مانند نام – میل و مثلا تلفن رو از اونها میگیرن و RegCode از کد شدن این اطلاعات درست میشه.

توصیه: سعی کنید به این اطلاعات؛ اطلاعاتی که از سیستم User گرفتید هم اضافه کنید. یعنی هر سیستم RegCode مخصوص خود را داشته باشد. چون در غیر این صورت اولین RegCodeی که صادر میکنید؛ آخرین هم هست. زیرا اون RegCode به سرعت بین Userها پخش میشه.

majjjj
پنج شنبه 03 مرداد 1387, 07:58 صبح
خوب اگه فقط رجیستری رو مد نظر قرار بدیم انتی های پیشرفته روز دنیا این قابلیت رو دارن که مسیر تغیرات رجیستری رو به شما نشون بدن (البته خودم هم قبول دارم که خودشون هم از رجیستری برای این کار استفاده میکنن)پس بد نیست علاوه بر رجیستری جاهای مختلف دیگه هم این کد هالحاظ بشه

koruir
پنج شنبه 03 مرداد 1387, 13:05 عصر
خوب اگه فقط رجیستری رو مد نظر قرار بدیم انتی های پیشرفته روز دنیا این قابلیت رو دارن که مسیر تغیرات رجیستری رو به شما نشون بدن (البته خودم هم قبول دارم که خودشون هم از رجیستری برای این کار استفاده میکنن)پس بد نیست علاوه بر رجیستری جاهای مختلف دیگه هم این کد هالحاظ بشه

دوست عزيز majjjj ممنون که در بحث شرکت کردين.
اما من در هيچ کدوم از پست هاي قبلي از رجيستري ويندوز صحبت نکردم.
و فکر ميکنم شما منظور منو اشتباه متوجه شديد. منظور من از RegCode اون SerialNumber ي هست که بعد از خريد برنامه به User ميدين. به هر حال پست شما دليلي شد که در اين تاپيک از Windows Registery هم سخني به ميان بياد.



امنيت برنامه ها و Windows Registry
همونطور که دوست خوبمون جناب majjjj اشاره کردن؛ بعضی از Programmerها میان و کد رجیستر برنامه رو در رجیستری قرار میدن. یا اینکه میان و یه کلید تو رجیستری میسازن که نشان دهنده رجیستر شدن برنامه هست.

نکته: برنامه هایی هستند به نام Registry Monitor که کارشون زیر نظر داشتن تغییرات رجیستری ویندوز هست. و میتونن تمام کار هایی رو که شما انجام میدین رو لیست کنن.

نکته: از SerialNumber که بگذریم؛ بعضی از برنامه نویسان تنظیمات و اطلاعات برنامه رو تو رجیستری ذخیره میکنن. مثلا: یکی از برنامه های مطرح Folder Security که من Analyze کردمش؛ آدرس پوشه های Lock شده رو تو رجیستری قرار میداد. که من تونستم با اضافه کردن یک کاراکتر به آدرس پوشه؛ و ReStart کردن سیستم. پوشه رو از قفل بودن در بیارم.

توصیه: همیشه سعی کنید مشخصات رجیستر برنامه، اطلاعات کلیدی برنامه و غیره رو به صورت رمز یا EnCode شده در یک فایل در مسیر برنامه قرار بدید. به دو ولیل:

الف) سخت تر شدن دسترسی دیگران به اطلاعات شما.
ب) با عوض شدن ویندوز اطلاعات شما از بین نمیرود.
ج) Backup و Restore به سادگی و با سرعت بیشتری انجام میشود.

مهران رسا
پنج شنبه 03 مرداد 1387, 13:15 عصر
برای اینکه برنامه هایی بنویسید که در مقابل کرکر های مقاوم باشند باید خودتون کرکر خوبی باشید .

پیشنهاد می کنم اول برید کرک کردن یاد بگیرید .

.:KeihanCPU:.
پنج شنبه 03 مرداد 1387, 14:22 عصر
نظرتون در مورد Hex editor چی هست؟

smart_boy
پنج شنبه 03 مرداد 1387, 14:56 عصر
برای سخت تر شدن کرک می تونید از Hash ها ، CRC,... استفاده کنید . ولی اینها هم فقط باعث می شوند که برنامه دیرتر کرک بشوند!

koruir
پنج شنبه 03 مرداد 1387, 17:22 عصر
برای اینکه برنامه هایی بنویسید که در مقابل کرکر های مقاوم باشند باید خودتون کرکر خوبی باشید
دوست عزيز M8SPY . من نميگم کرکر خوبي هستم. اما اينقدر که بدونم روش هاي متداول Crack چيه؛ از اين مقوله سر رشته دارم. و اينکه من نميخوام اينجا درس بدم. فقط ميخوام تبادل اطلاعات داشته باشيم.


نظرتون در مورد Hex editor چی هست؟
دوست خوبم KeyhanCPU من منظور شما رو نميفهمم! خوب HexEditor هم يک Tools هست که در معمولا در کرک کردن برنامه ها ازش استفاده ميشه. لطف کنيد واضحتر بنويسيد.


برای سخت تر شدن کرک می تونید از Hash ها ، CRC,... استفاده کنید . ولی اینها هم فقط باعث می شوند که برنامه دیرتر کرک بشوند!
آقاي Smart_Boy عزيز.
1) اگه اطلاعاتي داريد که به درد عموم ميخوره لطفا اونو براي استفاده ديگران بنويسيد.
2)به پست اول دقت کنيد عبارت سخت تر شدن کرک کردن برنامه ها رو ميبينيد.

.:KeihanCPU:.
پنج شنبه 03 مرداد 1387, 17:28 عصر
در رابطه با نحوه کار کرکرها با hex editor ها بگید

koruir
پنج شنبه 03 مرداد 1387, 23:42 عصر
در رابطه با نحوه کار کرکرها با hex editor ها بگید

دوست من KeihanCPU ما ميخوايم اينجا ياد بگيريم که چگونه امنيت برنامه هامون رو ببريم بالا. نه اينکه کرک کردن ياد بديم.
تازه اگه بخوايم کرک هم ياد بديم چون به برنامه نويسي با VB مربوط نميشه. ادمين محترم پست رو ميبنده:لبخند::چشمک:

koruir
یک شنبه 06 مرداد 1387, 22:12 عصر
اینطور که میبینم دوستان هیچ علاقه ای به این مبحث ندارن. در صورتی که این یکی از جنجالی ترین مباحث بین برنامه نویسان هست. چرا که هر برنامه نویسی بعد از پیشرفت در کار خود؛ به فکر کسب درآمد از راه برنامه نویسی هست. و فرض کنید ساعت های طولانی و کسل کننده رو پشت سر میگذارین و از سالیان سال تجربیات خود استفاده میکنین تا یک برنامه بنویسین. و به جای کسب درآمد از آن؛ باید دست روی دست بگذارید و شاهد استفاده غیر مجاز از برنامه خود باشید. برنامه ای با طرفداران زیاد؛ اما دریغ از یک ریال درآمد برای برنامه نویس. فقط و فقط به دلیل رعایت نکردن نکات ساده امنیتی.

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

Nima NT
دوشنبه 07 مرداد 1387, 02:43 صبح
من تکنیک های زیر رو پیشنهاد میکنم ، ترجمه و پیاده سازی اون به عهده خودتون.



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;

majjjj
دوشنبه 07 مرداد 1387, 07:26 صبح
خوب شما بگید بیشتر چکار میکنید که برنامهاتون کرک نشن

Nima NT
دوشنبه 07 مرداد 1387, 20:11 عصر
پست قبلی من واضح بود ، پیاده سازی اون تکنیک ها میتونه به امنیت برنامه های شما خیلی کمک کنه ، در ضمن اگه شما یه کراکر خوب باشید بهتر میتونید متوجه بشید که طی فرآیند کرک کردن یه برنامه چی میتونه اعصاب کراکر رو خراب کنه ، پس پیشنهاد میکنم یه سری به کتاب Crack و تکنیک های نفوذ به نرم افزار از انتشارات ناقوس بزنید ، کتاب جامعی هستش.

debugger
سه شنبه 08 مرداد 1387, 09:17 صبح
پست قبلی من واضح بود ، پیاده سازی اون تکنیک ها میتونه به امنیت برنامه های شما خیلی کمک کنه ، در ضمن اگه شما یه کراکر خوب باشید بهتر میتونید متوجه بشید که طی فرآیند کرک کردن یه برنامه چی میتونه اعصاب کراکر رو خراب کنه ، پس پیشنهاد میکنم یه سری به کتاب Crack و تکنیک های نفوذ به نرم افزار از انتشارات ناقوس بزنید ، کتاب جامعی هستش.

کتاب مزخرف و گندی هست

اگر زبان برنامه نویسی شما وی بی باشه

از این تکنیک ها استفاده کنید

فایل خودتونو به صورت pcode کامپایل کنید ( کرک pcode اسان هست ولی خیلی ها نمی دونن)

از یه چند تایمر برای چک کردن رجیستر شدن برنامه استفاده کنید ( از کار انداختن تایمر راحته ولی خیلی ها بلد نیستن)

از Crc چک و الگوریتم های هش استفاده کنید

هیچ موقع سریال برنامه را تو یه متغییر قرار ندین ( سریال فیش میشه)

تو الگوریتم برنامه خود از فرمول های پیچیده ریاضی استفاده کنید

تا جایی که می تونید به جای if از while استفاده کنید.(تجربه میگه)

از if های تو در تو استفاده کنید

سعی کنید چند فایل را به هم وابسته کنید و چک قفل یا رجیستر شدن برنامه را در انها هم چک کنید

کد را طوری بنویسید که وقتی کرکر خواست پچ کنه سیستم شات داون بشه (تجربه میخواد)

واسه کرکر با توابع Api مزاحمت ایجاد کنید . مثلا با Sleep و Blockinput و ...

در اخر هم برنامه را با پکر نه با یه پروتکتور قوی مثل themida یا Execryptor یا punisher و ... پروتکت کنید

مبحث پکر با پروتکتور جداست

موفق باشید

debugger
سه شنبه 08 مرداد 1387, 09:20 صبح
خوب مطلب بعدی رو هم خودم مینوسم.
همونطور که میدونید اصل کرک کردن بر پایه به هم زدن دستورات شرطی دربرنامه هست. به طور مثال شرط زیر را:


If StrRegCode = "123" Then
MsgBox "Register Success!"
End If

به شرط زير تغيير ميدهند:


If StrRegCode <> "123" Then
MsgBox "Register Success!"
End If


شما میتونید دستورات چک کردن رجیستر بودن/نبودن برنامه را به تعداد بیشتر از یک بار در برنامه؛ و در جاهای مختلف به کار ببرین.

نکته: معمولا برنامه ها یک بار و آن هم موقع Start یا Load شدن برنامه؛ رجیستر را چک میکنند.

نکته: معمولا کرکرها برفرض عادی بودن برنامه دست به کار میشن. و اگه جایی رو دستکاری کنن و برنامه کرک نشده باشه؛ فکر میکنن شرط رو اشتباه پیدا کردن. و اونو به حالت اول برمیگردونن تا کار برنامه مختل نشه و به دنبال شرط بعدی میرن.

این کد هایی که نوشتی اشتباه محض است (هر دوشون )

اینطوری براحتی سریال اصلی برنامه را میشه پیدا کرد . پچ کردنشم فوق العاده راحت است (حتی برای مبتدی)

سریال برنامه یعنی 123 را اصلا نباید دخالت بدی براحتی بدست میاد

debugger
سه شنبه 08 مرداد 1387, 09:22 صبح
در رابطه با نحوه کار کرکرها با hex editor ها بگید

دوست عزیز من نمی دونم هگز ادیتور این وسط چه کاره هست

من تا حالا این همه کرک کردم اصلا ازش استفاده نکردم

اصلا هیچ ربطی به مسائل امنیت هم نداره

xxxxx_xxxxx
سه شنبه 08 مرداد 1387, 10:59 صبح
در مورد Encode كردن دوستان ميشه يكم توضيح بديد.

Encode يك دستور تو VB هست يا همين كه برنامه نويس تغييراتي تو كدنويسي با تغيير كاراكترها و سپس با محاسبات رياضي به حالت اول برگرداندن است؟

mehrzad007
سه شنبه 08 مرداد 1387, 12:53 عصر
این کد هایی که نوشتی اشتباه محض است (هر دوشون )

اشتباه محض نيستن !‌ اينها فقط يه مثالن براي شرح كار كراكر .

koruir
سه شنبه 08 مرداد 1387, 13:01 عصر
این کد هایی که نوشتی اشتباه محض است (هر دوشون )

اینطوری براحتی سریال اصلی برنامه را میشه پیدا کرد . پچ کردنشم فوق العاده راحت است (حتی برای مبتدی)

سریال برنامه یعنی 123 را اصلا نباید دخالت بدی براحتی بدست میاد

دوست عزيز سلام. ممنون که در بحث شرکت کردين.
منظود من از نوشتن اين دو کد اين بود که به زبون کاملا ساده به دوستان بفهمونم که چطوري ميشه که دستور شرطي که براي برنامه نوشته ميشه به سادگي کرک ميشه. در واقع ميخواستم فکر دوستان رو به عوض شدن = به <> معطوف کنم. همين.



در مورد Encode كردن دوستان ميشه يكم توضيح بديد.
Encode و Decode به روشي گفتي ميشه که با اون ميتوني مثلا يه رشته متني رو به رمز بنويسي. و بعد به سادگي خودتون اون متن رو بازيابي کنيد.



مبحث پکر با پروتکتور جداست
مطلب جالبي هست. صادقانه بگم چيزي در مورد تفاوتشون نميدونستم. ميشه بيشتر توضيح بدين؟ :لبخند: آخه من تا الان فقط از UXP استفاده ميکردم. که فکر کنم فقط Packer باشه!


واسه کرکر با توابع Api مزاحمت ایجاد کنید . مثلا با Sleep و Blockinput و ...
برام خيلي جالبه بدونم چطوري ميتونم کرکر رو به اين حالت :عصبانی++: در بيارم


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


هیچ موقع سریال برنامه را تو یه متغییر قرار ندین ( سریال فیش میشه)
من چيزي که به فکرم نميرسه. ميشه بيشتر توضيح بدين؟

Nima NT
سه شنبه 08 مرداد 1387, 14:18 عصر
از Crc چک و الگوریتم های هش استفاده کنید
از بین بردن این جور تکنیک ها خیلی راحته ، بهتره برید سراغ تکنیک های هش غیر متقارن


هیچ موقع سریال برنامه را تو یه متغییر قرار ندین ( سریال فیش میشه)

موافقم ولی تولید سریال واقعی و مقایسه اون با کد دریافتی جزو ناشیانه ترین کارهاست :اشتباه:


تو الگوریتم برنامه خود از فرمول های پیچیده ریاضی استفاده کنید

100 ٪‌ شکسته میشه ، این گونه روشها 5 سالی میشه که منسوخ شده ، فقط استفاده از شیوه های رمزنگاری RSA و پازل زمانی توصیه میشه.


تا جایی که می تونید به جای if از while استفاده کنید.(تجربه میگه)

واسه کراکر های حرفه ای بیشتر شبیه یه شوخیه.


از if های تو در تو استفاده کنید

در همه موارد موثر نیست


کد را طوری بنویسید که وقتی کرکر خواست پچ کنه سیستم شات داون بشه (تجربه میخواد)
بهش میگن بمب منطقی ، استفاده از این جور تکنیک های نباید تو یه جای برنامه باشه ، فقط هم به شات دان فکر نکنید ، کراکر میتونه با دستور Shutdown -a کل بمب رو خنثی کنه ، به فکر فرمت و از این جور حرفا باشید.


واسه کرکر با توابع Api مزاحمت ایجاد کنید . مثلا با Sleep و Blockinput و ...
استفاده از این جور توابع زیاد مزاحم کراکر نمیشه ، چون میتونه از بیخ لیست این توابع رو از Import Table حذف کنه.

........................................ از نقطه نظراتتون هم ممنونم.:تشویق:

koruir
سه شنبه 08 مرداد 1387, 15:56 عصر
موافقم ولی تولید سریال واقعی و مقایسه اون با کد دریافتی جزو ناشیانه ترین کارهاست
نيما جان خواهش ميکنم راه حل رو همينجا بگين تا همه استفاده ببرن؟
فکر کنم منظور شما اينه که به جاي اينکه سريال واقعي رو درست کنيم.(مثلا نام و ميل طرف رو Encode کنيم) و ببينيم که با سريال وارد شده يکي هست يا نه؟ بيايم و برعکس عمل کنيم و (سريال رو Decode کنيم) و ببينيم که با مثلا نام و ميل وارد شده يکي هست يا نه؟
به عبارت ساده تر سورس Encode تو برنامه نباشه؛ و از Decode استفاده بشه. درسته؟


استفاده از این جور توابع زیاد مزاحم کراکر نمیشه ، چون میتونه از بیخ لیست این توابع رو از Import Table حذف کنه.
منظورتون اينه که ميشه توابع API رو Enable/Disable کرد؟ لطفا توضيح بدين.
البته شیوه های رمزنگاری RSA و پازل زمانی هم نميدونم چيه!!!

debugger
سه شنبه 08 مرداد 1387, 17:41 عصر
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,.....

استفاده می کنن. که کار کرک را بسیار دشوار می کنن.

debugger
سه شنبه 08 مرداد 1387, 17:47 عصر
نيما جان خواهش ميکنم راه حل رو همينجا بگين تا همه استفاده ببرن؟
فکر کنم منظور شما اينه که به جاي اينکه سريال واقعي رو درست کنيم.(مثلا نام و ميل طرف رو Encode کنيم) و ببينيم که با سريال وارد شده يکي هست يا نه؟ بيايم و برعکس عمل کنيم و (سريال رو Decode کنيم) و ببينيم که با مثلا نام و ميل وارد شده يکي هست يا نه؟
به عبارت ساده تر سورس Encode تو برنامه نباشه؛ و از Decode استفاده بشه. درسته؟


منظورتون اينه که ميشه توابع API رو Enable/Disable کرد؟ لطفا توضيح بدين.
البته شیوه های رمزنگاری RSA و پازل زمانی هم نميدونم چيه!!!

دوست عزیز نمیشه که APi را enable , Disable کرد. این کار را با LordPe انجام میدن

این توابع را به کل حذف می کنن. همین. باید سررشته داشته باشی

در کل باید بگم که اینا همش مباحث شیرین Reversing هست که به این زودی نمیشه یاد بگیری. اصلا توضیح بدم میگی این چیه اون چیه ؟

در کل داشتم تو انجمن می گشتم که چشمم به این تاپیک خورد . دیگه حوصله کل کل ندارم.

Nima NT
سه شنبه 08 مرداد 1387, 19:08 عصر
جناب دیباگر زیاد به روتین های خودتون مطمئن نباشید و لطفا" از لحن مناسب تری استفاده کنید ، به قول شاعر پارسی گو ، سعدی :
گرفتم ز تو ناتوان تر بسی است از تو توانا تر هم آخر کسی است.

به نظره بنده بهتره یه سری به بخش امنیت نرم افزاری بزنید ، یا اینکه دنبال پست های جناب هادی دلفی ( همکار بنده در شرکت ایران نوین ) بگردین ، تا ببینید که کرک کردن برنامه های پک شده زیاد سخت نیست.
در مورد اینکه شما میگین توابع API رو نمیشه حذف کرد باید خدمتتون عرض کنم بنده برنامه ای رو برای خودم کرک کردم که از آوردن اسمش معذورم ( اگه خواستی بهت پیغام خصوصی میدم ) ، که این برنامه 20 تایمر داشت که به صورت Runtime تولید میشد ، وبا سرعت بالا وجود قفل رو چک میکرد اگر کد وجود نداشت برنامه رو خاتمه میداد ، من عوض اینکه از ایجاد 20 تایمر جلوگیری کنم اومدم و با SoftICE تابع مربوطه به ExitProcess رو از توابع Import شده حذف کردم ، حالا اگه این تایمر ها تونستن برنامه رو ببندن.
در ضمن تعداد کراکر های حرفه ای بر خلاف نظر شما خیلی هم کم نیستن.
اگه فقط بخوایم تو ایران دنبال این موضوع باشیم باید بگم با یه لشگر طرفیم.


چون من oep و crc32 پکر را تو تایمر و جاهای دیگه چک کردم. اگر فایل را انپک کنی برنامه متوجه میشه که انپک شده بعدش یه بلایی سرت میاره که دیگه نگی خنثی کرد و شوخی بود و موثر نیست و .....
این کار شما برای کراکر هایی مثل Magic و گروه هایی مثل Unreal یه شوخیه تا یه Crackme !

debugger
سه شنبه 08 مرداد 1387, 19:44 عصر
دوست عزیز
??????????
بقیه دوستان همشون دوستان صمیمی بنده هستن و منو هم میشناسن . من خودم برای هدف دیگه ای اومدم اینجا

یکمی از مباحث reversing میخوام فاصله بگیرم . بنا به دلایل شخصی

در ضمن اصلا شما استاد ما هستین . من فقط اومدم کمی راهنمایی کنم

از گناه ما بگذرید

خداحافظ

Nima NT
چهارشنبه 09 مرداد 1387, 01:03 صبح
من نگفتم من استاد کسی هستم ، من از لحاظ علمی قد این حرفا نیستم ، فقط خواستم بگم که دست کم گرفتن کراکر ها شیوه درستی برای نوشتن یه قفل مطمئن نیست ، همشه سعی کنیم حریف خودمون رو خیلی بالاتر از سطح واقعی تصور کنیم تا بتونیم لااقل به جای اینکه با یه برنامه متوسط به یه نبرد بریم با یه برنامه مطمئن و سخت کارزار کنیم ،..
امیدوارم همیشه موفق و موید باشید.

Nima NT
چهارشنبه 09 مرداد 1387, 23:44 عصر
فکر کنم اگه مدیر بخش اینجا رو ببینه درش رو تخته کنه ، بی زحمت Crackme های خودتون رو تو بخش امنیت نرم افزار بذارید ، این کار شما یه کمی خلاف قانون تالار می باشد ، واسه من فرقی نداره که مدیر تاپیک رو قفل کنه یا نه ولی چون دوست دارم بحث ادامه پیدا کنه اینو میگم ، بحث رو بیشتر واسه ارائه تکنیک ( از لحاظ نظری ) ادامه بدید نه از لحاظ ایجاد چالش.
متشکرم.

Mbt925
پنج شنبه 10 مرداد 1387, 11:30 صبح
تجربه ثابت کرده که این طور تاپیک ها آخرش یا حذف میشه یا قفل.

شما همتون یا همین حالا استادین یا در آینده استاد خواهید شد.
از بحث های الکی خودداری کنید و فقط به موضوع تاپیک بپردازید.

hasanain
پنج شنبه 10 مرداد 1387, 20:30 عصر
فایل خودتونو به صورت pcode کامپایل کنید
با توجه به اینکه گفتین: کرکش آسونتره، چرا توصیه میکنین؟ منظورم اینه که چرا از روش Natıve استفاده نکنیم؟
اگه ممکنه توضیح بفرمایین. ممنون

Nima NT
پنج شنبه 10 مرداد 1387, 22:30 عصر
شاید این سوال رو از من نپرسیدین ولی چون دارم از فزولی میمیرم دوست داشتم جواب بدم.
با اجازه جناب دیباگر.
علت اینه که کرک کردن این نوع از فایل های VB آسونه ولی هرکسی بلد نیست ، به عبارتی کل مطلب ساده هستش ولی به علت عدم فراگیر بودن میتونه به دوام برنامه شما در بازار تا حدی کمک کنه.

MFiRE
جمعه 11 مرداد 1387, 01:21 صبح
فقط هم به شات دان فکر نکنید ، کراکر میتونه با دستور 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;

چند وقت پيش (هنوز نرفته بودم دانشگاهه لعنتي) يه برنامه ي امنيتي نوشتم كه در جشنواره ي پروفسور حسابي مقام دوم در كليه رشته ها رو كسب كرد ، اين برنامه براي محافظت از فايلهايه اجرايي هست و از كپي برداريه اونا جلوگيري مي كنه !!

نمي گم برنامه غير قابله كركه‌!! ولي هر كس فكر مي كنه مي تونه كركش كنه ، پيغام خصوصي بده تا براش بفرستم.

روش هاي بالا ،‌ روشهاي خوبي هستند !
ولي روشهاي انتي كركينگ ،‌ رابطه ي مستقيم با ابتكاري كه خوده شما به خرج مي ديد ، داره !!
و هر چه از روشهاي ديگران استفاده كنيد ! برنامه ي شما زودتر كرك مي شه !!

debugger
شنبه 09 شهریور 1387, 08:49 صبح
شما بگو من 100000 تا تايمر مي زارم !! 100 بار در اجراي برنامه چك مي كنم !!!‌200 بار در وسط برنامه !!!! 300 بار هم در اخره برنامه !!!!!


دوست عزیز من گفتم روتین : نگفتم تایمر

روتین با تایمر فرق می کنه داداش

اشتباه از من بود که شرکت کردم . شما به بزرگی خودتان ببخشید

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

ماشااله تو جشنواره هم مقام گرفتی

MFiRE
سه شنبه 12 شهریور 1387, 19:59 عصر
دوست عزیز من گفتم روتین : نگفتم تایمر
منظوره منم تایمر نبود ! من گفتم 100000 داشته باشی ... روتین سر جایه خودشه

روتین با تایمر فرق می کنه داداش
شوخی می کنی !؟ فک می کردم یکیین:گیج:

در ضمن میگی بیا اینجا یاد بده و ..... من از کرک خیلی وقته زده شدم .و هیچی هم بلد نیستم شما خودت با این حرف های تخصصی که میزنی استادی پس خودت بیا اینجا یاد بده
وقتشو ندارم
:متفکر:

ماشااله تو جشنواره هم مقام گرفتی
اصلا قابلتونو نداره عزیزم ... :قلب:

در کل فرقی نمی کنه ! وقتی themida کرک شه ! دیگه وای به حاله من و شما :ناراحت:

متاسفانه یا خوشبختانه (به نظر من خوشبختانه) کرک همینجور در حال توسعه بین کاربران رایانه ها هست. علم خیلی جالبی هست!

باید برم ... بای

scarce
چهارشنبه 13 شهریور 1387, 13:36 عصر
منظوره منم تایمر نبود ! من گفتم 100000 داشته باشی ... روتین سر جایه خودشه

شوخی می کنی !؟ فک می کردم یکیین:گیج:

وقتشو ندارم
:متفکر:

اصلا قابلتونو نداره عزیزم ... :قلب:

در کل فرقی نمی کنه ! وقتی themida کرک شه ! دیگه وای به حاله من و شما :ناراحت:

متاسفانه یا خوشبختانه (به نظر من خوشبختانه) کرک همینجور در حال توسعه بین کاربران رایانه ها هست. علم خیلی جالبی هست!

باید برم ... بای

سلام
به نظر من هر چی قفل امنیتی برنامه ساده تر باشه بهتر ه و قابل کرک شدن نیست من چند روز پیش یک قفل نرم افزاری برای برنامه شرکت خودمون نوشتم که خیلی ساده هست اصلا از هیچ فرمولی استفاده نشده و بسیار بسیار ساده هست.

MFiRE
پنج شنبه 14 شهریور 1387, 17:44 عصر
یعنی چون ساده ست ، کرک نمی شه !؟

می شه بیشتر توضیح بدین ؟

scarce
شنبه 16 شهریور 1387, 08:49 صبح
یعنی چون ساده ست ، کرک نمی شه !؟

می شه بیشتر توضیح بدین ؟

منظورم اینه که در کل از فرمول های پیش پا افتاده استفاده کنید مثلا شماره سریال مادربرد

را بگیرید این باشه 5699984112 حالا مثلا شما یک دستور شرطی بزارید اگه چهارمین حرف

عدد 9 بود به جاش حرف T و عدد 3 قرار بده که در مجموع کل میشه 569T0984112 حالا یک

دستور شرطی دیگه میزاری . به نظر من اصلا نباید به این شکل عمل کنی که به عدد اول 2 تا

اظافه بشه به عدد هشتم 9 اظافه بشه و الی آخر کراکر ها اولین کاری که می کنند از این

روش استفاده می کنند و بعد ش از راه مختصات شهر و ساعت ساخت و از این جور حرف ها.

MFiRE
یک شنبه 17 شهریور 1387, 19:24 عصر
سلام
چند روزی نبودم :بوس:

ولی دوست عزیز بازهم قابله کرک شدنه !!

خب بازم فرقی نداره ! اخه شما می گی که از دستوراته شرطی استفاده کنیم !

کلیه دستورات شرطی قابله کرک شدنه ! هر چی می خواد باشه !!

اگه نشه براش Patch ساخت ، می شه براش لودر نوشت و خیلی کارهایه دیگه !

به هر حال شما از دستورات شرطی استفاده کردی ! و یک مقدار رو چک می کنی ، حالا این چک کردن با دستوراته شرطی انجام می شه.

یعنی شما می گی:
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
تمام شد رفت پی کارش (خداییش end if رو حال کردین ... جدیده:لبخند:)

حالا کرکر می گه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد

راستی اینم بگم که فرقی نداره که شما از کدوم روش استفاده کردی ! اون اولی که گفتین و دومی ، فرقی نداره !

البته قابله ذکره که این چیزایی که گفتم فقط در مورده برنامه هایی هست که یه سریال دریافت می کنند و مجوز ورود رو می دن !!

من نمی دونم چرا موقع افطار می یام میشینم سایته برنامه نویس رو نگاه می کنم !؟؟ شما می دونین !؟

اقا ما بریم افطار ... هر چند که دیر شده :لبخند::گیج:

xxxxx_xxxxx
دوشنبه 18 شهریور 1387, 01:22 صبح
دقیقا یادم نیست کی ولی یکی از دوستان امضاش این بود:



اگر می خواهید برنامه تان کرک نشود اصلاً برنامه ننویسید


فکر کنم این تاپیک هم آخرش به همین جمله ختم میشه.

این که نشد یکی یه چیزی میگه نفر بعدی حرف قبلی رو رد میکنه.
سوء تفاهم پیش نیاد منظورم این نیست که چرا هی ایده های هم رو نقض می کنید. منظورم اینه که آخرش چه باید کرد که برنامه کرک نشود؟

من هم فکر می کنم جلوگیری از کرک برنامه غیر ممکن باشه. ولی باز هم خودم تو برنامه هام سعی می کنم تا اونجا که می تونم حداقل دست کرکرهای مبتدی رو بسته نگه دارم.

هنوز هم منتظر ایده های دوستان برای جلوگیری از کرک شدن برنامه هستم، همینطور دلایل منطقی برای رد ایده ها.:چشمک:

scarce
دوشنبه 18 شهریور 1387, 11:12 صبح
یعنی شما می گی:
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده
تمام شد رفت پی کارش (خداییش end if رو حال کردین ... جدیده:لبخند:)

حالا کرکر می گه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد

دوست عزیز شما فکر کنم افطار تون دیر شده و روزه هم داشتی ضعف کردین. و اینها را همین جور الکی نوشتین رفتین افطار .
هیچ برنامه نویسی از این روش استفاده نمی کنه که شما استفاده کردین منظورم :
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده

اگه اینطوری بود هر کی می تونست کرک کنه. اینجوری ها هم که فکر می کنید نیست که کرکر بیاد بگه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد
ببین هیچ کراکری تا نقصی از برنامه پیدا نکنه و فرمولی نداشته باشه نمی تونه برنامه را کرک کنه.
[/quote]

koruir
سه شنبه 19 شهریور 1387, 00:13 صبح
ببخشيدها ولي چرا اينقدر بهونه ميگيريد؟ منظور MFiRE اين بود که براي رجيستر از هر چيزي که استفاده بشه؛ نهايتا بايد بايه دستور شرطي چک بشه. و کرکر هم مياد و دستور شرطي رو براي رد شدن از قفل نرم افزاري برعکس ميکنه. همين.


ببین هیچ کراکری تا نقصی از برنامه پیدا نکنه و فرمولی نداشته باشه نمی تونه برنامه را کرک کنهدر ضمن scarce جان؛ بزرگترين نقص همون استفاده از دستورات شرطي هست. که البته راهي به جز اين هم نيست. و فکر کنم دوستان بدونن که کرکر برنامه رو خط به خط اجرا ميکنه تا شرط مورد نظر رو پيدا کنه. البته نه در همه موارد.

تا اونجايي هم که من ميدونم دوستان به دو دليل ميان به فروم.
1.ياد گرفتن
2.ياد دادن

پس جايي براي کل کل نمي مونه.
البته در همين فروم؛ در قسمت امنیت در نرم افزار و برنامه نویسی ميتونين CrackMe هاي خودتون رو ارايه بدين تا اساتيد روش کار کنن. و بهتون قول ميدم که از کار کردن روي CrackMe هاي قوي استقبال کنند. اما پيشنهاد ميکنم که قبل از هر کاري اول قوانين اونجارو بخونين.

با آرزوي موفقيت براي همه ي دوستان.
دادار يار.
يا حق.

Nima NT
سه شنبه 19 شهریور 1387, 01:44 صبح
اگه اینطوری بود هر کی می تونست کرک کنه. اینجوری ها هم که فکر می کنید نیست که کرکر بیاد بگه :
اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد

متاسفانه یا خوشبختانه بر خلاف فرمایش شما دقیقا" همین طوره ، کراکر در بعضی موارد کاری نداره که فرمول چیه و... فقط به برنامه میگه اجرا شو .... همین.

Nima NT
سه شنبه 19 شهریور 1387, 01:55 صبح
درضمن دوست عزیز ، جناب " Scarce" ، بنده قبلا" کراکر بودم ولی الان ترک کردم ، این طوری که شما درباره قفل های نرم افزاری صحبت کردید گمان میکنم سر رشته ای از کرک نداشته باشید یا لااقل زیاد سراغ این مقوله نرفته اید ، به جز در موارد قفل های سخت افزاری کرک کردن دیگر برنامه ها زیاد هم سخت نیست ، شما میتونید این مطلب رو تو تالار امنیت برنامه نویسی جستجو کنید ، جناب بردیا از اساتید کرک ایران تو این تالار فعالیت دارن و بنده با نوشتن برنامه و کرک شدن از جانب ایشون سطح پیشرفت دریافت میکردم ، خودتون میتونید به پست ها دقت کنید ، بنده از سطح 1 از 10 شروع کردم و الان به سطح 6 از 10 رسیدم و در این فاصله ابدا" امنیت رو ساده نگرفتم و تا میتونستم قفل رو پیچیده میکردم ، حالا بازم شما میگید بهتره بیایم و قفل های نرم افزاری ساده بنویسیم.‌؟!!!!!

و در مورد صحبت قبلی شما :


اگر سریاله مادربورد = هر چی بود بود
وارد شو
تمام شد

برنامه هایی که با عنوان قفل نرم افزاری نوشته میشن نهایتا" میان یه جا صحت یه عملی رو بررسی میکنن این در زبان اسمبلی یعنی JNZ ، کراکر ها برنامه رو در دیباگر لود میکنن و میان در همون قسمت به جای کلمه JNZ ، نقیض اون رو یعنی JE رو وارد میکنن بدین ترتیب اگه شما کد صحیح رو به برنامه بدین برنامه خطا میده و میگه کد اشتباهه و اگه کد غلط وارد بشه برنامه با تشریفات اضافی فعال شدن قفل رو اعلام میکنه.
خودتون یه برنامه با VB یا هر زبان دیگه بنویسید و امتحان کنید............. !

scarce
چهارشنبه 20 شهریور 1387, 12:46 عصر
اگه اینطوره ما تسلیم شدیم. ولی پیشنهاد جالبی برنامه خودمو میدم کرک کنن شاید شما درست گفته باشید.

MFiRE
جمعه 22 شهریور 1387, 17:34 عصر
یه چند روزی نبودم ... ببین چه خبر شده ... داغونمون کردن !


دقیقا یادم نیست کی ولی یکی از دوستان امضاش این بود:

نقل قول:اگر می خواهید برنامه تان کرک نشود اصلاً برنامه ننویسید

فکر کنم این تاپیک هم آخرش به همین جمله ختم میشه.

این که نشد یکی یه چیزی میگه نفر بعدی حرف قبلی رو رد میکنه.
سوء تفاهم پیش نیاد منظورم این نیست که چرا هی ایده های هم رو نقض می کنید. منظورم اینه که آخرش چه باید کرد که برنامه کرک نشود؟

من هم فکر می کنم جلوگیری از کرک برنامه غیر ممکن باشه. ولی باز هم خودم تو برنامه هام سعی می کنم تا اونجا که می تونم حداقل دست کرکرهای مبتدی رو بسته نگه دارم.

هنوز هم منتظر ایده های دوستان برای جلوگیری از کرک شدن برنامه هستم، همینطور دلایل منطقی برای رد ایده ها.
:عصبانی:
من ایده ای ندیدم !
ببینید من چیزی رو نقض نکردم !
فقط منظورم این بود :

سادگی برنامه = کرک 100% تضمینی :گیج:!!!!
:عصبانی:



دوست عزیز شما فکر کنم افطار تون دیر شده و روزه هم داشتی ضعف کردین. و اینها را همین جور الکی نوشتین رفتین افطار .
هیچ برنامه نویسی از این روش استفاده نمی کنه که شما استفاده کردین منظورم :
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده

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

:عصبانی:
همینجور نوشتی رفتی یعنی چی !؟

من نگفتم کسی می یاد یه شرطه اینجوری می زاره ! منظورم این بود که کلیه شرط هایی که شما می شناسی به این صورت عمل می کنه (یا یه چیزی شبیه به این) !

پس در هر صورت چه یه دونه شرط چه صد دونه شرط بزاری بازم قابله کرک شدنه :عصبانی++:

راستی در مورد نقص برنامه و فرمول ! داخله دنیایه کرک هیچ نقصی پنهان نمی مونه ... بستگی به کرکرش داره ! ولی به هر حال قابل پیدا شدنه ! و وقتی هم پیدا شد برای مثال اگه چیزی رو چک می کرد ، بازم بر می گشت به همین :
اگر سریاله مادربورد = XXXXXXXX بود
وارد شو
اگه نبود
پیغام خطا بده

:تشویق:


ببخشيدها ولي چرا اينقدر بهونه ميگيريد؟ منظور MFiRE اين بود که براي رجيستر از هر چيزي که استفاده بشه؛ نهايتا بايد بايه دستور شرطي چک بشه. و کرکر هم مياد و دستور شرطي رو براي رد شدن از قفل نرم افزاري برعکس ميکنه. همين.

100 درصد !
ببینم دوستانی که اعتراض کردید ! شما دستوره شرطی می شناسید که با این چیزی که من نوشتم فرق داشته باشه ! مثلا :

اگر سریاله مادربورد باقالی بود کشمشش کن و به کاره کرکر اهمیت نده و بی خیال در کل:لبخند:
یا
اگر سریال مادربورد <=> XXXXXX بود فلان کار و انجام بده !

اصلا منطق نداره ! پس یا مثله اونیه که مثال زدم یا شبیه اونه !


متاسفانه یا خوشبختانه بر خلاف فرمایش شما دقیقا" همین طوره ، کراکر در بعضی موارد کاری نداره که فرمول چیه و... فقط به برنامه میگه اجرا شو .... همین.

قربونه آدمه چیز فهم :تشویق:
روش های زیادی وجود داره که برنامه ها رو کرک کرد !
یعنی به عبارتی می شه گفت از در نشد از پنجره !


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

شاید نه حتما :لبخندساده:

ببخشید یه خورده تند بود !
:بوس:

koruir
جمعه 22 شهریور 1387, 18:51 عصر
اگر می خواهید برنامه تان کرک نشود اصلاً برنامه ننویسید
آقا این جمله بالا Bug داره:لبخند:. من یه روش بهتر سراغ دارم.
فرض کنید که شما یه برنامه خوب مینویسید. و کلی قفل روش میزارید.
منه کاربر بعد از کلی تو کف بودن برا برنامه:کف: میام و یه سرچی میکنم برای کرک.
میبینم که کرکر عزیز برنامه رو کرک کرده و رایگان در اختیار من گذاشته.

نتیجه: من با حرص و طمع باور نکردنی:شیطان: کرک رو دانلود میکنم. و بعد از استفاده از برنامه, به ریش برنامه نویس میخندم:قهقهه:.

اما حالت دوم:
اینو من خودم توی یه برنامه خوب خارجی (Avant Browser) دیدم.
برنامه نویس میاد و میگه آقا برنامه مجانی. ولی خداییش وجدان داشته باشید. این شماره حساب من. اگه برنامه به دردتون خورد من رو هم فراموش نکنید.

نتیجه: هنوز هیچ قفل نرم افزاری نوشته نشده که به اندازه معرفت کاربر قوی باشه.

MFiRE
جمعه 22 شهریور 1387, 22:05 عصر
سلام
جالب بود (:


نتیجه: من با حرص و طمع باور نکردنی کرک رو دانلود میکنم. و بعد از استفاده از برنامه, به ریش برنامه نویس میخندم
اگه ریش نداشت چی !؟


داشتيد، کمکهاي شما براي من قابل قبول و تحسين برانگيز مي باشد

.مي توانيد هر مقدار به مرورگر «اونت» کمک کنيد Paypal حمايت شما مرورگر «اونت» را زنده و قدرتمند نگه مي دارد. اگر قصد کمک داريد دکمه کمک مالي را انتخاب کنيد. شما توسط

.تمام فرمهاي کمک امنيت بالا دارند

!خدا نگهدار شما

Anderson

اینم متنه کمک مالیه این برنامه !

ولی خوب اینم یه روشه دیگه !

راستی نظرتون در مورد این کد چیه :

اگر سریال مادربورد = معرفت بود
برنامه اجرا شه
:لبخند:

scarce
شنبه 23 شهریور 1387, 09:44 صبح
یه چند روزی نبودم ... ببین چه خبر شده ... داغونمون کردن !

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

شاید نه حتما :لبخندساده:

ببخشید یه خورده تند بود !
:بوس:
آره یه خورده چه عرض کنم یه خورده تند بود اینجوری باید می نوشتی .

شما بهم پیشنهاد دادید که برنامه بدم دوستان کرک کنن دادم ولی بر سرشون چه بلایی اومد؟ :متفکر:. کرکر درسته از دستورهای شرطی عبور می کنه.! اما از بعد دستور شرطی نمی تونند به همین راحتی بگذرند :گیج: یا اگه بگذرند یا سیستمشون به باد می ره یا برنامه به طور غیر عادی اجرا میشه که فکر کنم کل سیستم خراب نمیشه بعضی قطعات :لبخند: البته بستگی به اهمیت برنامه ها داره از نظر پولی !!. حالا اگه باور نداری قفل نرم افزاری که نوشتم می زارم تو این بخش شما هم سر و کله بزنید با این برنامه.

VB.SOS
شنبه 23 شهریور 1387, 13:14 عصر
دوستان يكبار ديگه بحث هاي اول تا اين صفحه رو بخونيد........ ايا واقعا اين بحث هاي مشكل كسايي كه ميخوان نرم افزارشون به راحتي كرك نشه رو حل ميكنه؟
بيايد باهم همكاري كنيم و كسايي كه در اين بحث تبحر دارن بيان و رو هدف زير كار كنن كه فكر كنم واقعگرايي تر باشه:

"چگونه امنيت نرم افزارهايمان را افزايش دهيم تا به آساني كرك نشوند؟"
به اميد نزديك شدن به اين هدف

MFiRE
شنبه 23 شهریور 1387, 13:43 عصر
خب این چه کاریه !؟

اخه تویه کدوم قفل دیدی برنامه نویس بیاد یه قطعه رو بسوزونه !؟

هیچ شرکتی حاضر نیست برنامه هاشو اینجور پروتکت کنه !!!

عزیز جان شما یه خورده در مورد کرک تحقیق کن . ببین چطور کرک می کنن !
وقتی کرکر If رو پیدا کنه ! عملیاته بعدشم پیگیری می کنه ببینه چه خبره !
این که می شه همون جریانه سریاله مادربورد و باقالی :لبخند:

koruir
شنبه 23 شهریور 1387, 16:02 عصر
اینجا برای کل کل نیست. خواهش میکنم اگه چیزی بلدید به بقیه هم یاد بدید. وگرنه لطف کنین کل کل ممنوع


اما از بعد دستور شرطی نمی تونند به همین راحتی بگذرند یا اگه بگذرند یا سیستمشون به باد می ره یا برنامه به طور غیر عادی اجرا میشه که فکر کنم کل سیستم خراب نمیشه بعضی قطعات البته بستگی به اهمیت برنامه ها داره از نظر پولی !!.
شرمنده ولی اینی که میگم حقیقته.
من برنامه ای گرون قیمت تر از ویندوز، 3DMax ؛ Maya و ACad سراغ ندارم. اما با این حال هیچ یک از اونها از بمب منطقی برای آسیب رسوندن به سخت افزار استفاده نمیکنن.
و اما استفاده از بمب منطقی در CrackMe چه معنی داره؟
معنیش اینه که برنامه من نفوذ پذیره, بیاید و منو کرک کنید؛ حالا که کرک شدم ازتون انتقام میگیرم. هاردت Format شد. Ram سیستمت سوخت. و . . .
اگه شما به کرک نشدن برنامتون ایمان دارین؛ پس چرا خرابکاری بعد از کرک شدن؟



چگونه امنيت نرم افزارهايمان را افزايش دهيم تا به آساني كرك نشوند؟
دقیقا. ما میخوایم برنامه هامون به راحتی و توسط هر تازه کاری کرک نشه. (جمله تکراری بود:لبخند:)


وقتی کرکر If رو پیدا کنه ! عملیاته بعدشم پیگیری می کنه ببینه چه خبره !
دقیقا درسته. وقتی کرکر میتونه با Serial Fishing سریال مخصوص خودش رو از برنامه بگیره؛ به نظر شما نمیتونه بفهمه که بعد از فلان دستور، چه اتفاقی میتونه بیفته؟
تازه میشه قبل هر کاری API ها رو شناسایی کرد. مثلا BlockInput و غیره.


ادمین:
تجربه ثابت کرده که این طور تاپیک ها آخرش یا حذف میشه یا قفل.

دوستان به هر اندازه که این کل کل ها ادامه پیدا کنه؛ ما ها بیشتر از تجربیات هم دور میمونیم.
البته زوری نیست؛ شاید بخواید Private بمونه و دوست ندارین که Public کنین تجربه هاتون رو.
پس خواهش میکنم با بحث های الکی و بی مورد هم تاپیک رو متشنج نکینید و هم دلیلی نباشید برای بسته شدن تاپیک.

xxxxx_xxxxx
شنبه 23 شهریور 1387, 18:56 عصر
متن پنجره about نرم افزار رهیاب همراه محصول سایبیران کیش (نقشه تهران 87)


نسخه 5/1
تاریخ ساخت 1/11/86
تاریخ نقشه 87

از آنجا که بعلت کپی برداری، تولید کننده منصرف از عرضه نسخه جدیدتر شد، ح.م.د آن را به روز نمود، امید است مردم فهیم از کرک کردن که همان هم نامی با مواد مخدر شایسته اش است پرهیز کنند.

آخرشم کرک شد.

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

دوستان بهتر نیست این تاپیک منتقل بشه به بخش امنیت نرم افزار یا حداقل از یکی از اساتید کرک تو اون بخشو دعوت کنیم اینجا تا حداقل یه کم این تاپیک مفید واقع بشه و پست های اضافیش حذف شه که این هم یکی از اون هاست؟
به صفحه ششم رسیدیم اما هنوز بحث سره مساوی و نامساوی گذاشتن برای شرط هاست.

r0ot$harp
شنبه 23 شهریور 1387, 20:06 عصر
متن پنجره about نرم افزار رهیاب همراه محصول سایبیران کیش (نقشه تهران 87)

آخرشم کرک شد.

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

دوستان بهتر نیست این تاپیک منتقل بشه به بخش امنیت نرم افزار یا حداقل از یکی از اساتید کرک تو اون بخشو دعوت کنیم اینجا تا حداقل یه کم این تاپیک مفید واقع بشه و پست های اضافیش حذف شه که این هم یکی از اون هاست؟
به صفحه ششم رسیدیم اما هنوز بحث سره مساوی و نامساوی گذاشتن برای شرط هاست.

منم موافقم چون اینجا شده تاپیکی که واسه کل بازی بین بچه ها .

بهتره شما دوستان عزیز در مورد روش ها حرف بزنید .


باتشکر احسان

kuh_nur
یک شنبه 24 شهریور 1387, 00:53 صبح
سلام دوستان
یه چند وقتیه که یه فکر مغزمو به مرحله هنگ رسونده
و اون اینکه برنامه های ما گرون تر از نرم افزار های شرکت ماکروسافت - اتودسک -ادوبی -کورل و . . . . که نیست بعدشم شما خودتون برای استفاده از فتوشاپ اونو کرک می کنین یا بطور غیر قانونی از ویندوز چند دلاری مایکروسافت استفاده می کنین ولی دارین جوش ساخت برنامه نفوذ ناپذیر و استوار رو می زنین
بنظر شما اگه اینکار ( جلوگیری از نفوذ به برنامه ) قابل اجرا بود مایکروسافت بیکار می نشست
خودتون بگین

r0ot$harp
یک شنبه 24 شهریور 1387, 01:44 صبح
سلام دوستان
یه چند وقتیه که یه فکر مغزمو به مرحله هنگ رسونده
و اون اینکه برنامه های ما گرون تر از نرم افزار های شرکت ماکروسافت - اتودسک -ادوبی -کورل و . . . . که نیست بعدشم شما خودتون برای استفاده از فتوشاپ اونو کرک می کنین یا بطور غیر قانونی از ویندوز چند دلاری مایکروسافت استفاده می کنین ولی دارین جوش ساخت برنامه نفوذ ناپذیر و استوار رو می زنین
بنظر شما اگه اینکار ( جلوگیری از نفوذ به برنامه ) قابل اجرا بود مایکروسافت بیکار می نشست
خودتون بگین

حرف قشنگ و جالبی هست و درست .
به نظره من فقط داریم با این کارا سره خودمون رو گول می زنیم و اینکه اگه قراره به دونه امنیت برنامه 100 تا فروش بره با این کار باعث می شیم 300 تا فروش بره .


باتشکر احسان

Nima NT
یک شنبه 24 شهریور 1387, 14:51 عصر
استفاده از قفل های نرم افزاری همواره کارائی و عمر نرم افزار رو پائین میاره ( درس مهندسی نرم افزار ) ، هیچ وقت شرکت مایکروسافت با همچین کار هایی اعتبار خودش رو زیر سوال نمیبره.
در ضمن در آمریکا فرهنگ استفاده از برنامه های ارجینال جا افتاده و همین برای این شرکت بس.

MFiRE
یک شنبه 24 شهریور 1387, 15:58 عصر
سلام
تا اونجایی که می دونم روش هایه بسیاری تویه تاپیکه "محافظت از برنامه فايل اجرايي (براي استفاده عموم)" اومده !


http://barnamenevis.org/forum/showthread.php?t=104440

اگه بتونین در پروژه هاتون استفاده کنید ، می تونین درجه امنیت برنامه هاتون رو بالا ببرین !
تاپیک پر محتوایی هست !
کد ها به زبانه دلفی و اسمبلی(دلفی) هست ! ولی می تونین از روشهاش استفاده کنین !
از همه به خاطر کل کل عذر می خوام.

kuh_nur
یک شنبه 24 شهریور 1387, 21:56 عصر
پس چطوره من و شما دوستان عزیز برنامه نویس (http://barnamenevis.org) و کراکر و هکر خدمون شروع کنیم و حق و حقوق کسی رو پایمال نکنیم ساده تر بگم تا یک زره هم که شده COPY RIGHT رو رعایت کنیم

scarce
دوشنبه 25 شهریور 1387, 08:52 صبح
MFiRE عزیز لطفا در مورد کرک کردن برنامه توضیح بدید؟ و چگونه برنامه های ما کرک می شوند یا بهتر بگم از چه برنامه کد هایی باید استفاده کرد با تشکر.

ab.mahmoodi
دوشنبه 25 شهریور 1387, 10:31 صبح
دوستان سلام
متاسفانه ما توی کشوری زندگی میکنیم که بازار کرک نرم افزار خیلی داغه جالب اینجاست که برخی از کرکر ها به این موضوع معتاد شدن و سرشون برای کرک کردن نرم افزارها درد میکنه در صورتیکه توی کشورهایی که مساله کپی رایت براشون حل شده است و فرهنگ استفاده از نرم افزار براشون جا افتاده همیشه از نرم افزارهای اصلی استفاده میکنند. بنابراین تولید کننده نرم افزار دغدغه این رو نداره که بره سراغ تکنیک های جلوگیری از کرک شدن و دیباگ شدن نرم افزار چون خیالش راحته. شاید خیلی از این روش هایی که ما برای جلوگیری از کرک استفاده میکنیم اونها به گوششون هم نرسیده باشه. اما کرک نشدن یک نرم افزار غیر ممکن است یعنی شما هر روشی را برای کرک نرم افزارتون استفاده کنید باز هم شخصی پیدا میشه که اون رو دور بزنه . تنها میتونید کار کرکر رو سخت تر کنید یعنی با خسته شدن کرکر میشه اون رو ازمیدان به در کرد. همیشه ساختن چیزی از خراب کردن اون بسیار سخت تره بنابراین اگر بخواهید روی روش های جلوگیری از کرک در نرم افزار کار کنید راه سخت و طولانی پیش رو دارید. برای این منظور پیشنهاد هایی دارم:
1- سعی کنید از قفل سخت افزاری استفاده کنید (اگر بتوانید قفلی استفاده کنید که قسمتی از نرم افزار شما مثلا یک کلاس را در حافظه آن قرار دهید بسیار مفید است)
2- استفاده از یک پروتکتور خوب
3- سعی کنید از روش های انتی دیباگ و انتی تریس در کد نرم افزارتون استفاده نمایید زیرا پروتکتور ها هر چه قدر هم قدرتمند باشند روی فایل اجرایی نرم افزار شما بسیار محدود عمل میکنند ولی شما در سورس کد دستتان باز تر است و در جاهای مختلف میتوانید از تریک های مختلفی استفاده نمایید.
4- اگر میخواهید از قفل سخت افزاری یا نرم افزاری استفاده نمایید سعی کنید نرم افزار شما حتما به یک چیزی در داده های قفل وابسته باشد و بدون آن در اجرا دچار اختلال شوند.
5- توابع امنیتی در نرم افزارتان را مدام چک کنید. کرکر برای اینکه نرم افزار شمارا کرک کند مجبور است تغییراتی را در فایل اجرایی بوجود آورد شما با تشخیص این تغییرات در حین اجرا میتوانید در اجرای برنامه اختلال بوجود آورید.
....

xxxxx_xxxxx
دوشنبه 25 شهریور 1387, 12:25 عصر
آخرشم نه این تاپیک منتقل شد به بخش امنیت نه یک نفر از اونجا به اینجا سر زد.



2- استفاده از یک پروتکتور خوب


دوستان اونایی که (آقا نیما هم شامل میشه) نرم افزارهای packer دارند لطفا، خواهشاً اینجا قرار بدید تا بقیه هم استفاده کنند.
حتما باید درخواست بشه؟؟؟
این همه پست اضافی، ده تا توش مفید نیست. در صورتی که خیلی ها می تونند مفیدش کنند.

kuh_nur
دوشنبه 25 شهریور 1387, 12:51 عصر
دوستان سلام

5- توابع امنیتی در نرم افزارتان را مدام چک کنید. کرکر برای اینکه نرم افزار شمارا کرک کند مجبور است تغییراتی را در فایل اجرایی بوجود آورد شما با تشخیص این تغییرات در حین اجرا میتوانید در اجرای برنامه اختلال بوجود آورید.
....
با این کار بشدت از کارایی برنامه می کاهید و سرعت برنامه رو کند می کنید و در ضمن منابع زیادی از سیستم مثل CPU و Ram اشغال میشه که باعث اذیت شدن کاربر برنامه می شه
فکر کنم راه دیگه ای باید پیدا کنیم

ab.mahmoodi
دوشنبه 25 شهریور 1387, 13:46 عصر
دوستان اونایی که (آقا نیما هم شامل میشه) نرم افزارهای packer دارند لطفا، خواهشاً اینجا قرار بدید تا بقیه هم استفاده کنند.
حتما باید درخواست بشه؟؟؟


اگر شما دنبال یک پروتکتور هستید من میتونم themida رو براتون میل کنم اما هیچ تضمینی وجود نداره.
اون دوست عزیزی که گفت از کارایی برنامه کاسته میشه باید بگم اگر در برنامه نویسی مهارت داشته باشی با استفاده از ترد هیچ مشکلی بوجود نمیاد هر چند چک کردن سی ار سی یک متد اصلا منبعی از سیستم مصرف نمیکنه.

Nima NT
سه شنبه 26 شهریور 1387, 13:22 عصر
اگر منظورتون اعلام نام پروتکتور هست ، مشکلی نیست ، ولی در مورد لینک دانلود باید عرض کنم که قرار دادن هر گونه لینک نرم افزار کرک شده چه ایرانی و چه خارجی نهایتا" با قفل شدن تاپیک همراه خواهد بود.

------------------------------------

در مورد پروتکتور ها ، بر خلاف عقیده خیلی از کراکر های بزرگ استفاده از ترکیب پکر ها میتونه خیلی موثر باشه ، بنده این حرفم رو تو تالار امنیت نرم افزار ثابت کردم ( یکی از اون اساتید fh_prg بود ).
استفاده از ترکیب پکر ها باعث میشه کراکر با نگاه کردن به MUP آنپک مثلا" مول باکس دقیقا" نتونه رفتار ها رو تکرار و در نهایت فایل رو آنپک کنه ، پکر ها با تداخلی که با هم پیدا میکنن معمولا" بعضی از روتین ها شون تخریب و یا تضعیف میشه و از طرفی هم برخی از همین روتین ها به شدت قوی میشه.
برای مثال توجه کنید‌:
من در تالار امنیت برنامه نویسی اومدم که unpackme ارائه دادم ، از ترکیب پکر ها استفاده کرده بودم از Exe Cryptor و Molebox ، فکر میکنید سطح هر کدوم از اینها به صورت جداگانه چقدره ؟
بهتون میگم : Execryptor = 3/10 و Molebox = 1/10 !!!!!
من با ترکیب این دو پکر اومدم و به سطح 6/10 رسیدم ، این رو من نمیگم ، کسی که آنپک کرد گفت .
پیدا کرده این فرمول ها از 3 راه موجوده ، استفاده از تجربه دیگران ، سعی و خطا ، مطالعه دقیق عملکرد پکر ها و ابتکار.
فکر کنم جناب XXXXX_XXXXX راضی شدن.‌!

Nima NT
سه شنبه 26 شهریور 1387, 13:37 عصر
این به عنوان اینکه دیگه جای گله گذاری نمونه.
فایل ضمیمه حاوی سورس کد یه پکر هست که به صورت اپن سورس منتشر شده ، چون این فروم ربطی به دلفی نداره و ممکنه برای یه عده مشکل ساز بشه در مورد کد یه کمی توضیح میدم ، این برنامه میاد فایل شما رو XOR میکنه و در ریسورس خودش ذخیره میکنه ، بعد با یه راه انداز ( Stub ) ، میاد برنامه شما رو مستقیما" مینویسه رو رم ( کاملا " با برنامه های VB هم سازگاره ) ، شما میتونی از این تکنیک برای بالا بردن امنیت نسبی برنامه استفاده کنید ، چون این طوری کسی به فایل اصلی برنامه شما دسترسی نداره ، البته لازم به ذکر هم هست که کرک کردن این پکر کار کراکر های متوسط هست ، تازه کار ها هم بعضی وقت ها میتونن کرک کنن.:لبخند:
بهتره یه سری تغییرات تو سرس برنامه بدین . ( برای خودتون میگم )
وقت کردم فیلم آموزشی کرک کردن این پکر رو هم می ذارم تا همه بهره ببرن.
امیدوارم که راضی شده باشید.
بیاین از این به بعد مسائل اجتماعی و فرهنگی رو بی خیال شیم و فقط یا تکنیک ارائه کنیم یا سورس ، اگه کسی هم با گفته کسی مخالف بود ، خواهشا" با ارائه مستندات و یا لینک حرف خودش رو ثابت کنه ، نه با توهین و کل کل ..:عصبانی:
امیدوارم که شاهد تغییرات اساسی باشیم ، جای هیچ حرفی هم نذاشتم چون اول از خودم شروع کردم و عالم بی عمل نشدم.

Nima NT
سه شنبه 26 شهریور 1387, 13:41 عصر
اینم یه سورس در مورد تکنیک Stolen Code ، خوشبختانه به زبان VB هست و گوارای وجود.
لزومی به توضیح نداره چون اینجا همه vb کار هستن و از سورس همه چیز رو متوجه میشن.
این تکنیک میتونه خیلی موثر باشه !!! واقعا" میگم.:متفکر:
این کد توسط جناب Bardia_dst ارائه شده.

hossien
دوشنبه 04 آذر 1387, 10:19 صبح
سلام
نیما جان اگر میشود در مورد روشهای مقابله با دامپ کردن برنامه توضیح بدین
ممنونم

xxxxx_xxxxx
جمعه 29 آذر 1387, 08:02 صبح
آقا نيما بابت راهنمايي ها و برنامه هايي كه داديد ممنونم. فقط در مورد برنامه Stolen Code SRC اگه ممكنه يه خورده بيشتر توضيح بديد. چيزهايي كه من ازش فهميدم ايناهاست:

1- اين برنامه مياد و يه برنامه ديگه كه با ++Visual C نوشته شده رو اجرا مي كنه.
2- اون برنامه اي كه با++C نوشته شده همون فايل lock.dat هستش.
3- فايل lock.dat در واقع يه فايل كامپايل شده هست كه پسوند اصليش exe هست.
4- وقتي پسوند رو تغيير ميديم به exe و اجراش مي كنيم هيچ چيزي مشاهده نمي كنيم چون:
5- با توجه به سورس vb پروسه اون برنامه يه چيزي كم داره كه تو VB اونو بهش اضافه مي كنه. يعني درواقع يه تغييراتي تو پردازشش به وجود مياره.
6- اون برنامه مهم نيست كه چي هستش چون هدف يادگيري اين روش است ولي برنامه يه AntiSpy هست كه همونطور كه گفتم با C++ نوشته شده.

پس در واقع برنامه نوشته شده (AntiSpy) براي اجرا شدن نيازمند يه برنامه ديگه هست (همين سورس vb).
و بعد از اجرا مي بايست يه تغييراتي تو پروسه اون انجام بشه كه توسط اين دستور اين كار صورت ميگيره:



BufferTXT = Chr(&H55) & Chr(&H8B) & Chr(&HEC) & Chr(&H6A)
lngReply = WriteProcessMemory(lngProcess, &H4112DA, BufferTXT, Len(BufferTXT), 0&)

خب. حالا اگه امكان داره در مورد اين دو خط توضيحاتي بديد. مخصوصاً خط اول. و اين كه ما چه طور ميتونيم برنامه مونو اينطوري بسازيم.

تشكر

saeedsmk
دوشنبه 19 بهمن 1388, 15:38 عصر
سلام
خوب هستيد
كار اين اقاي برديا چقدر به كار من نزديك بوده !!!! Bardia_dst منظورم هست
http://forum.persiantools.com/showpost.p...stcount=48
و
http://forum.persiantools.com/t20871.html
دقيقا يك كاره بد نيست دوستان برنامه نويس كد رو كه بر ميدارن سورسشم بگن از كجا بر داشتن
به اميد ديدار

REZADG
دوشنبه 19 بهمن 1388, 22:29 عصر
دوستان منم به نوبه ی خودم یه چیزایی بنویسم
دوستمون راست میگن منم توی کرک سر شاخه دارم ولی نه به زیادی ایشون کرک در اصل همین شرط هاست برای این که پیدا کردن این شرط درست یا نادرست بودن شماره سریال سخت باشه سعی کنید نام فرم و ابزاری که در فرم رجیستری استفاده میکنید فارسی باشه بدین صورت کرکر باید بشینه کل کد های برنامه تون رو به فارسی ترجمه کنه بعد کرک کنه چون فارسی که مینویسید در HeX Edit و ابزاری مثل اون به صورت هگز نشون داده میشه و باید ترجمه بشه او کی

Securebit
سه شنبه 20 بهمن 1388, 17:03 عصر
بله همانطور که آقا سعید فرمودند این سورس متعلق به ایشان هست که چند سال پیش از سایت Persiantools دانلود کردم یک روز که تب Stolen Bytes داغ بود نیما جان از من درخواست یک نمونه کد ساده برای این تکنیک کردنند من هم این سورس را به ایشون دادم و فکر کردنند که این سورس را بنده نوشته ام در صورتی که من اصلا VB کار نیستم این سورس در اصل نه یک Stolen Bytes که فقط یک لودر ساده است که در امنیت نرم افزار جایی ندارد و برای اینکه آقا سعید هم دلگیر نباشند از نیما جان خواهش میکنم این سورس را به نام آقا سعید ثبت کنند.

Securebit
سه شنبه 20 بهمن 1388, 17:35 عصر
اطلاعات کامل برای این تکنیک.

http://esfahanvb.blogfa.com/post-2.aspx

Mr'Jamshidy
سه شنبه 20 بهمن 1388, 20:46 عصر
حالا که بحث داغه منم میام وسط :)

من دارم روی یک برنامه کار میکنم که کرکش رو سخت کنم به شما هم میگم که اگر خواستید روش کار کنید

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

در مرحله دوم شما باید از تکنیک Callback استفاده کنید، این تکنیک 2 تا پروژه که بدست شما نوشته شده رو بهم مرتبط میکنه یا میتونید از تکنیک Win Socket استفاده کنید که پیشنهاد نمیشه و با یک WPE Pro بسادگی مقادیری که از طریق شبکه یا همون Socket Programming جا به جا میشه رو اسنیف میکنه و تغییر میده پس همون کال بک خیلی بهتره

حالا یک پروژه دیگه هم میسازید برای لایسنس که این پروژه تمام کارها رو انجام بده (توجه داشته باشید که هیچ یک از کد های مربوط به لایسنس نباید داخل برنامه اصلی نوشته بشه حتی کد های مربوط به محدود کردن یا بستن برنامه)

فقط و فقط داخل برنامه اصلی یک فرم طراحی کنید که کد لایسنس رو بگیره و به برنامه مربوطه منتقل کنه که تکنیک کال بک این کار رو براتون انجام میده

این مسأله هم باید حتما رعایت بشه که برنامه تون (برنامه مربوط به لایسنس) تحت هیچ شرایتی نباید خودشو نشون بده چون اگر این اتفاق بیوفته برنامه مربوطه هندلش لو میره و با استفاده از هندلش آدرسش بدست میاد و وقتی که آدرسش بدست میاد خوب دیگه کرک کردنش سادس :)

همین رو بقیه مباحسش خودتون کار کنید

در رابطه با مبحث کال بک هم سورس زیر رو دانلود کنید و ازش استفاده کنید و اگر خوشتون اومد میتونید از DLL مربوطه که ضمیمه سورس هست استفاده کنید

امید وارم مطالبی که گفتم مفید واقع بشه

اگر هم خوشتون اومد http://barnamenevis.org/forum/images/buttons/post_thanks.gif یادتون نره


توضیحات مربوط به دی.ال.ال Callback


This is a universal Callback DLL which is useful for data transfer between VB apps. The "callback.dll" makes it possible to transfer any data between VB Apps without the need of subclassing. It may also serve as a receiver for callbacks from Windows.
-------
یا حق

Nima NT
جمعه 23 بهمن 1388, 03:44 صبح
با سلام
همون طوری که دوست و استاد گرامی Strong Byte عنوان کردن ؛ بنده سورس رو از ایشون گرفتم و با توجه به اینکه سورس رو از ایشون گرفتم فکر کردم که خودشون این برنامه رو نوشتن ولی بعدها متوجه این موضوع شدم چون جناب Strong Byte همون طوری هم که خودشون عنوان کردن VB کار نیستن , با توجه به اینکه مدت زیادی از ارسال پست عنوان شده توسط آقا سعید میگذشت بنده دیگه فکر کردم ویرایش پست زیاد موضوع مهمی نباشه ؛ برای همین پست رو همون طوری که بود رها کردم ؛ اینها رو عنوان کردم تا موضوع روشن بشه و دوستان یه وقت فکر بد نکنن و زود داوری رخ نده.
البته برخی از دوستان یه کم کم لطف هستن ؛ آیا نمیشد این مساله رو قبل اینکه اینطوری عمومی عنوان کرد با پیام خصوصی حلش کرد ؟!

rasoulgb
یک شنبه 31 اردیبهشت 1391, 16:36 عصر
سلام خدمت استاد عزیز
آقا این فایل های ضمیمه که فرمودین، درمورد Packer و همچنین Stolen Code، پیدا نمی شن؟؟
مشکل از منه که نمیتونم ببینمشون یا کلا نیست؟؟

hamid59022
دوشنبه 20 مرداد 1393, 12:54 عصر
خب این چه کاریه !؟

اخه تویه کدوم قفل دیدی برنامه نویس بیاد یه قطعه رو بسوزونه !؟

هیچ شرکتی حاضر نیست برنامه هاشو اینجور پروتکت کنه !!!

عزیز جان شما یه خورده در مورد کرک تحقیق کن . ببین چطور کرک می کنن !
وقتی کرکر If رو پیدا کنه ! عملیاته بعدشم پیگیری می کنه ببینه چه خبره !
این که می شه همون جریانه سریاله مادربورد و باقالی :لبخند:
سلام من براي يه ارگان برنامه نوشتم براي نوشتن يك قفل حاضرم هر كاري بكنم و هر راهي برم اما نميدانم از كجا شروع كنم سي شارپ مقدماتي - اين ارگان بسيار مهم اما بي در و پيكر است متاسفانه مسئولين اهميت اون رو درك نمي كنند خواهشمندم منابعي را اعلام كنيد يا حداقل بگيد از كجا بايد شروع كنم ممنون

hamid59022
دوشنبه 20 مرداد 1393, 12:55 عصر
براي محافظت از اين قفل بايد حتما كامپيوتر كراكر منفجر بشه تا حد امكان و هيچ دررويي نداشته باشه چون جريان اطلاعات بسيار مهم است

ra0661
سه شنبه 21 مرداد 1393, 12:06 عصر
دوستان بزار ی روش بگم بهتون ک 4 سال پیش اجرا شد و الان هم ک الانه باز همونه

ی برنامه بود 130 میلیون هزینه قفلش شد برنامه انگلیسی بود بعد از 6 ماه از وارد شدن ب بازار کرک شد


یعنی فولاد هم بسازید باز کرک میشه

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

حالا یکسری راه حل و راهکار میشه توضیح داد اما هیچ کدوم 100% نیستند حتی 99% هم نیستند!

موفق باشید دوستان