1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracking part 23 pot

6 185 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 159,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Và tiếp theo đây sẽ là 5 phương pháp cũng góp phần không nhỏ vào việc làm “điên đầu” các cracker em xin nói trước nếu có bác nào không hiểu hoặc cảm thấy quá khó --> hãy tạm chấp nhận n

Trang 1

Okey, em đã nói xong 3 phương pháp kiểm tra fake/real serial thường được các

programmer dùng nhất Và tiếp theo đây sẽ là 5 phương pháp cũng góp phần không nhỏ vào việc làm “điên đầu” các cracker ( em xin nói trước nếu có bác nào không hiểu hoặc cảm thấy quá khó > hãy tạm chấp nhận nhưng các bác nên biết rằng những cách bảo vệ của các chương trình code bằng Visual Basic không hề giới hạn ở 3 cách trên đâu ) :

4 So sánh Single

Phương pháp này sử dụng 2 biến số của Single Data để so sánh với 1 số khác

Quote:

Single Data is a data type that stores single-precision floating-point variables as 32-bit (4-byte) floating-point numbers, ranging in value from -3.402823E38 to -1.401298E-45 for negative values, and 1.401298E-45 to 3.402823E38 for positive values

Giới hạn của phương pháp này là giá trị được so sánh chỉ được bao gồm số

Trong Visual Basic phương pháp này được code như sau :

Code:

Dim real As Single, fake As Single | Định nghĩa “real” và “fake” là Single

real = Correct Password | Đặt “real” là “Correct Password”

fake = Text1.Text | Đặt “fake” là số chúng ta nhập vào

If real = fake Then | So sánh sử dụng phương pháp Variant

GoTo Correct Message

Else

GoTo Wrong Message

End If

Cũng giống như phương pháp 3, phương pháp so sánh Single này không có breakpoint thích hợp vì đoạn code so sánh của phương pháp Single nằm chính trong chương trình ( chứ không nằm trong file dll như phương pháp 1 và 2 )

5 So sánh Double

Phương pháp này sử dụng 2 biến số của Double Data để so sánh với 1 số khác

Quote:

Double Data is a data type that holds double-precision floating-point numbers as 64-bit numbers in the range -1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values

Như các bác thấy, Double khá giống với Single Do đó hạn chế của phương pháp này cũng là số được so sánh phải bao gồm số mà thôi

Trong Visual Basic đoạn code của phương pháp này như sau :

Code:

Dim real As Double, fake As Double | Định nghĩa “real” và “fake” là Double

real = Correct Password | Đặt “real” là “Correct Password”

fake = Text1.Text | Đặt “fake” là serial chúng ta nhập vào

If real = fake Then | So sánh sử dụng phương pháp Variant

Trang 2

GoTo Correct Message

Else

GoTo Wrong Message

End If

Cũng giống như phương pháp 3, phương pháp so sánh Double này không có breakpoint thích hợp vì đoạn code so sánh của phương pháp Double nằm chính trong chương trình ( chứ không nằm trong file dll như phương pháp 1 và 2 )

6 So sánh Interger

Phương pháp này sử dụng 2 biến số của Interger Data để so sánh với 1 số khác

Quote:

Interger Data is a data type that holds integer variables stored as 2-byte whole numbers

in the range -32,768 to 32,767 The Integer data type is also used to represent

enumerated values

Hạn chế của phương pháp này là giá trị được so sánh chỉ bao gồm số mà thôi

Đoạn code của phương pháp này :

Code:

Dim real As Interger, fake As Interger | Định nghĩa “real” và “fake” là Interger real = Correct Password | Đặt “real” là “Correct Password”

fake = Text1.Text | Đặt “fake” là serial mà chúng ta nhập vào

If real = fake Then | So sánh sử dụng phương pháp Variant

GoTo Correct Message

Else

GoTo Wrong Message

End If

Cũng giống như phương pháp 3, phương pháp so sánh Interger này không có breakpoint thích hợp vì đoạn code so sánh của phương pháp Interger nằm chính trong chương trình ( chứ không nằm trong file dll như phương pháp 1 và 2 )

7 So sánh Byte

Phương pháp này sử dụng 2 biến số của Byte Data để so sánh với 1 số khác

Quote:

Byte Data is a data type used to hold positive integer numbers ranging from 0-255 Byte variables are stored as single, unsigned 8-bit (1-byte) numbers

Hạn chế của phương pháp này là giá trị được so sánh chỉ bao gồm số mà thôi và giới hạn đến 255

Đoạn code của phương pháp này :

Code:

Dim real As Byte, fake As Byte | Định nghĩa “real” và “fake” là Byte

real = Correct Password | Đặt “real” là “Correct Password”

fake = Text1.Text | Đặt “fake” là serial mà chúng ta nhập vào

Trang 3

If real = fake Then | So sánh sử dụng phương pháp Variant

GoTo Correct Message

Else

GoTo Wrong Message

End If

Cũng giống như phương pháp 3, phương pháp so sánh Real này không có breakpoint thích hợp vì đoạn code so sánh của phương pháp Real nằm chính trong chương trình ( chứ không nằm trong file dll như phương pháp 1 và 2 )

8 So sánh Currency

Phương pháp này sử dụng 2 biến số của Currency Data để so sánh với 1 số khác

Quote:

Currency Data is a data type with a range of -922,337,203,685,477.5808 to

922,337,203,685,477.5807 Use this data type for calculations involving money and for fixed-point calculations where accuracy is particularly important

Hạn chế của phương pháp này là giá trị được so sánh chỉ bao gồm số mà thôi

Đoạn code của phương pháp này :

Code:

Dim real As Currency, fake As Currency | Định nghĩa “real” và “fake” là Currency real = Correct Password | Đặt “real” là “Correct Password”

fake = Text1.Text | Đặt “fake” là serial mà chúng ta nhập vào

If real = fake Then | So sánh sử dụng phương pháp Variant

GoTo Correct Message

Else

GoTo Wrong Message

End If

Cũng giống như phương pháp 3, phương pháp so sánh Currency này không có breakpoint thích hợp vì đoạn code so sánh của phương pháp Currency nằm chính trong chương trình ( chứ không nằm trong file dll như phương pháp 1 và 2 )

Các breakpoint dùng để crack

1) Chuyển đổi dữ liệu

- String sang Byte hoặc Integer: vbai2str

- String sang Long: vbai4str

- String sang Single: vbar4str

- String sang Double: vbar8str

- String sang Currency: VarCyFromStr

- Integer sang String: VarBstrFromI2

2) Di chuyển dữ liệu

- String to memory: vbaStrCopy

- Variant to memory: vbaVarCopy or vbaVarMove

Trang 4

3) Các phép toán

- Phép cộng : vbavaradd

- Phép trừ : vbavarsub

- Phép nhân : vbavarmul

- Phép chia: vbavaridiv

- XOR: vbavarxor

4) Các phép khác

- vbavarfornext

- vbafreestr

- vbafreeobj

- vbastrvarval

- multibytetowidechar

- rtcMsgBox

- vbavarcat

- vbafreevar

- vbaobjset

Lời khuyên chung khi crack chương trình code bằng Visual Basic

Các bác nên dùng SmartCheck để crack các chương trình Visual Basic Nó là 1 chương trình rất hữu ích và các bác nên học cách sử dụng nó, hoặc ít ra là hiểu được công việc của nó Chúng ta thường dùng SoftICE và W32DASM và đặc biệt là OllyDBG để crack các soft code bằng các ngôn ngữ khác W32DASM thì crack chương trình Visual Basic

dễ hơn 2 cái kia, nhưng mà “cao cơ” hơn cả W32DASM còn có SmartCheck – cùng họ Numega với SoftICE Do vậy em sẽ cố gắng giải thích cho các bác cách để crack 1 soft Visual Basic với SmartCheck và SoftICE cùng 1 lúc

1 Như thông thường, chúng ta chạy thử chương trình Chờ xem chương trình làm gì, và hãy nhớ những điều đó

2 Sử dụng SmartCheck để chạy chương trình Sau khi chạy chương trình và đăng kí

“lụi”, chúng ta hãy đóng chương trình lại Khi chúng ta click vào “Show All Events”, 1

“cây” thông tin sẽ hiện ra Và việc tìm thứ mà chúng ta cần tìm trong “mớ hỗn độn” đó không phải là dễ (thứ chúng ta cần tìm không nói chắc các bác cũng biết hén :)) Vậy hãy click vào dòng mà chúng ta muốn trước khi chọn “Show All Events” Thông thường xxxxxx_Click.xxxxxx là tên button của chương trình

3 Hãy tìm vbastrcomp, vbastrcmp hoặc vbavartsteq trước Nếu các bác may mắn , các bác sẽ thấy được đoạn code dùng để so sánh serial

4 Nếu các bác tìm không thấy chúng > có thể chương trình sử dụng phương pháp kiểm tra serial khác Bây giờ hãy tìm message Bugger-off Ở trên nó 1 vài dòng thường sẽ có 1 vài lệnh vba Hãy bắt đầu với những lệnh gần message Bugger-off nhất > đặt

breakpoint nó Xong hãy tính số “sự kiện” của breakpoint mà các bác đã đặt và sử dụng F5 trong SoftICE để trở về chương trình và break lại lần nữa

Ví dụ : nếu các bác đặt breakpoint tại vbafreestr thì có thể sẽ có rất nhiều cái như vậy

Trang 5

được dùng sau khi các bác click nút đăng kí Và nếu breakpoint các bác muốn được ghi là 10th_vbafreestr trong SmartCheck, các bác phải nhấn F5 9 lần để đến 10th_vbafreestr

Và 1 điều các bác nên nhớ là các bác đang crack Visual Basic , do đó hãy thêm dòng msvbvm60! vào phía trước

5 Chạy chương trình, nhập vào bất cứ cái gì và click nút register > SoftICE sẽ break (còn nếu nó không break thì các bác đã đặt breakpoint sai rồi đó)

6 Bắt đầu trace vào mỗi lệnh CALL và chú ý bất kì sự thay đổi nào của register Càng gần message Bugger-off bao nhiêu thì thời gian trace sẽ giảm lại bấy nhiêu Khi các bác nghi ngờ về cái gì đó, hãy trở lại SmartCheck và tìm breakpoint tiếp theo Breakpoint nằm trước có thể ở phía sau đoạn code so sánh

PHẦN 7 : Window Messages For Crackers

WM_ACTIVATE

WM_ACTIVATE message sẽ xuất hiện khi window được activate hoặc bị deactivate Message này sẽ được gởi tới window procedure của window đang bị deactivate trước, sau

đó sẽ gởi tới window procedure của window đang được activate

Code:

fActive = LOWORD(wParam); // activation flag

fMinimized = (BOOL) HIWORD(wParam); // minimized flag

hwnd = (HWND) lParam; // window handle

Returns

Nếu chương trình chấp nhận message này, giá trị trả về là 0

WM_CLEAR

Chương trình sẽ gởi WM_CLEAR message đến 1 edit control hoặc combo box để xóa thứ được chọn

Code:

wParam = 0; // not used; must be zero

lParam = 0; // not used; must be zero

Returns

Message này không có giá trị trả về

WM_CLOSE

WM_CLOSE message sẽ xuất hiện như 1 dấu hiệu window hoặc 1 chương trình nào đó cần đóng lại

Retuns

Nếu chương trình chấp nhận message này, giá trị trả về là 0

WM_COMMAND

WM_COMMAND message sẽ xuất hiện khi người dùng chọn 1 command item từ menu, hay khi control gởi 1 bẳng thông báo đến parent window, hay khi phím tăng tốc được hiểu

Code:

Trang 6

 

Ngày đăng: 01/07/2014, 13:20

TỪ KHÓA LIÊN QUAN