Tài năng lập trình đáng ngưỡng mộ của Phan Văn Trường với sản phẩm Bot tài xỉu

0:45 27/07/2024

Vừa qua, Phan Văn Trường – sinh viên chuyên ngành Phát triển phần mềm FPT Polytechnic Hà Nội đã sáng tạo ra một phần mềm Bot tài xỉu chẵn lẻ. Đây là một công việc mà Trường tình cờ nhận được trên cộng đồng MMO. Nhờ các kiến thức được học ở trường, cậu bạn đã hoàn thành một cách xuất sắc. 

Đây là tool bắt 1 phần data chức năng của game từ server game gửi về client game. Để làm được như vậy, có 2 cách: một là làm 1 client fake client gốc; hai là vì client và server hoạt động dựa trên giao thức TCP, IP và Port, ta có thể viết fake Socket từ đó phân tích byte gửi về, từ đó có thể viết ra được các hàm mã hóa theo từng kiểu dữ liệu đọc khác nhau.

Và Trường đã chọn chọn cách thứ nhất fake client dựa trên mã nguồn mở từ 1 game khác. Để thực hiện điều này, dưới đây là các công cụ hỗ trợ cậu bạn:

  • IDA Pro + IL2CPPDUMPER: đây là 2 công cụ hỗ trợ lẫn nhau dump AssemblyGame.dll (mã hóa IL2CPP) disassemble phân tích, lọc data dựa trên mã máy, xem code đã được dịch lại (để đọc hiểu, người dùng phải hiểu 1 chút về C++ và Hex Array)

  • Visual Studio 2019: Hỗ trợ viết form Quản lý tài khoản, thống kê và request lên web, viết thêm event.
  • dnSpy: dùng để debug.

  • Unity: Hỗ trợ viết client fake 1 cách đơn giản nhất dựa trên cấu trúc của game bản gốc dựa trên mã nguồn phân tích tại IDA PRO
  • Wireshark: Công cụ in ra các data gửi và nhận thông qua các kết nối (Kết quả thu về có thể xem mà mã hoặc các status đã được mã hóa trước khi gửi đi hoặc trước khi nhận)

Để giao tiếp Form và Client fake đã tạo, Trường lựa giao thức socket với IP local và port tùy chọn. Giao tiếp giữa Form và web dựa trên phước thức POST lên trên API endpoint do bên dev cung cấp.

Cơ chế bot nhận tất cả các giao dịch từ người chơi khác với object bao gồm: index lựa chọn bên muốn cược kèm theo số tiền người chơi muốn cược time nhận giao dịch. Vì bot chưa được tối ưu nên sức chứa dưới 2000 lượt giao dịch 1 lúc.

Sau khi có kết quả từ server trả về thì xét các phần tử trong list nhân vật đã add. Trường hợp khác với kết quả, hệ thống sẽ remove các nhân vật đó và giữ lại các nhân vật đã thắng cược chuyển qua chế độ trả trả tiền (vấn đề này rất hay dễ bị bug nên phải thật kỹ phần bất đồng bộ). Mỗi khi sự kiện diễn ra, client sẽ gửi toàn bộ các hoạt động bot làm việc lên trên form để tránh các trường hợp như ăn vạ người ôm bot sẽ có bằng chứng để chứng minh.

Mặc dù đây không phải là phần mềm quá chuyên nghiệp nhưng đã giúp Trường vận dụng thành thạo những kiến thức cơ bản và hữu ích từ việc học trên lớp. Cậu bạn chia sẻ: “Mình cảm thấy bản thân cần học hỏi nhiều thêm về cách tối ưu cũng như các thuật toán tối ưu, tránh các tình trạng delay, giật lag, đặc biệt là tràn bộ nhớ dẫn đến tình trạng Crash”.

Trong tương lai, Văn Trường mong muốn có thêm môi trường học ngôn ngữ python vì đây là ngôn ngữ công nghệ mới nhất, có nhiều thư viện hỗ trợ nhất, tối ưu về tốc độ xử lý, tiêu tốn ít bộ nhớ. Đây cũng là ngôn ngữ có code đơn giản, tối ưu, dễ đọc dễ hiểu và có thể sử dụng trên đa nền tảng không thua kém gì java.

Đồng thời, cậu bạn sẽ thiên về mảng auto tự động, hạn chế nhất các thao tác thủ công của người dùng.

Giảng viên Nguyễn Tùng Dương nhận xét: “Sản phẩm đã áp dụng được kỹ thuật lập trình khá tốt. Các dự án tiếp theo nên triển khai về những đề tài có đóng góp tích cực cho xã hội”.

Văn Trường là một sinh viên có niềm đam mê lớn với lập trình phần mềm. Mong rằng trong tương lai, Trường sẽ giữ được ngọn lửa đam mê và mang đến những sản phẩm chất lượng và ý nghĩa.

Giảng viên Nguyễn Tùng Dương
Bộ môn Ứng dụng phần mềm
FPT Polytechnic Hà Nội

Hỗ trợ tư vấn và giải đáp thông tin tuyển sinh FPT Polytechnic

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2026

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.