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

Cracker Handbook 1.0 part 238 pps

6 121 1

Đ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 471,07 KB

Nội dung

-**** Thực hiện việc Set BP với cả hai hàm trên. Bằng cách set BP này chúng ta sẽ thông báo cho Olly biết để chương trình dừng lại khi game MK gọi những hàm trên để truy cập ổ CD. -**** Oki , sau khi chúng ta set BP xong , nhấn F9 để run chương trình . Khi thông báo lỗi hiện lên , chúng ta chọn “RESCAN CD” …Hmm …Nothing Happens……chẳng nhẽ MK không sử dụng những hàm API trên để truy cập tới ổ CD ROM hay sao ? Chúng ta sẽ thử lại nhưng theo một phương hướng khác. -**** Ở đây các bạn hãy để ý kĩ tới thanh game’s title bar. Đó là “Mortal Kombat 4 – Demo Mode” . Vậy cái dòng chữ Demo Mode nó làm cái quái quỉ gì ở đây ??? Bây giờ chúng ta hãy đút đĩa CD cài đặt game vào ổ , sau đó chọn “RESCAN CD” . Ặc game đã chạy vù vù và dòng chữ Demo Mode đã biến mất từ bao giờ mà chúng ta không để ý. Vậy thì điều này có nghĩa là khi không có đĩa CD trong ổ CD ROM thì dòng chữ “Demo Mode” sẽ hiện lên , còn ngược lại nếu có đĩa CD trong ổ thì dòng “Demo Mode” sẽ biến mất và game chạy vù vù. Đây có thể là một chi tiết đáng giá để chúng ta quan tâm.(lucky coin !!!! : )) :wub: . -**** Chúng ta sẽ tìm kiếm dòng “Demo Mode” của chương trình này trong Olly. Để thực hiện được điều này thì tại cửa sổ Disassembler window chúng ta right click , sau đó chọn "Search for"->"All referenced text strings" giống như hình minh họa dưới đây : -**** Chúng ta sẽ tiến hành đặt bẫy chương trình này khi nó kiểm tra điều kiện và hiển thị dòng “Demo Mode” . Tại cửa sổ Referenced text của Olly chúng ta sẽ tìm kiếm dòng có cụm từ “Demo Mode” tương tự như hình minh họa dưới đây : -**** Bây giờ chúng ta đã tìm thấy những gì cần tìm . Công việc tiếp theo chúng ta sẽ tìm hiều đoạn code nào có liên quan tới dòng chúng ta đã tìm được. Để thực hiện được điều này chúng ta có thể right click tại dòng chúng ta tìm được và chọn “Follow in Disassembler” hoặc click vào dòng đó và nhấn [Enter] ( hoặc có thể double click tại dòng đó). Olly sẽ đưa chúng ta quay lại với cửa sổ Disassembler window : -**** Oki , tất cả các thao tác trên thật là đơn giản , bất cứ một ai cũng có thể thực hiện được một cách dễ dàng . Ở đây chúng ta nhìn thấy game thực hiện một dòng lệnh kiểm tra tại 4B1917 (test eax, eax), sau đó nó chuyển dòng text string “ Mortal Kombat 4” vào thanh ghi eax . Nếu thanh ghi eax mà khác 0 sau phép kiểm tra (Zero flag là 0) thì dòng title bar của game sẽ là “Mortal Kombat 4” (this was a good guy Remember it !!). -**** Ngược lại nếu sau phép kiểm tra mà giá trị của eax là 0 (Zero flag là 1 ), thì dòng Mortal Kombat 4 – Demo Mode sẽ được nạp vào thanh ghi eax … thanh title bar sẽ hiển thị dòng này (the bad guy with CD check error). Vì vậy chúng ta cần làm cho giá trị của thanh ghi eax khác 0. Vậy làm sao để có thể làm được điều này, chúng ta hãy nhìn lên dòng lệnh phía trên lệnh test .Các bạn có thể thấy được thanh ghi eax sẽ nhận giá trị từ đâu. Oh yeah !! đó là địa chỉ 4B1912 : mov eax, dword ptr ds:[4FDCFC] . -**** Bây giờ một vấn đề nhỏ đặt ra ở đây là , vậy thì trước lệnh test thì giá trị được lưu trữ trong ô nhớ [4FDCFC] là bao nhiêu và làm thế nào để ta có thể thay đổi giá trị đó theo ý muốn của chúng ta . Đó là yêu cầu chính trong phần này, chúng ta sẽ truy nhập vào ô nhớ này để xem giá trị của nó trước khi lệnh test được thực hiện. Vì vậy chúng ta phải đặt một BP tại câu lệnh này . Để đặt BP tại câu lệnh trên chúng ta thực hiện như sau , click chuột vào câu lệnh mov eax, dword ptr ds:[4FDCFC] để highlight nó , sau đó nhấn F2 để thiết lập một BP (toggle breakpoint). Hãy xem hình minh họa dưới đây : -**** Như bạn đã thấy ở trên , sau khi đặt BP thì địa chỉ của lệnh mà chúng ta đặt BP đã được tô đỏ. Oki , tiếp theo chúng ta nhấn F9 để run game MK , Olly sẽ dừng lại tại điểm mà chúng ta đã set BP ở trên. Bây giờ để có thể biết được giá trị gì được lưu tại ô nhớ [4FDCFC], chúng ta right click lên “mov eax , dword ptr ds:[4FDCFC]" , sau đó chọn “ Follow in Dump” > “Memory address”. Cụ thể như hình minh họa dưới đây : -**** Tại cửa sổ Dump Window bạn có thể nhìn thấy giá trị được lưu giữ tại [4FDCFC] . Như các bạn đã thấy trong hình minh họa trên thì nó được đánh dấu màu đỏ. Bạn có thể thấy , toàn những giá trị 0. Và 0 có nghĩa là bad guy , đúng không các bạn ?? :D Chúng ta hãy thay đổi nó thành 1 để xem chương trình sẽ hoạt động như thế nào : ). Để có thể thay đổi được giá trị các bạn tiến hành như sau : click chọn giá trị 00 đầu tiên(byte đầu tiên) , sau đó nhấn [SPACE] . Một dialog box sẽ xuất hiện cho phép bạn sửa đổi giá trị 00 thành 01 . Cụ thể như hình dưới đây : -**** Oki , sau khi sửa thành 01 thì tất cả những gì chúng ta phải làm tiếp theo là chỉ việc cho run game . Nhấn F9 , chúng ta sẽ quay trở lại game , Olly lại dừng lại > Chúng ta đã quên xóa điểm đặt BP khi nãy : ). Chúng ta xóa điểm đặt BP này đĩ bằng cách trỏ vào dòng đó rùi nhấn F2 , sau đó chúng ta lại run lại game . Quay trở lại game . Hmm chúng ta để ý thấy rằng Title bar của nó đã được thay đổi từ “Mortal Kombat 4 – Demo Mode” thành “ Mortal Kombat 4”. Nhưng cái Nag CD check error thì . trị 00 đầu tiên(byte đầu tiên) , sau đó nhấn [SPACE] . Một dialog box sẽ xuất hiện cho phép bạn sửa đổi giá trị 00 thành 01 . Cụ thể như hình dưới đây : -**** Oki , sau khi sửa thành 01 . lệnh kiểm tra tại 4B1 917 (test eax, eax), sau đó nó chuyển dòng text string “ Mortal Kombat 4” vào thanh ghi eax . Nếu thanh ghi eax mà khác 0 sau phép kiểm tra (Zero flag là 0) thì dòng title. đánh dấu màu đỏ. Bạn có thể thấy , toàn những giá trị 0. Và 0 có nghĩa là bad guy , đúng không các bạn ?? :D Chúng ta hãy thay đổi nó thành 1 để xem chương trình sẽ hoạt động như thế nào : ).

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

TỪ KHÓA LIÊN QUAN