Pham_loi
Chức vụ: 08:48:57, 02-08-2015 |
Cái này mình seach trên google, thấy hay nên seach cho ae. Một điều lưu ý là cái này để vh trên pc
Phần 1:Mã hóa ảnh đơn
Các bạn đã từng Việt hóa game,chắc không ít lần gặp các dạng file ảnh được mã hóa dưới nhiều dạng file kì lạ(thường là dạng không đọc được).Với bài viết này của mình hi vọng sẽ giúp đỡ các bạn được phần nào khó khăn trong việc xử lý các file ảnh trong game java.
Bước 1:Xác định được file ảnh mã hóa.Cần 1 chút kỹ năng nhỏ khi các bạn chạy game trên giả lập.Ở đây mình dùng KEmulator.Các bạn khởi chạy game sau đó chọn View->Log để hiển thị bảng LogFrame
Bảng này sẽ hiển thị tất cả các file được gọi để chạy ứng dụng java.Các bạn để ý kỹ các file đang chạy và có thể xác định được file ảnh được load từ đâu:
Ở đây mình xác định được là file menu.pak (cần 1 chút kỹ năng nhỏ để xác định nhanh hơn là bạn xem tất cả file ảnh định dạng chuẩn trước thường là PNG bỏ qua các file đó và chỉ sẽ các file lạ)
Bước 2:Sau khi đã xác định được file ảnh bị mã hóa rồi.bạn hãy mở nó lên bằng Notepad
Để ý những dòng ký tự đầu tiên
Ở đây sẽ có một số dạng mã hóa sau:
1.Mã hóa ảnh đơn kiểu 1:
Đây là dạng mã hóa đơn giản nhất và dễ xử lý nhất.Khi bạn mở file = notepad và thấy file có dạng sau
Chú ý:những ký tự đầu và cuối nếu giống như trên ảnh thì bạn có thể hiểu rằng file mã hóa đơn thuần thì là ảnh định dang PNG và được xóa đuôi đi thôi.
Công việc của bạn lúc này chỉ là thêm đuôi .png vào sau file và tiếng hành chỉnh sửa.Sau đó lại xóa đuôi file đi để cho vào game.
2.Mã hóa ảnh đơn kiểu 2:
Dạng mã hóa này có phức tạp hơn 1 chút.
Bạn thấy ký tự đầu dòng không phải là ‰PNG mà còn thêm 1 vài ký tự đặc biệt.
Lúc này bạn hãy mở file bằng chương trình dịch mã hex như AXE3 hay HxD(ở đây mình dùng HxD)
Bạn nhận thấy phần bôi đen chứ? Nó chính là phần ảnh thuần PNG.Còn dãy số phía trước có nó ý nghĩa gì?
Nó chính là mã hex chỉ tổng ký tự của file ảnh được nó mã hóa Ở đây là 121 ký tự.Bạn có thể xóa nó đi để đưa về dạng ảnh thường.Sau khi thao tác bạn cần xem lại tổng số ký tự mã hex của file ảnh đã chỉnh sửa là bao nhiêu thêm 1 giá trị và điền nó vào đầu file ảnh.Ta sẽ được file ảnh mã hóa theo dạng cũ
120 1=121 vậy ký tự điền vào thêm là: 01 21
3.Mã hóa ảnh đơn kiểu 3:
Đây là dạng mã hóa phức tạp nhất và cũng gặp nhiều nhất
Bạn thấy ký tự chuẩn của file ảnh PNG là :‰PNG nằm ở 1 vị trí"vô cùng xa xăm".Chuỗi ký tự kết thúc cũng vậy.Xử lý nó thế nào đây
Cần 1 chút tinh ý từ các bạn.Sau khi nhìn tổng thể chuỗi mã hóa của ảnh trên.Chắc hẳn các bạn sẽ để ý ngay tại sao chuỗi kết thúc lại nằm sát chuỗi mở đầu.Phải chăng ảnh này được"tráo đầu đuôi".
Chính xác là như vậy!
Bây giờ hãy xem những ký tự mã hóa đầu file nhé
Dãy ký tự bôi đen chỉ là đoạn mã để các class nhận đây là file ảnh.Với mỗi game mỗi khác nên chúng ta không cần quan tâm.Phần tô vàng chính là mã hóa đảo file của ảnh.
Các bạn tạo 1 file mới:chép phần từ"‰PNG" đến cuối file vào,sao đó chép phần còn lại ở phía trên từ chuỗi ký tự"IEND®B`‚" đến sau phần tô vàng.Lưu file lại chúng ta sẽ có được file ảnh lúc chưa mã hóa.
Sau khi đã chỉnh sửa thỏa thích với file ảnh rồi thì bạn có thể tiến hành mã hóa ngược lại với các bước đã làm trên.
Mở ảnh bằng chương trình dịch HEX.Kiểm tra số tổng ký tự như bước trên.Ở đây mình vẫn dùng con số 121
Chia đôi số này ta được 90.5 (chia theo hệ 16 đấy nhé), vậy ta sẽ chia file làm 2 phần 90 và 91 ký tự.Tạo 1 file hex mới chép đoạn mã hóa chuẩn từ file cũ vào sau đó chèn lần lượt 2 dòng 90 00 00 00 và 91 00 00 00 vào
Sau đó bạn chép 91 ký tự cuối cùng của file ảnh vào,tiêp đến 90 ký tự đầu tiên vào.Lưu file lại với tên cũ là ta đã tiếp hành xong
Còn 1 số dạng nữa nhưng nó chỉ là biến thể đơn giản của kiểu 2 và kiểu 3.Các bạn có thể dễ dàng suy luận ra
Phần tiếp theo sẽ hướng dẫn về mã hóa ảnh kép và nhiều hơn. Phần 2:Mã hóa ảnh kép
Đối với các bạn đã việt hóa game nhiều,chắc hẳn sẽ không lạ lẫm với những game có file ảnh bị mã hóa tổng (tạm hiểu là mã hóa nhiều ảnh trong 1 file).Với những file dạng này chúng ta sẽ phải tách từng file ảnh ra để chỉnh sửa sau đó lại đóng gói như cũ.
Nhắc lại 1 chút về cấu tạo file PNG
Để xác định được rõ một ảnh nằm trong toàn bộ file là những đoạn ký tự nào,chúng ta phải hiểu rõ được dãy ký tự bắt đầu và dãy ký tự kết của 1 file PNG chuẩn (Đoạn bôi màu vàng ở hình)
Quy đổi mã HEX
‰PNG=89 50 4E 47 (4 ký tự)
....IEND®B`‚ = 00 00 00 00 49 45 4E 44 AE 42 60 82 (12 ký tự)
Nhớ rõ được điều này các bạn sẽ dễ dàng xác định được khu vực làm việc của mình là ở đâu.
Tiếp theo chúng ta sẽ làm quen với các dạng mã hóa:
P/s:Việc xác định file ảnh bị mã hóa ở đâu thì các bạn xem bài 1 nhé
Dạng 1:Mã hóa thuần
Đây là dạng thường gặp nhất và cũng là đơn giản nhất
Với file này bằng mắt thường (ý mình là có thể phát hiện nhanh) ảnh đầu tiên trong file bị mã hóa (màu xanh).Việc bạn cần làm là copy phần bôi đen này sang 1 file mới (Vẫn bằng chương trình dịch HEX nhé) sau đó lưu file lại với định dạng là .png (các bạn có thể dùng theo thứ tự 1.png;2.png;... để dễ phân biệt ).Tương tự với các ảnh tiếp theo ở trong file.
Sau khi thu được những bức ảnh riêng lẻ rồi.Việc làm tiếp theo phụ thuộc vào khả năng PTS của bạn.(Cố làm đẹp chút nhé)
Khi đã xong các bước chỉnh sửa ảnh,việc cần làm là mã hóa lại như cũ. (Đây mới là việc cần bàn chính đây).
Đối với file mã hóa gốc,Trước tiên bạn hãy để ý trước mỗi đoạn ký tự của file ảnh có những ký tự lạ gì. (Thường là 2 ký tự).Với file trên các bạn có thể thấy được đó chính là ký tự mã hóa độ dài chuỗi.
Bây giờ bạn hãy mở file ảnh đã chỉnh sửa và xem nó chứa bao nhiêu ký tự (ví dụ ở đây là B0).Bạn chép toàn bộ ký tự hex của file đã chỉnh sửa và chèn lên đoạn hex mà bạn xác định là file ảnh cũ.(Phần bôi màu xanh).Sau đó bạn thay chuỗi00 A5 =00 B0.Đây là đã thao tác xong với ảnh đầu tiên của file.Lần lượt với các bức ảnh tiếp theo.(Lưu ý nhé:nếu bạn việt hóa ảnh thì phải nhớ vị trí file chỉnh sửa nằm ở đâu (tốt nhất hãy ghi lại vị trí bắt đầu và kết thúc của từng ảnh ra 1 tờ giấy để tiện the dõi).
Sau khi bạn đã thay thế những ảnh chỉnh sửa vào file gốc.Bạn hãy bôi đen toàn bộ file(Ctrl A cho nhanh )
Bạn hãy xem file sau khi thay thế những ảnh chỉnh sửa,độ dài bị thay đổi như thế nào.(Ví dụ sau khi thay thế ảnh sẽ có68DC7 ký tự).Bạn hãy thay chuỗi ký tự đầu của file gốc00 05 CE D8 =00 06 C7.
Lưu file lại chúng ta sẽ thu được file mã hóa những ảnh sau khi chỉnh sửa.Việc bạn càn làm là cho vào game và hoàn thiện những bước Vh cuối cùng thôi.
p/s: phần này ít ảnh vì ảnh bị lỗi Phần 3: Việt hoá ảnh kép = mobile.
Đa phần ngôn ngữ game này nằm trong và mấy ảnh này đều là mã hóa kép .
trong này wu đã việt hóa file menu.bin là dạng mã hóa ảnh kép.
Wu sẽ hướng dẫn cho mọi người phá mã hóa các ảnh tiếp theo .
1. Mã hóa ảnh kép là gì?
Tức là trong 1 file có định dạng .bin, .dat hoặc ko có định dạng sẽ chứa 2 hay nhiều file ảnh .png.
Có loại ảnh kép thì nó mã hóa bytes của ảnh , có loại thì không.
2. Việt hóa loại ảnh kép này như thế nào?
Loại mã hóa bytes ảnh trong ảnh kép.
Đầu tiên các bạn phải hiểu rõ mã hex đầu đuôi của ảnh .png.
Đầu png:89 50 4e 47 0d 0a 1a 0a
Đuôi png:49 45 4e 44 ae 42 60 82
Dùng class editor cắt chuỗi hex từ đầu đến đuôi của mỗi ảnh đang chứa trong file ảnh kép . Cắt được chuỗi hex của ảnh nào thì save lại chuỗi đó . Rename mấy file đó có đuôi .png và sửa gì trong ảnh tùy bạn.
Sửa xong lại dùng class editor cắt chuỗi hex của ảnh vừa sửa paster vào file gốc.
Lưu ý: lúc nãy cắt chuỗi hex ảnh nào thì nhớ vị trí để khi sửa ảnh xong paster chuỗi hex ảnh new về vị trí cũ của nó.
quan trọng nhất phần này . Các bạn để ý trước mỗi chuỗi hex 89 50 4e 47.... Sẽ có 2 mã hex dùng để xác định dung lượng ảnh.
Ví dụ: ảnh gốc có dung lượng 1540 bytes thì trước 89 50 4e 47... Sẽ có mã hex 06 04 . Mã này sẽ có nhiệm vụ khóa file ảnh này . Vì vậy khi sửa ảnh nào thì xem bytes ảnh mới là bao nhiêu rồi đổi ra thành mã hex và thay thế vào mã hex cũ.
: 0 ♥