Crazy Games cheat

minh-hoa

Gần cuối dự án nên mình cũng rảnh hơn một chút, nên lên hỏi Chatgpt về game Idle nào hay để chơi giải trí một tí không, được nó đưa đến trang Crazy Games, giới thiệu qua 1 chút để có nhiều chữ thì "Crazy Games là một nền tảng chơi game trực tuyến miễn phí, cung cấp hàng nghìn trò chơi đa dạng từ hành động, mô phỏng, giải đố, đến thể thao. Người dùng có thể chơi ngay trên trình duyệt mà không cần tải về, rất tiện lợi và phù hợp cho mọi lứa tuổi.", mình vừa copy từ AI ra

Mình chọn thử 1 game Mage Tower Idle Defense để chơi thì thấy nó cũng ổn chơi cũng vui

minh-hoa

Mage Tower Idle Defense là một game chiến thuật nhàn rỗi trên Crazy Games, nơi bạn nhập vai pháp sư bảo vệ tòa tháp khỏi những đợt quái vật tấn công. Người chơi có thể mở khóa phép thuật mạnh mẽ, nâng cấp rune và kỹ năng, hoàn thành nhiệm vụ hàng ngày để tăng sức mạnh ngay cả khi không trực tuyến. Game được phát triển bởi JellyBeans Studios, chơi trực tiếp trên trình duyệt, không cần tải về.​

Biết là chơi game trong giờ làm việc là không đúng, nhưng hôm nay ở đây chúng ta trao đổi học thuật, cụ thể là cheat vì cái game này nếu chơi tử tế phải cày cuốc cực kì mệt nên là mình không đủ kiên nhẫn mặc dù là game Idle 😢

minh-hoa

Sau khi chơi vài ván thì theo thói quen nghề nghiệp mình mở Inspect lên để nghiên cứu qua qua 1 chút về trò chơi thì thấy như sau

minh-hoa

Game chạy trong 1 cái domain khác "play.jellybeansstudios.com" qua iframe, nó tải thêm

sau đó refresh trang 1 lần để tìm kiếm thông tin thấy

một thông báo ở console

minh-hoa

vậy có nghĩa là data của game đã được tải ngay khi mình vừa load lại trang rồi

dò đến request tìm kiếm thử thì thấy có 1 request

minh-hoa minh-hoa

mình copy url đó dùng fetch trong console để xem thử nội dung

minh-hoa minh-hoa

Bên Storage thì thế này

minh-hoa

Giải mã base64 thì sẽ có nội dung đọc được nhưng ta sẽ chỉ tập trung vào mấy trường như gold, souls, gems ở đây thôi nhé

{"Id":"gold","Type":"Currency","Balance":"AAAAA"},{"Id":"souls","Type":"Currency","Balance":"BBBBB"},{"Id":"xp","Type":"Experience","Balance":CCCCC},{"Id":"gems","Type":"Currency","Balance":"DDDDD"},{"Id":"level","Type":"Experience","Balance":EEEEE},}

Giờ phân tích lên kế hoạch gian lận 1 chút nào: trước mắt thì mình thấy có 2 cách,

Mình sẽ làm bằng cách 1 trước, bằng 1 chút nghiệp vụ mày mò, mình vào xem file game sdk trước

minh-hoa

Đọc được vài thông tin "Cloud data missing but has local data, initialize with local data", "Cloud data and local data missing, initialize with empty data", mình đoán được sơ sơ phần if bên trên liên quan đến data của game nên mình đặt breakpoint ở đó và khởi động lại game

sau khi dừng ở breakpoint, mình kiểm tra trước

minh-hoa

copy phần base64 ra decode sau đó sửa souls thành 999667327 rồi decode base64 lại và copy chuỗi đó

minh-hoa

Tiếp theo gán lại giá trị vào bộ nhớ, sau đó cho chạy

minh-hoa

minh-hoa

Chúc mừng, game đã bị cheat thành công, và hoàn toàn được đồng bộ vào dữ liệu, tương tự thì mấy giá trị còn lại thì làm tương tự

Cách 2 để cheat thì đơn giản hơn, không cần mày mò code để hiểu vì một lúc sẽ có 1 request gửi dữ liệu đồng bộ với server

minh-hoa

Ta sẽ dùng công cụ để bắt request đó, sửa nó trước khi nó được gửi đi, ở đây mình dùng Burp Suite, bật Intercept chỉnh sửa request đó, sau khi sửa xong và ấn Forward thế là hoàn thành

minh-hoa

Mình cũng đã làm được với vài game khác bằng cả 2 cách

minh-hoa

tại mình chỉ chơi game idle nên chỉ có thu thập rồi nâng cấp không nên cũng chả có gì

minh-hoa