Hacking Flappy Bird for fun

Bạn muốn được bao nhiêu điểm ?

Trên iOS, Flappy Bird được cài ra 1 thư mục có cấu trúc như sau

2

Trong đó, ta lưu ý trong thư mục Documents, có 1 file mà ta rất dễ đoán được ý nghĩa có nó, đó là file score.dat. Đây là file dùng để lưu điểm mà người chơi đạt được.

Hãy cùng khám phá file score.dat này.

3

Hơi buồn 1 chút là tác giả không để định dạng text mà là 1 dạng binary. Không vấn đề gì, ta sẽ view file dưới dạng mã Hex (16)

4

Qua một vài lần chơi và kiểm tra lại file score.dat, ta sẽ đoán được 4 bytes đầu là dành để lưu điểm số, 4 byte tiếp theo là dành để ghi lại số lần từng chơi. Ví dụ trong hình trên, số điểm là 0A hệ số 16, tức là 10 điểm hệ thập phân, số lần chơi là DF lần, tức là 223 lần chơi (chơi từng đấy lần mà được có 10 điểm, quá kém nhỉ).

Bây giờ muốn điểm chơi thành bao nhiêu thì ta sẽ sửa 4 bytes đầu ở score.dat. Ví dụ tôi muốn sửa điểm chơi thành 898 điểm. Chuyển sang hệ số 16, 898 sẽ là 0382. Vì máy của chúng ta lưu trữ dữ liệu theo kiểu “little edian” nên ta sẽ ghi vào file score.dat như hình dưới

5

Và điểm chơi của bạn trên game sẽ như thế này

6

Game Atlas – Độ chim theo cách của bạn

Toàn bộ đồ họa của game nằm trong file Atlas.png

atlas

Như vậy ta thấy sẽ có 3 loại chym, 2 loại ống khói và 2 hình backgroud hiện ngày và đêm. Mỗi 1 lần chơi thì game sẽ random với chym, ống khói và backgroud.

Để load được các đối tượng từ Atlas.png, tác giả có tạo ra 1 file Atlas.txt đi kèm. File .txt sẽ chỉ rõ từng đối tượng trong file .png ở tọa độ nào

8

Trong hình dưới đây là đoạn code của Flappy Bird viết cho phiên bản android để load các đối tượng vào game

7

Vì vậy, nếu muốn thay đổi đồ họa của game, bạn có thể edit file Atlas.png. Ví dụ bạn có thể “độ” chym 1 chút để tạo ra 1 phiên bản Flappy Bird with sunglasses.

Giờ để ý thêm trong file Atlas.txt. Bạn sẽ thấy có đoạn định nghĩa về các ống nước.

9

Ta sẽ thử tạo ra 1 phiên bản game mới, “dễ chơi” hơn bằng cách làm hẹp các ống nước lại, để chym lọt qua dễ hơn.

11

 

Dù sao cũng nên cẩn thận với các game tải từ nguồn không chính thống

Hiện Flappy Bird không còn ở trên Google Play hoặc AppStore nữa, nên nếu như bạn chưa từng tải Flappy Bird từ những nguồn này thì bạn buộc phải tìm  game ở các nguồn không chính thống.

Chính vì vậy có nhiều kẻ sẽ tìm cách trục lợi bằng cách đưa lên các store những phiên bản Flappy Bird đã bị chèn thêm những đoạn mã không mong muốn đối với chúng ta.

Chẳng hạn đã từng xuất hiện các bản fake Flappy Bird có âm thầm gửi SMS tới các đầu số 87xx, để trừ tiền trong tài khoản của người dùng

10

(Nguồn Trend Micro)

Hoặc kẻ xấu có thể sử dụng 1 chiêu này mà hầu như chúng ta không thể phát hiện ra.

1

Đây là 1 đoạn code trong Flappy Bird phiên bản Android. Nếu để ý bạn sẽ thấy đối tượng thuộc lớp AdView được tạo ra dùng để hiển thị quảng cáo. Trong đó có 1 tham số là AdUnitID. Mỗi 1 ứng dụng sẽ có 1 AdUnitID riêng và ta tạm hiểu là 1 banner quảng cáo được hiện thị lên ứng với AdUnitID nào thì sẽ được tính tiền cho người sở hữu cái AdUnitID đó. Chính vì vậy, kẻ xấu có thể sẽ thay AdUnitID của Flappy Bird thành AdUnitID của 1 ứng dụng khác của hắn. Thế là từ đây, mỗi khi chúng ta sử dụng fake Flappy Bird đó mà quảng cáo được hiển thị, thì tiền có thể không nhảy vào túi Hà Đông, mà nhảy vào túi người khác.

One thought on “Hacking Flappy Bird for fun

Leave a Reply

Your email address will not be published. Required fields are marked *