Hỏi/ Thắc mắc - Dịch ngược mã nguồn game? | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hỏi/ Thắc mắc Dịch ngược mã nguồn game?

TheDoctor

Búa Đá
Chào mọi người, mọi người cho em hỏi việc dịch ngược mã nguồn của game online, hoặc bất kì phần mềm gì, thì bắt đầu từ đâu? Em muốn tạo 1 server game riêng để chơi với 1 cộng đồng nhỏ thôi (chứ k phải để kiếm tiền đơn giản vì em làm vì đam mê là chính và game này k phải game nạp card p2w nên cũng chả mong kiếm $ được). Game này đã đóng cửa 10 năm rồi, và đóng cửa trên toàn cầu nên không có hi vọng để tìm được server ở nước ngoài. Em có tìm hiểu thì đa số mọi người tìm mã nguồn server hoặc mua lại nhưng có vẻ k có nguồn leak ra nên k mua lại được (trước ở VN-Z cũ cũng từng có mấy thread tìm hiểu về việc hồi sinh game online này nhưng có vẻ như vô vọng, 1 phần vì những bạn chơi game này hồi đấy cũng đa số là học sinh, sinh viên nên kiến thức về lập trình gần như là không có hoặc chưa đủ để đến mức mà hồi sinh lại game), còn 1 khả năng nữa là dich ngược lại. Nhưng theo em biết đa số trường hợp là vẫn có server hoạt động rồi sau đó lấy dữ liệu gửi từ server kia, còn trường hợp này thì không còn server nữa mà chỉ còn client thì không biết là sẽ dịch ngược lại như thế nào ạ? Em cảm ơn.
 

NgoHungCuong


Junior Moderator
Thành viên BQT
Khi bạn hỏi những câu hỏi như vậy thì cá nhân mình nghĩ bạn sẽ khó làm đc việc bạn đang tìm cách làm.
 

TheDoctor

Búa Đá
Khi bạn hỏi những câu hỏi như vậy thì cá nhân mình nghĩ bạn sẽ khó làm đc việc bạn đang tìm cách làm.

Dạ thật sự em không biết nên bắt đầu từ đâu để làm việc này ạ, tại vì em chưa tìm thấy trường hợp nào tương tự nên k biết nên làm như thế nào.
 

NgoHungCuong


Junior Moderator
Thành viên BQT
Dạ thật sự em không biết nên bắt đầu từ đâu để làm việc này ạ, tại vì em chưa tìm thấy trường hợp nào tương tự nên k biết nên làm như thế nào.
Dịch ngược thì bạn phải xem game viết bằng ngôn ngữ gì.
Tùy vào ngôn ngữ mà sẽ có công cụ tương ứng.
Thông thường thì sẽ là mấy công cụ như IDA, x64dgb, dnspy,.... và còn thêm những công cụ nữa tùy vào thực tế.
 

ruoitrau

Búa Đá Đôi
Không sử dụng phương pháp dịch ngược đc đâu. 1 chương trình hay Game nó cả triệu dòng code, ko đọc ngược đc đâu. De-code game thì thường các hãng có chia sẻ phương pháp đóng gói, de-code này để tìm lỗi game.
Còn bạn muốn gây dựng lại cộng đồng game cũ mà bạn đã chơi, tốt nhất bạn nên tham khảo các diễn đàn game nước ngoài để kiếm Source code của game cũ rồi từ đó mà phát triển tiếp. Rất nhiều game onl cũ đã chia sẻ source cho cộng đồng chơi game. Cái này phải chịu khó tìm kiếm thí sẽ ra.
Tr cộng đồng vn-zoom từng gây dựng lại game Cửu long tranh bá, bạn có thể tìm lại để tham khảo cách làm.
Thân
 

TheDoctor

Búa Đá
Không sử dụng phương pháp dịch ngược đc đâu. 1 chương trình hay Game nó cả triệu dòng code, ko đọc ngược đc đâu. De-code game thì thường các hãng có chia sẻ phương pháp đóng gói, de-code này để tìm lỗi game.
Còn bạn muốn gây dựng lại cộng đồng game cũ mà bạn đã chơi, tốt nhất bạn nên tham khảo các diễn đàn game nước ngoài để kiếm Source code của game cũ rồi từ đó mà phát triển tiếp. Rất nhiều game onl cũ đã chia sẻ source cho cộng đồng chơi game. Cái này phải chịu khó tìm kiếm thí sẽ ra.
Tr cộng đồng vn-zoom từng gây dựng lại game Cửu long tranh bá, bạn có thể tìm lại để tham khảo cách làm.
Thân

K biết thím có thể cho em nguồn được không ạ, trước đó em thử tìm trên Ragezone với CLBGamesVN rồi nhưng không có kết quả, bên CLBGamesVN trước cũng có topic hỏi server rồi nhưng cũng thấy trả lời là không có nên em mới chọn giải pháp này
 

TekMonts

Búa Đá Đôi
Khẳng định với bạn một điều là dịch ngược mã nguồn game để làm server là không thể.
Những server bạn thấy đều là source được bán/leak ra.
Tất nhiên bạn có thể dùng tool debug để hiểu các function, how it work rồi phát triển cho riêng mình một con game mới hoặc tương tự dựa trên open source có sẵn.
 

moewmoew

Gà con
Mình muốn nói là dịch ngược cực kỳ khó. Không phải dễ. Chưa kể việc giả lập server càng khó hơn nữa. Tuy nhiên đây là lộ trình nếu bạn muốn.

0. Học thật rành lập trình. Khi bạn lập trình được một con server game đàng hoàng, bao gồm database, kiến trúc, triển khai ok này nọ thì hãy tới các bước sau. Bạn có thể xem ở đây: https://github.com/miloyip/game-programmer
1. Học assembly ở mức hiểu được source code. Không cần code cũng được. Dịch ngược bạn hiểu được mã assembly là được. Cụ thể ngôn ngữ assembly bạn cần ở đây là intel x86, intel x86-64
2. Sau khi có căn bản assembly thì đọc cuốn này: https://beginners.re/ sẽ có tổng quan về dịch ngược
3. Khi dịch ngược, bạn sẽ gặp những trường hợp làm rối code (obfucation) hoặc bị nén, ẩn giấu chương trình đi (packing). Khi này bạn phải học về cách unpack, cách gỡ rối.
4. Biết dịch ngược không là chưa đủ. Bạn phai học về kỹ thuật dịch ngược. Khi dịch ngược game, thường sẽ gặp 2 cách phân tích binarry đi kèm đó là dynamic và static analysis. Học về 2 kỹ thuật này. Dùng tool gì, cách trace source code như thế nào.
5. Khi dịch ngược, bạn sẽ cần thay thế code của game. Gọi là patching. Như game đang trỏ ip 1.1.1.1. Server của bạn là 2.2.2.2. Thì bạn cần thay 1.1.1.1 thành 2.2.2.2! Làm điều này như thế nào thì lúc này sẽ cần học về kỹ thuật patching, hooking, v.v
6. Khi này thì bạn đã nắm tốt cách dịch ngược và phân tích file game rồi. Tiến hành thôi.

:) Về việc làm server game từ dịch ngược là không hiếm. Như Maplestory server lậu hoàn toàn được code từ dịch ngược + packet analysis chứ chả có leak ở đâu cả. Tất nhiên việc này sẽ tốn hàng tháng hoặc hàng năm trời đề hoàn thành rồi.

Thường để giả lập server game. Các dev sẽ phân tích gói tin được gửi đi và xem coi client mong chờ các gói tin hồi đáp như thế nào. Từ đó làm một con server giả lập việc nhận + trả gói tin y chang vậy.

Chúc bạn thành công với việc giả lập server game của bạn. <3
 

BillGate

Gà con
chả có cái công nghệ nào dịch ngược game client ra server đâu mà mơ nhé
 


Top