史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 多媒體影音轉檔燒錄技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-12-11, 07:41 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 順便帖一下讓winamp工作列滾動文字正常顯示中文

winamp工作列可以滾動顯示歌名,但如果是中文,將會時而出現亂碼,因為中文是雙字元,而winamp並沒有考慮,仍當作單字元處理。當滾過第一字元後,第二字元就無法正常顯示。
用OD載入winamp,下斷點:setwindowtexta,中斷後回到這裡:
0042EE53 LEA EAX,DWORD PTR [EBP-1000] --->[EBP-1000]為工作列中要顯示的文字
0042EE59 PUSH EAX
0042EE5A PUSH DWORD PTR DS:[453320] --->HWnd
0042EE60 CALL DWORD PTR DS:[<&USER32.SetWindo>; \SetWindowTextA
向上分析文字是怎麼滾動的:
0042ED40 PUSH ESI --->文字
0042ED41 STOS BYTE PTR ES:[EDI]
0042ED42 CALL <JMP.&MSVCRT.strlen> --->長度
0042ED47 POP ECX
0042ED48 MOV ECX,DWORD PTR DS:[451248] --->重要:取第幾字元的記數器
0042ED4E CMP ECX,EAX
0042ED50 JGE SHORT Winamp.0042EDA9 --->大於就跳,計數器重新置0
0042ED52 LEA EAX,DWORD PTR DS:[ECX+4538C0] --->[4538C0]中放置完整的文字
0042ED58 PUSH EAX
0042ED59 LEA EAX,DWORD PTR SS:[EBP-1000]
0042ED5F PUSH EAX
0042ED60 CALL <JMP.&MSVCRT.strcpy> --->取得文字複製到[EBP-1000]中
下略。
明顯程序用[451248]記憶取到第幾位數,然後取得文字複製到[EBP-1000]中讓工作列顯示,只要判斷取得的第一個文字是否中文,是則將計數器加1,就可跳過該中文的第二字元。

修改程序如下:
0042EE53 JMP Winamp.0043D4E0 --->在工作列顯示前先處理文字
0043D4E0 MOV AL,BYTE PTR SS:[EBP-1000] --->取第一字元
0043D4E6 CMP AL,9F --->中文一般大於9F?我猜的
0043D4E8 JB SHORT Winamp.0043D4F0 --->是則跳
0043D4EA INC DWORD PTR DS:[451248] --->計數器加1
0043D4F0 LEA EAX,DWORD PTR SS:[EBP-1000] --->恢復原程式碼
0043D4F6 JMP Winamp.0042EE59 --->回原程序繼續執行
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 04:33 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1