Cách giải mã một file bị mã hóa trong java?


(Ngô Quang đạo) #1

Em xin trình bày như thế này:
Có một game java online đã ngừng hoạt động, em muốn lấy ảnh của game để sử dụng.
Nhưng mà mọi file trong game trừ .class thì đều bị mã hóa thành đuôi .an. Em tìm hiểu thì mọi người bảo là do lập trình viên khi code game họ đã mã hóa, và em hỏi là có giải mã được file này ra không ạ?
Em muốn lấy ảnh của game đó!


(Phạm Tiến Đạt) #2

Nếu hên thì đổi extension ra là được
xui thì đọc các byte của file đó rồi write ra file khác :slight_smile:


(Ngô Quang đạo) #3

Đổi extension là gì ạ? Và đọc các byte của file đó rồi write ra file khác là gì ạ? Anh có thể giải thích rõ được không ạ?


(Phạm Tiến Đạt) #4

kiểu như là từ file oof.jpg -> rename -> oof.png

khi chúng ta mở 1 file text thì Windows sẽ đọc các byte của nó rồi dùng app thích hợp theo extension (notepad) để hiện nó ra. Nếu file nó không thể mở được thì có 2 cách :

  1. Thay extension của file
  2. Tạo 1 file code đọc các byte của file đó rồi write ra file khác

Trong quá trình sử dụng app nào đó thì user cảm khá là phiền khi bạn yêu cầu họ đổi extension của file nào đấy thì khi đó cách 2 có tác dụng. Thực ra chỉ write ra file khác khi nào cần xem content của file thôi :

ứng dụng : soundtrack trong game (dev sẽ download các byte của file mp3 trên internet -> viết code đọc các byte đó -> stream dòng byte đó thành âm thanh của soundtrack

Còn nếu mà làm thông thường như xem content của file ngay lập tức thì cách 1 là đủ

Có gì sai thì các anh chị sửa giúp em :slight_smile:


(SITUVN.gcd) #5

Rất nhiều ứng dụng dùng định dạng ZIP để nén dữ liệu, nhưng họ thay đổi đuôi tập tin khác (.zip) đi.
Mình đã gặp trường hợp đuôi .zip được đổi thành .png :smirk::smiling_imp:.
Trước hết bạn thử mở nó bằng các chương trình mở nén (WinRAR, 7Zip,…) nếu nó mở được thì lấy được dữ liệu rồi.
Cũng có thể nó là hình ảnh thì sao, (đổi đuôi) mở bằng trình xem ảnh, tốt nhất là trình xem ảnh hỗ trợ nhiều định dạng (jpeg, png, bmp, tga,...)

Nếu 2 cách đó không được thì thực sự nó được mã hóa theo cách khác rồi. Chỉ còn cách (chắc chắn nhất) là dịch ngược mã java (.class) để xem thuật toán mã hóa/giải mã như thế nào. Và có thể dùng chính nó (tập tin .class) để giải mã nội dung bạn cần.

Hiện giờ, các công cụ hỗ trợ dịch ngược có rất nhiều, bạn tự tìm.


(Ngô Quang đạo) #6

mọi cách khác đều không được ngoại trừ giải mã file class. Nhưng mình lại không biết tý gì về java hihi!


(doãn chí bình) #7

trước cũng tập tành mod game java trên s40, người viết game họ nén hàng loạt ảnh vào 1 file ko có đuôi luôn (thêm đuôi .zip hay .rar cũng ko giải nén ra đc). nhưng các anh mod game lại code ra 1 app chỉ cần chọn vào file đó là tự động unpack ra 1 loạt ảnh… mod xong cũng phải dùng chính app đó pack lại thì mới chạy dc game :v hay cực :v


(Ngô Quang đạo) #8

Vậy cho em hỏi một game sập rồi còn cách nào tạo sever khác không ạ. Giả sử mình build ngược được game đó ra 100%, Liệu có tái sinh được nó không ạ?


(SITUVN.gcd) #9

Có thể được, nhưng không đơn giản đâu. Vấn đề nằm ở máy chủ (server), ở đó mới chứa những thứ cốt lõi của một trò chơi trực tuyến đấy.


(Ngô Quang đạo) #10

Nhung sever dong cua roi a?


(Trần Hoàn) #11

Code không phải cái quan trọng nhất mà là data.
Cũng như rất nhiều game online khác, người ta cũng chạy các server lậu, cũng có người chơi nhất định, nhưng gọi là “tái sinh” thì không hẳn, game sống dặt dẹo cho một nhóm nhỏ người chơi với nhau thôi, vì phần data của game chính thức coi như không còn, không có cách nào để tiếp cận với người dùng phổ thông.


(Ngô Quang đạo) #12

Vâng ý em cũng như tạo một sever lậu đó ạ! Anh có thể nói cho em cách tạo sever và kết nối data được không ạ?


(Trần Hoàn) #13

Cái này thì mình không rõ, vì mỗi app một kiểu :sweat_smile:
Bản chất của server là khi chạy app, app đăng ký một số port. Thiết bị nào truy cập vào port đó của server thì sẽ tạo một connection. Nếu là client của app đó thì thông tin trao đổi trên connection đó 2 bên sẽ giải mã được và hiểu được.

Người chạy server phải có mã nguồn hoặc file thực thi (.exe, .jar, .dll gì đó) để chạy app phía server, ngoài ra có thể có các file config để tuỳ chỉnh. App ở phía client truy cập vào server theo port đó thì kết nối được với nhau.

Còn mỗi app phía server lại code một kiểu, có app buộc bạn phải dùng loại database này nọ, có app thì chỉnh trong file config thế nào thì nó connect đến loại database đó. Rất đa dạng nên mình chỉ có thể nói chung chung.


(Ngô Quang đạo) #14

Vâng, vậy là không thể rồi :frowning:


(Trong Hieu Nguyen) #15

Hình game free trên mạng thiếu gì, rip asset làm gì mất công rồi ko xài đc.


(Ngô Quang đạo) #16

Sao lại không sài được ạ?


(Trong Hieu Nguyen) #17

Có phải của mình đâu mà xài. Nó kiện ngược rồi mất công.


(Ngô Quang đạo) #18

Nó phá sản lâu rồi bác ạ? ai kiện.


(Trong Hieu Nguyen) #19

Phá sản không có nghĩa là tài sản của công ty thành của chung cho public.

Sau khi công ty phá sản thường phải thanh lý tài sản công ty, thường là để trả nợ. Chủ nợ này sẽ có thể là cá nhân, 1 công ty khác hoặc ngân hàng. Họ không sử dụng đến cũng không có nghĩa là mình được sử dụng, trừ khi họ release asset cho public domain với licence rõ ràng.

Bạn rip asset để làm thử game cho vui thì không sao, chứ đã có ý định thương mại hóa thì kiểu gì cũng bị dòm ngó.

Bạn nên tìm hiểu thêm về quyền sở hữu trí tuệ nếu như thật sự muốn làm lâu dài và nghiêm túc trong nghành software.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?