讓HEXEDIT2.54顯示漢字(5千字)
讓HEXEDIT2.54顯示漢字 湖北 wuhuashang
主頁:http://personal.dfminfo.com.cn/~kuangren/index.htm
某些西文軟體存在不能輸入漢字或顯示漢字的問題,可能原因是編寫軟體的作者沒有考慮周全,我在此介紹一種除錯修改的方法,以供大家參考.
準備工作:工具:SOFTICE,HACKVIEW,HEXEDIT2.54.用寫字板寫幾個字如"THISISDEMO我在演示",儲存後登出或啟動計算機.
1.載入SOFTICE,用HEXEDIT開啟剛才寫的檔案,您發現在視窗右欄僅顯示THISISDEMO,漢字全部為'.',現在的任務是要顯示正確的漢字.CTRL+D切入SOFTICE
,下斷點BPX TEXTOUT,退出後更改字母T為M,立即被SOFTICE攔截,
2.BC * ,按若干次F12回到HEXEDIT的領空,
S DS:0 L FFFFFFFF "MHISISDEM",大搜捕後共有好幾個地址,真正的地址是DS:00XXXXXX,而非DS:CXXXXXXX,
也就是小的地址為HEXEDIT實際存取的地址.
3.BPM DS:00XXXXXX W (不是R/RW,否則一直被SOFTICE攔截無法返回).
退出SOFTICE,再將M改為T,好!SOFTICE成功攔截,可以猜想,程式下一步便要讀該地址的內容,然後判別其中的 字串是否在20H-7FH之間,決定是否正常顯示.
BPE 0 修改斷點為BPM DS:00XXXXXX R,退出SOFTICE,立即又被SOFTICE攔截,原來是用MOVSB把DS:00XXXXXX中
的字串複製到DS:00YYYYYY,
4.BD *
BPM DS:00YYYYYY R 退出SOFTICE,立即被攔截返回SOFTICE中,好漂亮!停止在CS:412616
004125F2: C745FC00000000
mov d,[ebp][-0004],000000000 ;"
.004125F9: E903000000
jmp .000412601
.004125FE: FF45FC
inc d,[ebp][-0004]
.00412601: 8B4510
mov eax,[ebp][00010]
.00412604: 3945FC
cmp [ebp][-0004],eax
.00412607: 0F8D20000000
jge .00041262D
.0041260D: 8B45FC
mov eax,[ebp][-0004]
.00412610: 8B4D08
mov ecx,[ebp][00008]
.00412613: 8A0408
mov al,[eax][ecx]
說明:D DS:EAX+ECX ---文章中的字串!
.00412616: 50
push
eax
.00412617: E894FFFFFF
call .0004125B0 -------- (1)
.0041261C: 83C404
add esp,004 ;" "
.0041261F: 8B4DFC
mov ecx,[ebp][-0004]
.00412622: 8B550C
mov edx,[ebp][0000C]
.00412625: 880411
mov [ecx][edx],al
說明:AL=?,若AL為可以顯示的字元,則經過(1)CALL處理後還是原來的AL
若AL為不可顯示(如漢字)字元,則經過(1)CALL處理後AL=2E('.'),原來漢字變成一個'.',此CALL有問題!
.00412628: E9D1FFFFFF
jmp .0004125FE
.0041262D: E900000000
jmp .000412632
.00412632: 5F
pop edi
.00412633: 5E
pop esi
.00412634: 5B
pop ebx
.00412635: C9
leave
.00412636: C3
retn
看CALL中的程式碼:
.004125B0: 55
push ebp
.004125B1: 8BEC
mov ebp,esp
.004125B3: 53
push ebx
.004125B4: 56
push esi
.004125B5: 57
push edi
.004125B6: 0FBE4508
movsx eax,b,[ebp][00008]
.004125BA: 83F820
cmp eax,020 ;" "
.004125BD: 0F8C1A000000
jl .0004125DD -------- (1)
比20H小,AL=2E ,也就是一個'.'
.004125C3: 0FBE4508
movsx eax,b,[ebp][00008]
.004125C7: 83F87E
cmp eax,07E ;"~"
.004125CA: 0F8F0D000000
jg .0004125DD -------- (2)
比7EH大,AL=2E ,也就是一個'.'
.004125D0: 8A4508
mov al,[ebp][00008]
.004125D3: E90C000000
jmp .0004125E4
.004125D8: E907000000
jmp .0004125E4
.004125DD: B02E
mov al,02E ;"."
你在此處想改頭換面?
.004125DF: E900000000
jmp .0004125E4
.004125E4: 5F
pop edi
.004125E5: 5E
pop esi
.004125E6: 5B
pop ebx
.004125E7: C9
leave
.004125E8: C3
retn
.004125E9: 55
push ebp
.004125EA: 8BEC
mov ebp,esp
在HACKVIEW中改CS:4125BA之間的程式碼為
CMP EAX,00
JL 4125DF
或用HEXEDIT修改0F8C1A000000為0F8C1C000000
儲存退出.正是:漢字西文均顯示,古怪字元變成'.'
版權所有,請不要修改原內容
相關文章
- cmd顯示漢字需要的設定2019-02-25
- C語言直接顯示漢字(轉)2007-08-16C語言
- PLSQL中漢字顯示亂碼問題2013-05-08SQL
- 讓w32dasm中的中文串正確顯示! (3千字)2001-03-25ASM
- STM32開原始碼——OLED漢字顯示程式2018-05-12原始碼
- 漢字通破解手記 (19千字)2000-09-06
- 基於Linux核心的漢字顯示的嘗試(轉)2007-08-12Linux
- eclipse中的漢字橫著顯示,或顯示不正確,字型大小顏色設定2016-02-16Eclipse
- POWERBUILDER KODIGO 框架TOOLBAR不能完全顯示漢字問題解決2009-11-03UIGo框架
- 基於Linux作業系統核心的漢字顯示(轉)2007-08-16Linux作業系統
- Linux中顯示FAT等分割槽上的漢字檔名(轉)2007-08-12Linux
- IPTOOLS (5千字)2001-03-12
- 對HTML標準的思考-記解決H5隨機顯示簡繁體漢字問題2017-07-19HTMLH5隨機
- 為
QQ2000c 0630 新增 IP 顯示和去掉廣告 (5千字)2002-07-17
- 蒙納字型檔:深耕漢字美學與技術,讓漢字走向世界2022-12-12
- PolyView 破解 (5千字)2000-12-31View
- 破解MyMahj (5千字)2001-06-20
- 如何讓weblogic支援漢字檔名下載?2003-03-09Web
- 關於在linux中顯示漢字的問題請教大蝦(轉)2007-08-11Linux
- 關於QQ1220顯示IP Patch (2千字)2002-03-25
- HTML5:給漢字加拼音?收起展開元件?讓我秀給你看2020-04-07HTML元件
- win10系統微軟拼音輸入法打字不顯示漢字怎麼辦2018-11-25Win10微軟
- 破解TurboLaunch 4.04 (5千字)2001-06-06
- 初學者(14) (5千字)2000-06-10
- WebZIP 3.71.508 (5千字)2000-06-24Web
- 如何讓漢字以拼音字母順序排序2017-03-23排序
- 初級~~初級~~~初初級~~~KanjiWeb 3.0 (漢字通)破解~~~~~~~~~
(8千字)2001-03-11Web
- CSS實現限制顯示的字數,超出顯示"..."2016-05-14CSS
- grail中數字顯示2011-06-20AI
- 讓VS偵錯程式正確顯示UTF-8字串2015-02-03字串
- 破解入門5 (3千字)2000-09-23
- duelist crackme 1 破解 (5千字)2000-10-16
- IPTools 1.10 破解 (5千字)2001-02-11
- see This 破解實戰! (5千字)2000-06-26
- 如何破解CuteFTP 4.0 (5千字)2000-07-20FTP
- pyqt5顯示照片2024-05-09QT
- jQuery 動態數字顯示2016-12-19jQuery
- C#漢字轉漢語拼音2021-12-21C#