Cracker Handbook 1.0 part 32 pps

6 303 2
Cracker Handbook 1.0 part 32 pps

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

Thông tin tài liệu

The_lighthouse(REA) 06.10 Visual Basic Programs ================= Các phương pháp so sánh serial Trong Visual Basic có 8 cách thường được các programmer sử dụng để kiểm tra fake/real serial. Và mỗi cách lại có 1 điểm mạnh/ yếu khác nhau. Em sẽ post lần lượt từng cách lên để các bác thấy rõ hơn nhé ;) Trước hết em xin đưa ra 3 cách tiêu biểu nhất là : 1. So sánh String Trong phương pháp này, real code sẽ được so sánh với fake serial mà các bác nhập vào. Quote: String data type consists of a sequence of contiguous characters that represent the characters themselves rather than their numeric values. A String can include letters, numbers, spaces, and punctuation. The String data type can store fixed- length strings ranging in length from 0 to approximately 63K characters and dynamic strings ranging in length from 0 to approximately 2 billion characters. Và trong Visual Basic phép so sánh này được code như sau : Code: If “real serial” = “fake serial” Then | So sánh fake và real serial GoTo Correct Message Else GoTo Wrong Message End if Về cơ bản, đoạn code trên đây có thể được coi là ví dụ đơn giản nhất dùng để so sánh serial. Và vì vậy break nó trong SoftICE không phải là khó. Các breakpoint để crack phương pháp này : __vbastrcomp hoặc __vbastrcmp ( string compare ) *** Nếu các bác sử dụng các breakpoint em nói trong bài này để crack 1 chương trình VB thì các bác phải thêm “msvbvm60!” vào trước các breakpoint đó (ví dụ : bpx msvbvm60!__vbastrcomp hoặc bpx msvbvm60!__vbastarcmp …) 2. So sánh Variant Trong phương pháp này, 2 biến số của Variant Data được dùng so sánh với nhau. Quote: Variant data type is a special data type that can contain numeric, string, or date data as well as user-defined types and the special values Empty and Null. The Variant data type has a numeric storage size of 16 bytes and can contain data up to the range of a Decimal, or a character storage size of 22 bytes (plus string length), and can store any character text. Em xin đưa ra 1 đoạn code đơn giản về phương pháp này : Code: Dim real As Variant, fake As Variant | Định nghĩa “real” và “fake” là Variant real = Correct Password | Đặt “real” là “ Correct Pasword” fake = Text1.Text | Đặt “fake” là serial chúng ta nhập vào If correct = entered Then | So sánh sử dụng phương pháp Variant GoTo Correct Message Else GoTo Wrong Message End If Nếu như chúng ta sử dụng các breakpoint ở phương pháp trên áp dụng vào đây sẽ hoàn toàn thất bại bởi chương trình không sử dụng __vbastrcomp … Các breakpoint để crack phương pháp này : __vbavartsteq ( variant test equal ) 3. So sánh Long Đây là phương pháp rất thường được dùng. 2 biến số của Long Data được dùng để so sánh với 1 số khác. Quote: Long data type is a 4-byte integer ranging in value from -2,147,483,648 to 2,147,483,647. Do đó, sự hạn chế duy nhất của phương pháp này là giá trị được so sánh chỉ được bao gồm số. Đây là đoạn code của phương pháp này : Code: Dim real As Long, fake As Long | Định nghĩa “real” và “fake” là Long real = 12345 | Đặt “real” là correct serial fake = Text1.Text | Đặt “fake” là số chúng ta nhập vào If fake = real Then | So sánh sử dụng phương pháp Long GoTo Correct Message Else GoTo Wrong Message End If Ở phương pháp này chúng ta không có breakpoint thích hợp vì đoạn code so sánh của phương pháp Long nằm chính trong chương trình ( chứ không nằm trong file dll như 2 phương pháp trên ). 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 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 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 . numbers as 64-bit numbers in the range -1. 79769 313 486232E 308 to -4.9 406 56458 412 47E -324 for negative values; 4.9 406 56458 412 47E -324 to 1. 79769 313 486232E 308 for positive values. Như các bác thấy,. 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. 402 823E38 to - 1. 4 01 2 98E-45. numbers, ranging in value from -3. 402 823E38 to - 1. 4 01 2 98E-45 for negative values, and 1. 4 01 2 98E-45 to 3. 402 823E38 for positive values. Giới hạn của phương pháp này là giá trị được so sánh chỉ

Ngày đăng: 03/07/2014, 17:20

Tài liệu cùng người dùng

Tài liệu liên quan