Em chào mọi người.
Chẳng là em mới biết có một trò chơi tên là TFT( Teamfight Tactics ) nằm trong Client của Liên minh huyền thoại.
Trò chơi tương đối hay nhưng lại có quá nhiều thứ phải học để có thể chơi tốt hơn.
Em mới lên mạng search cách chơi thì thấy có một vài App khi tải về sẽ có thể hỗ trợ mình ( real-time ) trong game. Như là giúp mình chọn đội hình tốt, giúp mình chọn item cho các quân cờ, thông báo đối thủ tiếp theo là ai… Đại khái là nó có thể can thiệp được vào trò chơi. Em nhớ ra trước kia League of Legends cũng có những phần mềm tool hack có thể can thiệp vào game giống như vậy.
rồi Các game của Tea Mobi cũng hay có các bản hack crack, mode game do Quyết Đại K làm cho anh em 9x được chơi free.
Tuy hiện tại chưa có đủ khả năng và thời gian vì còn đang học đại học và đi làm thêm nhưng em rất muốn biết cách làm sao để có thể tạo được những phần mềm như vậy. ( vì em đang muốn thử làm một app suppport chơi TFT nhưng khi có ý tưởng và làm xong database lại không biết làm sao để can thiệp được vào nên không biết viết phần mềm kiểu gì).
Mọi người có thể giải thích và chỉ cách cho em được không ạ. Liệu có liên quan gì đến API mà ứng dụng trả ra không ạ ( em thấy google có nhắc ).
Em cảm ơn mọi người nhiều ạ
Tò mò về ứng dụng bên thứ 3 can thiệp vào các ứng dụng giữa nhà phát hành và người dùng
Một sô game có API, tận dụng nó để mod game ví dụ như GTA (Tại sao script lại lấy được sự kiện nhân vật trong game GTA?)
Để mod GTA cần phải biết C# hoặc Lua.
Còn game của TeaMobi mà bạn nói mình nhớ chủ bản mod có chia sẻ tài liệu mod bằng java, trong đó có giải thích lập trình socket, dùng thư viện nào, nguyên lý hoạt động, … hình như nickname là “…qua…”
Những game khác mình nghĩ cũng tương tự
muốn thay đổi cái gì thì phải hiểu nó là gì trước đã. muốn làm tool hack game thì hiểu game được làm như thế nào. chứ bây giờ có giải thích mà không có kiến thức nền thì như nước đổ lá môn thôi.
câu hỏi nên hỏi trước là bây giờ build 1 phần mềm, thì có cách nào chỉnh sửa các dữ liệu của phần mềm đó mà không cần phải build lại không?
Hack game hay mod game là một công việc khó, kể cả đối với kỹ sư máy tính. Không có công thức chung cho mọi game và cũng không có phần mềm nào có thể hack mọi game. Lý do:
- Các game khác nhau có cách thức tổ chức dữ liệu khác nhau. Kể cả cùng một tựa game, nhưng các phiên bản khác nhau cũng hoàn toàn khác nhau. (Ví dụ GTA 3 vs GTA 4).
- Game chỉ public API khi nhà phát hành game chủ đích làm việc đó, nếu họ không muốn, bạn phải tự mò mẫm về cách thức các thành phần của game hoạt động thế nào.
- Có 3 cách thức để tác động vào một chương trình.
- Một là bạn chen giữa vào các interface của game (Ví dụ giữa client và server, giữa các module với thư viện ngoài hoặc ví dụ như thay thế các dll library và tạo 1 library tương tự).
- Hai là bạn tìm kiếm xem các giá trị các biến của game được lưu ở đâu (Ví dụ như phần mềm MoneyEngine) và map các biến đó vào chương trình của bạn.
- Ba là decompile exe ra assembly, sửa rồi rebuild lại.
Để dễ hình dung cho người trái ngành, trò chơi càng phức tạp (~ kích thước trên ổ đĩa lớn) thì càng khó để tác động vào.
Nói tóm lại, nếu game không có public API, để hack hay tác động vào 1 game cụ thể cần bỏ công sức cực kỳ lớn vào nghiên cứu và có kiến thức sâu về lập trình và hệ điều hành.
Dạ em cảm ơn ạ. Em cũng đang tìm lại các tài liệu đấy.
dạ vâng, em tò mò nên cũng đã vào thư mục game để xem nhưng phần lớn các file đã bị mã hóa, kiến thức em chưa đủ để dịch ngược nó. Mong được anh chỉ bảo thêm ạ.
Em cảm ơn chia sẻ của anh ạ. Em sẽ nghiên cứu thêm dựa trên chia sẻ của anh ạ. Ví dụ từ file exe mình có biết phần mềm đó được viết bằng ngôn ngữ gì không ạ. Rồi các phần mềm được viết bằng ngôn ngữ A mình có can thiệp bằng cách sử dụng ngôn ngữ B không anh
Thông thường là không. File exe là file thực thi, nó chỉ chứa thông tin đủ để thực thi thôi.
Tuy nhiên đối với chương trình viết bằng .NET sẽ có thêm một số metadata -> biết được chương trình viết bằng .NET.
Đặc biệt đối với chương trình được viết bằng .NET, có một số phần mềm có thể dịch ngược từ exe ra source code và asset.
Bất cứ ngôn ngữ nào cũng có thể can thiệp được, miễn là nó đáp ứng được interface hoặc đọc được vùng nhớ.