[Question] Cần giúp đỡ về PE Header ! |
12/08/2012 14:35:26 (+0700) | #1 | 268332 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
Chào các anh/chị của HVAOnline, em là một mem mới của forum, em có một số vướng mắc nho nhỏ về cấu trúc PE rất cần anh/chị giúp đỡ.
Em có 1 file exe game (đã được unpack), em Việt hóa nó bằng Hex Editor (Vì Resource Hacker, Restorator hay PE Explorer đều không thấy được các text cần Việt hóa) khi độ dài chuỗi ký tự Việt hóa = độ dài chuỗi ký tự tiếng Anh gốc => game vẫn chạy và hiển thị tiếng Việt tốt. Nhưng nếu chuỗi ký tự Việt hóa dài hơn chuỗi ký tự tiếng Anh gốc 1 hoặc vài ký tự thì khi save lại: size của file tăng lên và không chạy được nữa. Em cũng đã tìm hiểu một chút về PE Header và biết em đang Việt hóa các text thuộc section .rsrc. Vậy anh/chị cho em hỏi: em insert thêm ký tự vào file như vậy có làm đảo lộn trật tự các thành phần khác trong section đó không? Có thể biên dịch lại file này để nó nhận thêm các ký tự mới thêm kia không? Và nếu biên dịch được thì file còn hoạt động được chính xác không? Mong anh/chị giải đáp giúp em nhé, hoặc chỉ cần trả lời có hoặc không thôi cũng được, để em tự tìm hiểu ^^. Em xin cảm ơn. |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
15/08/2012 15:28:36 (+0700) | #2 | 268444 |
|
xwhitelight
Member
|
0 |
|
|
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
|
|
Bạn add thêm như thế sẽ bị lỗi đấy. Để thay đổi string mà dài hơn chuỗi gốc bạn cần làm như sau:
1. Hoặc là tìm một vùng trong section toàn byte 00 có thể đảm bảo nó ko bao giờ dùng tới để ghi chuỗi của bạn vào, hoặc là add thêm 1 section data mới để ghi vào.
2. Thay đổi address của chuỗi gốc đến chuỗi của bạn.
Chúc bạn may mắn. |
|
Life in God Mode |
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
16/08/2012 14:50:47 (+0700) | #3 | 268476 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
17/08/2012 16:00:25 (+0700) | #4 | 268503 |
|
xwhitelight
Member
|
0 |
|
|
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
17/08/2012 17:22:36 (+0700) | #5 | 268510 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
17/08/2012 17:38:42 (+0700) | #6 | 268512 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
À như vậy cho dễ đi. Nếu anh có thể quay cho em 1 video hướng dẫn edit chữ "TCVN3 (ABC)" của phần mềm Unikey 4.0 RC2 thành chữ "TC Viet Nam 3 (ABC)" như trong hình này:
(Chỉ được edit bằng hex, không được edit trực tiếp bằng các tool edit resource như: Resource Hacker, Restorator, PE Explorer hay ExeScope)
Em sẽ tặng cho anh 1 thẻ nạp di động 50k (mạng tùy ý ) coi như để cảm ơn anh. Nếu anh đồng ý, anh pm số mobile: 0982523821 cho em nhé.
Em đang rất cần và vô cùng biết ơn nếu anh giúp đỡ |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 10:15:27 (+0700) | #7 | 268529 |
|
xwhitelight
Member
|
0 |
|
|
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 15:47:40 (+0700) | #8 | 268534 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
Ôi trời! anh hiểu nhầm ý em rồi, anh không đọc dòng chữ em “mở ngoặc” dưới hình à ?
Ý em muốn nói là anh có thể hướng dẫn em sửa dòng chữ đó bằng hex không? (để từ đó em áp dụng vào việc Việt hóa game của em), chứ edit bằng Resource Hacker thì dễ quá rồi, cái hình Unikey bên trên là do chính em edit và upload mà. |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 16:09:35 (+0700) | #9 | 268535 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
Nói cho ngắn gọn và dễ hiểu, vấn đề của em là: khi edit 1 file exe bằng mã hex, làm sao để sửa 1 chuỗi ký tự có sẵn thành 1 chuỗi ký tự dài hơn mà không làm lỗi file exe đó. Xin nhắc lại là vấn đề này đối với em có ý nghĩa rất quan trọng, em chấp nhận đánh đổi tất cả vì nó. Nên anh hoặc ai đó có thể giúp được em thì em xin chân thành cảm ơn và hậu tạ. |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 16:53:43 (+0700) | #10 | 268536 |
TQN
Elite Member
|
0 |
|
|
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
|
|
Không phải cái gì cũng edit = Hex Editor được. Tuỳ cái, tuỳ trường hợp.
|
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 18:07:54 (+0700) | #11 | 268537 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
TQN wrote:
Không phải cái gì cũng edit = Hex Editor được. Tuỳ cái, tuỳ trường hợp.
A chào anh TQN, thành viên năng nổ nhất của HVA
Anh giúp em vụ này với, file exe game của em Việt hoá được thế này rồi:
Chỉ còn mấy từ tiếng Anh bên dưới dịch ra tiếng Việt thì dài quá, Việt hoá là bị lỗi ngay (mà cái file này chỉ Việt hoá được bằng hex thôi mới đau chứ )
http://www.mediafire.com/?3xffdxnpka5fd1k |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 19:48:32 (+0700) | #12 | 268539 |
|
xwhitelight
Member
|
0 |
|
|
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
18/08/2012 20:49:22 (+0700) | #13 | 268541 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
Để search thấy các chuỗi em đã Việt hóa, anh phải dùng WinXP (đã thiết lập môi trường tiếng Việt) open file này trong Hex Editor và search string với bảng mã Vietnamese locale CP 1258 của Unikey. Đây là file exe của game Ace Online (bên VTC Game gọi là Phi Đội)
Giúp em với các cao thủ ơi, ngoài HVA ra em chẳng còn nơi nào để cầu cứu nữa. |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
19/08/2012 02:18:45 (+0700) | #14 | 268548 |
acoustics89
Member
|
0 |
|
|
Joined: 08/07/2011 10:17:19
Messages: 50
Offline
|
|
Nếu 1 xâu được cất trong resource, bạn dùng Resource hacker hoặc mấy tool edit resource là ổn. Với trường hợp xâu được lập trình viên để trong code, mình nghĩ bạn cần 1 disassembler , ví dụ như IDA. Mở file Exe bằng IDA, bạn nhấn Shift F12 để nó tìm tất cả các String của file, có thể nếu IDA không phân tích được đầy đủ file, bạn phải tìm các xâu này bằng tay. Nhưng như thế là nhanh hơn cách bạn làm rất nhiều.
Có nhiều yếu tố khiến cho cách việt hoá của bạn không thành công:
Các tác giả không build ở chế độ Unicode -- kiểu này thì khỏi cần việt hoá, vì không làm được.
Tiếng Anh ngắn gọn và xúc tích hơn tiếng Việt ví dụ như từ time (4 kí tự ) dịch ra tiếng Việt là "thời gian" (9 kí tư). Bạn không thể để 9 kí tự vào ô nhớ của 4 kí tự được. Trừ khi ăn may, gặp cavity, còn về lý thuyết, bạn phải tạo thêm 1 section nữa hoặc nới rộng section cuối, viết các xâu tiếng Việt vào đó và sửa địa chỉ con trỏ ở tất cả các vị trí trong file trỏ tới xâu tiếng Việt. Để tìm nhanh vị trí cần sửa, có thể phải dùng IDA hoặc Olly Dbg. Số vị trí cần sửa có thể là 1, 2 chỗ hoặc rất nhiều.
Ngoài ra, để sửa địa chỉ chính xác, bạn cần xem section đó có được relocation khi load lên bộ nhớ không. Bạn cũng nên tìm hiểu thêm về ASLR, để tránh sửa nhầm địa chỉ, khiến file bị lỗi.
Như mình đã trình bày, công việc sửa thế này cực kì vất vả và khó khăn. Cách dễ nhất là email yêu cầu tác giả build 1 bản cho tiếng Việt. Nhưng xem ra cách này lại vướng khó khăn kiểu khác, bạn nhỉ? |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
19/08/2012 11:31:04 (+0700) | #15 | 268554 |
ttlove
Member
|
0 |
|
|
Joined: 10/08/2012 19:47:38
Messages: 16
Offline
|
|
Vâng, đúng là các text của file này bị trộn vào code và chỉ edit được bằng Hex Editor thôi anh ạ:
Và game này chỉ chấp nhận Việt hóa bằng bảng mã Vietnamese locale CP 1258 anh ạ, nếu dùng các bảng mã khác như: Unicode tổ hợp, Unicode dựng sẵn, VNI,v.v...là text Việt hóa hiển thị lỗi tùm lum.
Với các chuỗi Việt hóa có độ dài vừa phải, em phải dùng đến phương án "viết tắt" và tận dụng các bytes null (00) đằng sau chuỗi gốc. Nhưng với các chuỗi Việt hóa dài hơn nhiều lần so với chuỗi gốc thì em bó tay.
Nghe anh acoustics89 phân tích như vậy em thấy có vẻ "gian nan" lắm , em thì chưa biết gì về RE cả. Anh nói là "trên lý thuyết thì như vậy" còn nếu áp dụng thực tế cho trường hợp của em liệu có thành công không anh ? Để em còn chuẩn bị "bông băng và thuốc đỏ" để bước vào con đường RE
Game này là game có bản quyền do MasangSoft Korea phát hành anh ạ, VTC mua bản quyền game này và tất nhiên là họ có tool rebuild nên có thể Việt hóa dễ dàng, còn việc email đến nhân viên MasangSoft hay GM VTC Game em chỉ dám thực hiện "trong mơ" thôi anh à.
P/s: à anh acoustics89 cho em hỏi 1 chút: tool OllyDebug chỉ có công dụng debug thôi chứ đâu có hỗ trợ save file lại sau khi chỉnh address hả anh ? |
|
|
|
|
[Question] Cần giúp đỡ về PE Header ! |
19/08/2012 13:31:13 (+0700) | #16 | 268555 |
|
xwhitelight
Member
|
0 |
|
|
Joined: 03/02/2011 01:39:33
Messages: 63
Location: HVA & REA
Offline
|
|
Đây là video mình đã sửa chuỗi "Quantity:" thành "So luong:" ko sử dụng hex editor:
http://www.mediafire.com/?agtlcug4ooh9voc |
|
Life in God Mode |
|
|