امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
روش ضد کرک
نویسنده پیام
mohamadpk آفلاین
در حال پیشرفت
***

ارسال‌ها: 337
موضوع‌ها: 39
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 726
( 661 تشکر در 257 ارسال )
ارسال: #23
RE: روش ضد کرک
نقل قول: مگه از اين تکنيک استفاده نکرده؟
اگر از آن تکنیک استفاده بشه کرک کردنش کار سختی نخواهد بود.فقط کافی هست جایی که داره writememory رو فرا می خونه پیدا کرد و هر چی طرف تو برنامه ریخته تو پشته(push کرده) رو شما هم ورداری بریزی تو پشته و حافظه رو بنویسی و ترد رو باز اجرا کنی. البته من کرکر نیستم همین طوری نظر دادم اگر حرفم اشتباه بود دوستان درست کنند.من فقط دونبال راهی هستم که برنامه هام رو نجات بدم همین.موفق باشید.

وطنم ای عشق همیشگی من ایران زمین

شقایق ها گل میکنن دوباره عاشق میشن...........قصه عشق وطن رو به غنچه هاشون میگن


۲۰-بهمن-۱۳۸۸, ۰۳:۴۰:۴۶
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #24
RE: روش ضد کرک
(۲۰-بهمن-۱۳۸۸, ۰۳:۴۰:۴۶)mohamadpk نوشته است:
نقل قول: مگه از اين تکنيک استفاده نکرده؟
اگر از آن تکنیک استفاده بشه کرک کردنش کار سختی نخواهد بود.فقط کافی هست جایی که داره writememory رو فرا می خونه پیدا کرد و هر چی طرف تو برنامه ریخته تو پشته(push کرده) رو شما هم ورداری بریزی تو پشته و حافظه رو بنویسی و ترد رو باز اجرا کنی. البته من کرکر نیستم همین طوری نظر دادم اگر حرفم اشتباه بود دوستان درست کنند.من فقط دونبال راهی هستم که برنامه هام رو نجات بدم همین.موفق باشید.
چنین کاری امکان پذیر نیست چون Call ها و Jump ها بر اساس مکان قبلی در حافظه ادرس دهی شده اند و اگه شما این کارو بکنین به خاطر پرش به مکانی نامعلوم برنامه با یک خطا بسته خواهد شد

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۰-بهمن-۱۳۸۸, ۰۹:۴۷:۳۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Gladiator_CRK, CRazYFULL
saeedsmk آفلاین
مدیر بخش کرک و کامپیوتر
*****

ارسال‌ها: 506
موضوع‌ها: 74
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 677
( 1179 تشکر در 348 ارسال )
ارسال: #25
RE: روش ضد کرک
(۲۰-بهمن-۱۳۸۸, ۰۳:۰۶:۰۹)1120 نوشته است:
نقل قول: مگه از اين تکنيک استفاده نکرده؟

نه مجتبی جان
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


نقل قول: سلام
خوب هستيد
كار اين اقاي برديا چقدر به كار من نزديك بوده !!!!
http://forum.persiantools.com/showpost.p...stcount=48
و
http://forum.persiantools.com/t20871.html
دقيقا يك كاره بد نيست دوستان برنامه نويس كد رو كه بر ميدارن سورسشم بگن از كجا بر داشتن
به اميد ديدار

سلام سعید عزیز .

با تمام احترامی که برای شما قائلم ، اما بهتر نیست اول کمی در مورد کسی که ادعا می کنی سورس شما رو دزدیده و منبع رو نگفته تحقیق کنی ؟؟؟

سعید جان Strong Bytes ( بردیا ) از بهترین کرکر های ایران هستن و برنامه نویس دلفی هستن نه ویبی 6 !

اگه برای ادعات مدرکی داری بسم الله ، بزار همه ببینیم ...
سلام
خوب هستيد
من نگفتم كركرم و نه گفتم برنامه نويس هيچي بلد نيستم مثل همه

من انگلیسی ضعیفی دارم و بخاطر همین معمولا پیغام های مسیج رو بصورت خلاصه توی کد مینویسم .توی تاپیکی که دادم برید پیغام های مسیج باکس ها رو با کدی که لینک دادن مقایسه کنید . اسم متغیر ها رو هم بررسی کنید
خوب يك نگاه كن
اين قسمت ماژول سورسي كه توي اين تاپيك هست و به نام روش اقاي برديا نام برده شده:
کد:
Option Explicit

Dim lngProcess As Long
Dim lngThread As Long
Dim lngProcessID As Long
Dim lngThreadID As Long
Dim lngReply As Long

Public Type STARTUPINFO
        cb As Long
        lpReserved As String
        lpDesktop As String
        lpTitle As String
        dwX As Long
        dwY As Long
        dwXSize As Long
        dwYSize As Long
        dwXCountChars As Long
        dwYCountChars As Long
        dwFillAttribute As Long
        dwFlags As Long
        wShowWindow As Integer
        cbReserved2 As Integer
        lpReserved2 As Byte
        hStdInput As Long
        hStdOutput As Long
        hStdError As Long
End Type

Public Type PROCESS_INFORMATION
        hProcess As Long
        hThread As Long
        dwProcessId As Long
        dwThreadId As Long
End Type

Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess _
    As Long, ByVal uExitCode As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As _
    Long) As Long

Public Declare Function WaitForSingleObject Lib "kernel32" _
    (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Public Declare Function CreateProcess Lib "kernel32" Alias _
    "CreateProcessA" (ByVal lpApplicationName As String, ByVal _
    lpCommandLine As String, lpProcessAttributes As Any, _
    lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal _
    dwCreationFlags As Any, lpEnvironment As Any, ByVal _
    lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, _
    lpProcessInformation As PROCESS_INFORMATION) As Long

Public Declare Function GetWindowThreadProcessId& Lib "user32" _
    (ByVal hwnd As Long, lpdwProcessID As Long)
    
Public Declare Function ResumeThread Lib "kernel32" _
    (ByVal hThread As Long) As Long
    
Public Declare Function WriteProcessMemory Lib "kernel32" _
    (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, _
    ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    
Public Const GW_HWNDNEXT = 2
Public Const WM_QUIT = &H12
Public Const WM_CLOSE = &H10

Public Const SYNCHRONIZE = &H100000
Public Const NORMAL_PRIORITY_CLASS = &H20&
Public Const CREATE_SUSPENDED = &H4&

Public pInfo As PROCESS_INFORMATION
Public sInfo As STARTUPINFO
Public sNull As String

Public Sub Main()
    Dim txtStart As String, pHandle As Long, BufferTXT As String


    txtStart = "[color=#FF0000]lock.dat[/color]"


    If Dir(txtStart) = "" Then
        MsgBox "[color]Failed to Start[/color] "
        End
    End If


    sInfo.cb = Len(sInfo)


    lngReply = CreateProcess(sNull, txtStart, ByVal 0&, ByVal 0&, 1&, _
        CREATE_SUSPENDED, ByVal 0&, sNull, sInfo, pInfo)


    If lngReply = 0 Then
        MsgBox "[color]Unable to start[/color] "
        End
    End If

    lngProcessID = pInfo.dwProcessId
    lngThreadID = pInfo.dwThreadId
    lngProcess = pInfo.hProcess
    lngThread = pInfo.hThread
    

    BufferTXT = Chr(&H55) & Chr(&H8B) & Chr(&HEC) & Chr(&H6A)


    lngReply = WriteProcessMemory(lngProcess, &H4112DA, BufferTXT, Len(BufferTXT), 0&)


    If lngReply = 0 Then
        MsgBox "[color]Failed to change[/color]. "
        GoTo End_Process
    End If


    lngReply = ResumeThread(lngThread)
  

    If lngReply = 0 Then
        MsgBox "Failed to Resume "
        GoTo End_Process
    End If


    lngReply = CloseHandle(lngThread)
    lngReply = CloseHandle(lngProcess)


    End
    
End_Process:


    lngReply = TerminateProcess(lngProcess, 0&)


    lngReply = CloseHandle(lngThread)
    lngReply = CloseHandle(lngProcess)


    End


End Sub
حالا از لينكي كه بالا هم اشاره شد يعني اين لينك پست پنجم
کد:
Option Explicit

Dim lngProcess As Long
Dim lngThread As Long
Dim lngProcessID As Long
Dim lngThreadID As Long
Dim lngReply As Long

Public Type STARTUPINFO
        cb As Long
        lpReserved As String
        lpDesktop As String
        lpTitle As String
        dwX As Long
        dwY As Long
        dwXSize As Long
        dwYSize As Long
        dwXCountChars As Long
        dwYCountChars As Long
        dwFillAttribute As Long
        dwFlags As Long
        wShowWindow As Integer
        cbReserved2 As Integer
        lpReserved2 As Byte
        hStdInput As Long
        hStdOutput As Long
        hStdError As Long
End Type

Public Type PROCESS_INFORMATION
        hProcess As Long
        hThread As Long
        dwProcessId As Long
        dwThreadId As Long
End Type

Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess _
    As Long, ByVal uExitCode As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As _
    Long) As Long

Public Declare Function WaitForSingleObject Lib "kernel32" _
    (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long

Public Declare Function CreateProcess Lib "kernel32" Alias _
    "CreateProcessA" (ByVal lpApplicationName As String, ByVal _
    lpCommandLine As String, lpProcessAttributes As Any, _
    lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal _
    dwCreationFlags As Any, lpEnvironment As Any, ByVal _
    lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, _
    lpProcessInformation As PROCESS_INFORMATION) As Long

Public Declare Function GetWindowThreadProcessId& Lib "user32" _
    (ByVal hWnd As Long, lpdwProcessID As Long)
    
Public Declare Function ResumeThread Lib "kernel32" _
    (ByVal hThread As Long) As Long
    
Public Declare Function WriteProcessMemory Lib "kernel32" _
    (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, _
    ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
    
Public Const GW_HWNDNEXT = 2
Public Const WM_QUIT = &H12
Public Const WM_CLOSE = &H10

Public Const SYNCHRONIZE = &H100000
Public Const NORMAL_PRIORITY_CLASS = &H20&
Public Const CREATE_SUSPENDED = &H4&

Public pInfo As PROCESS_INFORMATION
Public sInfo As STARTUPINFO
Public sNull As String
Public Sub Main()
    Dim txtStart As String, pHandle As Long, BufferTXT As String

' اسم برنامه ما كه مي خواييم با تابع زير اون رو اجرا كنيم
    txtStart = "[color]test.lck[/color]"

' چك كردن وجود فايل در زير شاخه اجرا برنامه
    If Dir(txtStart) = "" Then
        MsgBox "[color]Failed to Start [/color]"
        End
    End If

'مقدار دهي متغييري كه مشخصات برنامه ما رو مثل دستگيره برنامه  رو نگه ميداره
    sInfo.cb = Len(sInfo)

' اجرا برنامه بوسيله تابع CreateProcess با خاصيت Suspended كه باعث ميشه برنامه بصورت معلق اجرا بشه  و هنگامي كه لودر به EP رسيد برنامه
' متوقف بشه و منتظر فرمانResumeThread بشه كه برنامه اجرا بشه در اين صورت ميشه هر موقعه بخواييم برنامه رو متوقف و يا ادامه دهيم
    lngReply = CreateProcess(sNull, txtStart, ByVal 0&, ByVal 0&, 1&, _
        CREATE_SUSPENDED, ByVal 0&, sNull, sInfo, pInfo)

' چك ميكنه ايا برنامه اجرا شد يا نه ؟
    If lngReply = 0 Then
        MsgBox "[color]Unable to start [/color]"
        End
    End If
'ذخيره اطلاعات اوليه برنامه براي استفاده هاي بعدي
    lngProcessID = pInfo.dwProcessId
    lngThreadID = pInfo.dwThreadId
    lngProcess = pInfo.hProcess
    lngThread = pInfo.hThread
    
'6A70 مقدار دهي بافري كه بايد نوشته بشه يعني مقدار  
    BufferTXT = Chr(&H6A) & Chr(&H70)

' نوشتن در حافظه برنامه ( ِD100739 ) توسط تابع  WriteProcessMemory
    lngReply = WriteProcessMemory(lngProcess, &H100739D, BufferTXT, Len(BufferTXT), 0&)

' چك كردن اينكه نوشتن با موفقيت  انجام شده يا نه و گرنه به تابع اتمام برنامه برو
    If lngReply = 0 Then
        MsgBox "[color]Failed to change. [/color]"
        GoTo End_Process
    End If

' ادامه دادن برنامه ( تمامي تغييرات اعمال شده و مثل فايل اوليه شده اما در حافظه )
    lngReply = ResumeThread(lngThread)
  
' چك كردن ادامه برنامه و در صورت عدم ادامه برنامه پرش به قسمت اتمام برنامه
    If lngReply = 0 Then
        MsgBox "Failed to Resume "
        GoTo End_Process
    End If

' بستن هندلهاي استفاده شده
    lngReply = CloseHandle(lngThread)
    lngReply = CloseHandle(lngProcess)

' خروج از برنامه
    End
    
End_Process:

' اتمام برنامه
    lngReply = TerminateProcess(lngProcess, 0&)

' بستن هندلهاي استفاده شده
    lngReply = CloseHandle(lngThread)
    lngReply = CloseHandle(lngProcess)

' خروج از برنامه
    End

End Sub
به تاريخ 07-05-2005 نوشته من در سايت پرشين تولز.
مي بني قسمت هاي قرمز رنگ ( كه بايد قزمر مشخص شن اما نميدونم چرا قرمز نشدن و با تگ color معلوم هستند ) يكي هست حتي اسم متغير ها نحوه قرار گرفتن كد و... يكي است فقط يكسري قسمت ها تغيير كرده . توضيحات كم شده. قسمتي كه توي حافظه برنامه پچ ميشه مقدار هاش تغيير كرده چون برنامه مورد نظر براي قفل گذاري تغيير كرده .
شما خودتون قضاوت كنيد
به اميد ديدار
-----------------------
پي نوشت: يك نگاهي اينجا بكنيد 1120
http://barnamenevis.org/forum/showpost.p...stcount=80

در دنياي كه مرگ شكارچي ان است بايد شكارچي بود - تعليمات دون خوان نوشته كارلوس كاستاندار
(آخرین ویرایش در این ارسال: ۲۰-بهمن-۱۳۸۸, ۱۹:۵۳:۴۷، توسط saeedsmk.)
۲۰-بهمن-۱۳۸۸, ۱۸:۲۴:۱۱
ارسال‌ها
پاسخ
تشکر شده توسط : 1120, CRazYFULL, Di Di
1120 آفلاین
در حال پیشرفت
***

ارسال‌ها: 313
موضوع‌ها: 49
تاریخ عضویت: دى ۱۳۸۷

تشکرها : 404
( 381 تشکر در 161 ارسال )
ارسال: #26
RE: روش ضد کرک
نقل قول: سلام .

ولي اين يه مورد زير تست اومده

کرک مي که هرگز کرک نشد !

موفق باشيد .


سلام سعيد جان .

من به اشتباه فکر کردم منظور شما اين تاپيک که من يک کرک مي که برديا جان پروتکتش کرده بود گزاشته بودم بچه ها کرک کنن !

من اصلا قصد جسارت و ناراحت کردن شما رو نداشتم ، درضمن همون جور که مهدي جان هم گفت شما براي همه ما اثبات شده هستيد .

موفق باشيد .

(آخرین ویرایش در این ارسال: ۲۱-بهمن-۱۳۸۸, ۰۰:۵۲:۴۹، توسط 1120.)
۲۱-بهمن-۱۳۸۸, ۰۰:۵۲:۰۹
ارسال‌ها
پاسخ
تشکر شده توسط : saeedsmk


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS