Nguồn : http://Diendan.Clublh.Us.To/t411-topic
Tiêu Đề : Tự Làm Bypass Dragonica VN !
Long Hải - Kết Nối Cộng Đồng Game Thủ
--------------------------------------------------
Hôm nay DRG SEA bảo trì cả ngày, trời lại mưa không đi đâu được, ngồi buồn viết 1 bài về bypass giúp các mem nào thích tìm hiểu có được một cái nhìn rõ ràng hơn về việc bypass DragonicaVN và có thể tự tạo một bypass của riêng mình theo đúng cách mà các cracker đã tạo ra, hi vọng các bạn sẽ thấy thích thú :)
Đối tượng thực hành:ở đây sẽ là game DragonicaVN, một game theo tôi là có cơ chế bảo vệ việc load Hshield cùi bắp nhất :) .Tại sao tôi lại bảo cùi bắp? là vì thông thường các game dùng Hshield ngoài các cơ chế bảo vệ ở client (mà phần lớn đều rất dễ bị crack) còn có cơ chế bảo vệ bằng việc kiểm tra của server đây là cái khó nhai nhất khi muốn bypass Hshield ,tuy nhiên DragonicaVN lại không có cơ chế này lolz
Các tools cần dùng:Ollydbg 1.10 hoặc bất cứ bản nào khác có hỗ trợ plugin Phantom
đây là một chương trình debug rất nổi tiếng rồi có lẽ không cần nói nhiều về nó, các bạn có thể download tại:
[You must be registered and logged in to see this link.]plugin Phantom
đây là một plugin của olly có chức năng ẩn olly tránh sự phát hiện của trương trình,các bạn chỉ cần down về và để vào cùng thư mục với file ollydgb.exe là được. Link download:
[You must be registered and logged in to see this link.]cuối cùng là một chút kiến thức cơ bản về hợp ngữ, sẽ rất hữu ích để các bạn có thể hiểu các lệnh trong phần sau.
Bắt đầu Bypass:-các bạn mở ollydgb lên, chọn menu Plugins trên thanh công cụ, chọn plugin Phantom và tick hết vào bảng chọn hiện ra, sau đó ấn ok.Bây giờ trương trình ollydbg đã hoàn toàn bị ẩn với các cơ chế kiểm tra của game, bạn có thể kiểm tra bằng cách vào task manager, hoàn toàn không thấy nó đâu cả.
[You must be registered and logged in to see this link.]- tiếp đó các bạn bấm vào file ->open, chon file dragonica.exe trong thư mục DragonicaVN/Release, chương trình sẽ load file và tiến hành phân tích mã asm, quá trình này sẽ gây lag máy nên các bạn máy yếu (ví dụ máy tôi) hãy ấn phím cách (space) để bỏ qua. sau khi load xong, trên màn hình chính của olly sẽ như sau:
[You must be registered and logged in to see this link.]- tiếp đó các bạn vào DragonicaVN/Release đổi tên thư mục Hshield thành abcxyz để khi chạy thằng dragonica.exe không tìm được nữa, coi nó phản ứng ra sao :)) ,sau khi đổi xong,quay lại olly ấn F9, o la la 2 cái bảng thông báo lỗi bung ra :
- Failed to update......
- AppProtect luanch failed (chú ý từ luanch sai chính tả, hình như admin gõ trong lúc ngủ gật =)) phải là launch mới đúng )
Ok, bây giờ chúng ta sẽ tìm xem lệnh nào đã gọi 2 cái thằng đó lên, trước tiên hãy reset lại thằng dragonica.exe bằng cách vào menu debug -> restart:
[You must be registered and logged in to see this link.]trên màn hình chính bấm chuột phải, chọn search for -> all reference text string, đợi một lúc để nó tìm các chuỗi string có mặt trong chương trinh, sau khi nó tìm xong, sẽ bung ra 1 cửa sổ như sau:
[You must be registered and logged in to see this link.]kéo lên dòng đầu tiên,kick chuột phải, chọn search for text , nhập vào Failed to update , ấn OK để tìm , nhưng không có kết quả nào trả về, có thể đoạn text này đã được encode, không sao, tiếp tục tìm với "AppProtect luanch failed" , lần này thì không chạy đi đâu được, nó đã lộ mặt
ấn chuột phải lên dòng tìm được, chọn follow in disassembler, nó sẽ đưa ta đến một đoạn code như sau:
[You must be registered and logged in to see this link.]đây chính là đoạn code đưa ra cái thông báo lỗi AppProtect luanch failed , nhìn lên bên trên vài lệnh, chúng ta sẽ thấy một lệnh so sánh và một lênh nhảy có điều kiện, lệnh nhảy này nhảy qua vùng code in thông báo lỗi AppProtect luanch failed. 99% 2 lênh này làm nhiệm vụ kiểm tra xem hshield đã nạp chưa, nếu đã nạp thì thực hiện tiếp ( tương ứng lệnh nhảy được kích hoạt) nếu chưa thì in thông báo lỗi và kết thúc ( tương ứng với lệnh nhảy k được kích hoạt) .bây giờ ta sẽ ép nó phải nhảy bất kể điều kiện thế nào :lol!: chọn dòng lệnh:
je short 009AC90E
click chuột phải, chọn assembly
sửa lại thành:
jmp short 009AC90E
ok thế là ta đã bypass xong thằng AppProtect luanch failed
,nhưng còn thằng Failed to update...... thì xử lí thế nào? không sao, các bạn có để ý là thằng Failed to update...... bung ra trước thằng AppProtect luanch failed không? có nghĩa là đoạn code của nó sẽ nằm ngay gần trước code của thằng AppProtect luanch failed (vì các hàm thực hiện các công việc gần giống nhau thương đặt canh nhau), tôi sẽ bắt đầu từ cái hàm gần nhất là call 00F0E8A0, ấn F2 trên lệnh gọi hàm call 00F0E8A0 để đặt 1 breakpoint ( tạm hiểu là dừng chương trình khi nó chạy đến lênh đó) ở lệnh call 00F0E8A0, sau đó ấn F9 để chạy thử, chương trinh sẽ bị dừng ở lệnh call 00F0E8A0 mà chưa có bất cứ một thông báo nào được bung ra cả, vậy ta suy ra code bung cái bảng Failed to update......nằm trong hàm được gọi bởi call 00F0E8A0 rồi
[You must be registered and logged in to see this link.]xem thử qua xem hàm này thế nào nhé, ta chọn lệnh call 00F0E8A0 click chuột phải và chọn follow, nó sẽ đưa ta đến doạn code của hàm đó, kéo xuống nhìn thì ta thấy có xuất hiện khá nhiều từ Hshield
[You must be registered and logged in to see this link.]chắc đây là hàm dùng để nạp hshield rồi, giờ ta sẽ không cho nó nạp hshield nữa :)) như vậy thì cái bảng Failed to update...... cũng sẽ bay theo hê hê, ta quay lại lệnh call 00F0E8A0 rồi click chuột phải chọn assembly rồi sửa
call 00F0E8A0 thành NOP (tức là không làm gì cả), tick vào fill with NOPs và ấn OK, xong, đến giờ phút này Hshield đã chính thức được cho về vườn
[You must be registered and logged in to see this link.]bây giờ các bạn ấn run để chạy thử xem, game vào ngon lành mà không có hshield hehe
cuối cùng là bước lưu lại các thay đổi:
restart lại dragonica.exe bằng cách vào debug -> restart , tìm đến các lệnh call 00F0E8A0 và je short 009AC90E sửa lại như mục trên (do khi restart thì các lệnh đã sửa sẽ được phục hồi lại). Sau khi sửa xong, click chuột phải, chọn copy to executable -> all modification một bảng hiện ra để bạn kiểm tra lần cuối, click chuột phải tiếp và chọn save file.
Xong,chúc mừng bạn đã tự tay bypass 1 game rồi đấy, cách bypass trên đây có thể áp dụng cho nhiều phiển bản khác nhau và có thể một số game khác nữa, với dragonica thì nhìn chung chỉ có địa chỉ các lệnh là khác nhau tùy phiên bản còn lại cách thức thì vẫn như trên ( tất nhiên trừ khi admin add thêm cơ chế server check
) hehe
have fun!
ADMIN viết - Trích dẫn :
- Cảm ơn bạn đã HD nhưng người VN luôn sử dụng của người khác bạn ạ và đở tốn thời gian