【文章标题】: 解除MFC的Edit输入文字长度限制
【文章作者】: 漏网之鱼
【作者邮箱】: lwzy-crack@163.com
【作者主页】: http://lwzy-crack.blog.163.com
【作者QQ号】: 530747686
【下载地址】: 自己搜索下载
【编写语言】: vc ++
【操作平台】: XP SP2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
OD载入程序,F9运行,输入测试字符
OD命令行里面输入 bp GetWindowTextA
点击“显示当前字符个数”按钮。
程序中断在
77D3212B > 6A 0C PUSH 0C
77D3212D 68 9021D377 PUSH user32.77D32190
77D32132 E8 8964FEFF CALL user32.77D185C0
77D32137 8B7D 0C MOV EDI,DWORD PTR SS:[EBP+C]
77D3213A 33DB XOR EBX,EBX
77D3213C 3BFB CMP EDI,EBX
77D3213E 0F84 398F0000 JE user32.77D3B07D
77D32144 395D 10 CMP DWORD PTR SS:[EBP+10],EBX
77D32147 0F84 308F0000 JE user32.77D3B07D
77D3214D 895D FC MOV DWORD PTR SS:[EBP-4],EBX
77D32150 881F MOV BYTE PTR DS:[EDI],BL
77D32152 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
77D32155 E8 7663FEFF CALL user32.77D184D0
77D3215A 8BF0 MOV ESI,EAX
77D3215C 8975 E4 MOV DWORD PTR SS:[EBP-1C],ESI
77D3215F 3BF3 CMP ESI,EBX
-----------------------------------------------------------------------------------------------
在反汇编窗口中跟随。
73D45CD8 |. 8B4D 10 MOV ECX,DWORD PTR SS:[EBP+10] ; 来到这里
73D45CDB |. 6A FF PUSH -1
73D45CDD |. E8 4FCBFEFF CALL mfc42.#CString::ReleaseBuffer_5572
73D45CE2 |. EB 0B JMP SHORT mfc42.73D45CEF
73D45CE4 |> 8B45 10 MOV EAX,DWORD PTR SS:[EBP+10]
73D45CE7 |. FF30 PUSH DWORD PTR DS:[EAX] ; /Arg2
73D45CE9 |. 56 PUSH ESI ; |Arg1
73D45CEA |. E8 9056FFFF CALL mfc42.#AfxSetWindowText_1246 ; \#AfxSetWindowText_1246
73D45CEF |> 5F POP EDI
73D45CF0 |. 5E POP ESI
73D45CF1 |. 5D POP EBP
73D45CF2 \. C2 0C00 RETN 0C ; F4到这里,然后F8一次
-----------------------------------------------------------------------------------------------
来到这里
00401328 . 6A 05 PUSH 5 ; 这里是将Edit1输入字符的长度压栈。修改为你想要的程度。
0040132A . 53 PUSH EBX
0040132B . 56 PUSH ESI
0040132C . E8 FF040000 CALL <JMP.&MFC42.#DDV_MaxChars_2289>
00401331 . 83C7 64 ADD EDI,64
00401334 . 57 PUSH EDI
00401335 . 68 EC030000 PUSH 3EC
0040133A . 56 PUSH ESI
0040133B . E8 F6040000 CALL <JMP.&MFC42.#DDX_Text_2370>
00401340 . 6A 0A PUSH 0A ; 这里是将Edit2输入字符的长度压栈。修改为你想要的程度。
00401342 . 57 PUSH EDI
00401343 . 56 PUSH ESI
00401344 . E8 E7040000 CALL <JMP.&MFC42.#DDV_MaxChars_2289>
00401349 . 5F POP EDI
0040134A . 5E POP ESI
0040134B . 5B POP EBX
0040134C . C2 0400 RETN 4
0040134F 90 NOP
00401350 . A1 34214000 MOV EAX,DWORD PTR DS:[<&MFC42.#CDialog::messageMap_4234>]
00401355 . C3 RETN
-----------------------------------------------------------------------------------------------
好了,大功告成。试试吧。
--------------------------------------------------------------------------------
【经验总结】
多动手。发现问题,自己寻找解决问题的方法。实在找不到了。在求助。
--------------------------------------------------------------------------------
【版权声明】: 转载请注明作者并保持文章的完整, 谢谢!
2009年09月06日 10:55:34
本代码的着色效果由xTiNt自动完成
下载xTiNt
附件下载:
解除Edit 限制.rar