<![CDATA[Latest posts for the topic "Mở thêm chức năng cho Unikey"]]> /hvaonline/posts/list/23.html JForum - http://www.jforum.net Mở thêm chức năng cho Unikey ConsoleWindowClass thì không để gõ tiếng Việt, chắc là tác giả cũng thấy việc gõ tiếng Việt trên cửa sổ console là không thường xuyên nên quyết định cho tắt luôn :D, mở Unikey40.dll trên IDA:
1. ở chỗ này, mình có thể patch toàn bộ đoạn push param và gọi strcmp đến một hàm khác thực hiện việc kiểm tra xem có nên bỏ qua gõ tiếng Việt trên cửa sổ input hiện thời hay không. Hàm kiểm tra này được triển khai trên một DLL khác do mình viết. Sau khi có DLL chứa hàm kiểm tra customize rồi thì tiến hành Patch UniKey40.dll, thêm vào một import entry trong bảng IAT sử dụng Stub_PE hoặc LordPE, save lại. 2. Mở lại UniKey40.dll trong IDA sẽ thấy entry import mới:
3. tiến hành patch phần gọi strmp để gọi hàm kiểm tra mới:
Code của DLL chứa hàm kiểm tra mới mình có post lên github tại https://github.com/secmaskoss/unihami , mới chỉ dạng concept thôi. Vấn đề đang gặp phải là khi chạy bản đã patch này xong thì có hiện tượng lạ là chỉ gõ được tiếng Việt được ở lần đầu tiên bật Unikey lên, sau đó thì hoàn toàn không gõ được tiếng Việt nữa sau khi chuyển sang một cửa sổ input khác. Mình kiểm tra process thấy Unikey vẫn chạy bình thường, chỉ trừ đúng việc là không gõ được tiếng Việt. Mình đưa lên đây để nếu bạn nào có hứng thú thì cùng ngâm cứu xem vấn đề nằm ở đâu nhé :D ]]>
/hvaonline/posts/list/45120.html#278287 /hvaonline/posts/list/45120.html#278287 GMT
Mở thêm chức năng cho Unikey /hvaonline/posts/list/45120.html#278294 /hvaonline/posts/list/45120.html#278294 GMT Mở thêm chức năng cho Unikey

quygia128 wrote:
Sau khi path hàm strcmp đến code của anh thì anh có thể GetActiveWindow, FindWindow, GetWindowText và so sánh với tên anh đã định sẵn muốn Enable hay disable -> kết quả trả về đúng sai gán vào EAX để điều khiển lệnh nhảy qua hàm hookey.  
Nhất trí, cái hàm kiểm tra khi nào enable/disable Unikey thì sẽ tinh chỉnh sau để có kết quả tốt. Vấn đề là giờ hành vi của Unikey sau khi mình patch nó không ổn định, mặc dụ hàm doSkip kia mình thử để return true từ đầu hàm luôn để luôn cho gõ tiếng Viêt, mình đang vòng quanh một tí, có vẻ là việc reload DLL có cài Hook function ở trong không được sạch lắm, mình toàn phải logout hoặc restart máy mới có kết quả chính xác(sau khi build lại unihami.dll). ]]>
/hvaonline/posts/list/45120.html#278301 /hvaonline/posts/list/45120.html#278301 GMT
Mở thêm chức năng cho Unikey /hvaonline/posts/list/45120.html#278303 /hvaonline/posts/list/45120.html#278303 GMT Mở thêm chức năng cho Unikey /hvaonline/posts/list/45120.html#278307 /hvaonline/posts/list/45120.html#278307 GMT Mở thêm chức năng cho Unikey

xnohat wrote:
Mền thắc mắc là Unikey vốn là opensource với source code được public tại đây http://unikey.org/source.php Tại sao phải reverse rồi patch chi cho mất công nhẩy :D  
Bác ấy opensource bản trước đó thôi, còn bản mới nhất không có source vì lý do nào đó.

xnohat wrote:
Nếu các bồ thực sự thích và muốn phát triển Unikey mở rộng tiếp thì có thể liên lạc với bác ấy, tôi có thể làm cầu nối :)  
Hi, thx bác. Cái này mình làm theo nhu cầu cá nhân, và cũng để cho vui thôi, khi nào mình có ý định làm nghiêm túc hơn thì chắc phải liên hệ với bác Long thì mới ra hồn được.]]>
/hvaonline/posts/list/45120.html#278319 /hvaonline/posts/list/45120.html#278319 GMT
Mở thêm chức năng cho Unikey /hvaonline/posts/list/45120.html#278440 /hvaonline/posts/list/45120.html#278440 GMT Mở thêm chức năng cho Unikey /hvaonline/posts/list/45120.html#278455 /hvaonline/posts/list/45120.html#278455 GMT Mở thêm chức năng cho Unikey /hvaonline/posts/list/45120.html#278456 /hvaonline/posts/list/45120.html#278456 GMT