欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

最后一篇,解除Comments窗口的限制和恢复User defined URL link窗口的功能 (4千字)

最后一篇,解除Comments窗口的限制和恢复User defined URL link窗口的功能 (4千字)

7. 解除Comments窗口的限制和恢复User defined URL link窗口的功能
代码在Audconv.dll中
1>  解除Comments窗口的限制
这里是用DialogBoxParamA来显示每个tag的对话框的
:10013757 6A00                    push 00000000
* Possible StringData Ref from Code Obj ->"VWh"
                                  |
:10013759 68A2970010              push 100097A2
:1001375E FF742410                push [esp+10]
:10013762 68D2000000              push 000000D2            ;<--第一个tag(Comments)的资源号
:10013767 50                      push eax
* Reference To: USER32.DialogBoxParamA, Ord:0095h
                                  |
:10013768 FF157C430710            Call dword ptr [1007437C]
要激活窗口,就要跟进10013768的call USER32.DialogBoxParamA. 你会发现有下面一段代码:
* Reference To: USER32.SetWindowTextA, Ord:0263h
                                  |
:1000FB3D FF1590430710            Call dword ptr [10074390]
* Reference To: USER32.SendDlgItemMessageA, Ord:0213h
                                  |
:1000FB43 8B2D84440710            mov ebp, dword ptr [10074484]
:1000FB49 53                      push ebx
:1000FB4A 6A01                    push 00000001
:1000FB4C 68CF000000              push 000000CF
:1000FB51 68F0030000              push 000003F0            ;<--Description下面的Edit的ID号
:1000FB56 FF36                    push dword ptr [esi]
:1000FB58 FFD5                    call ebp
* Reference To: USER32.GetDlgItem, Ord:0105h
                                  |
:1000FB5A 8B1DB4430710            mov ebx, dword ptr [100743B4]
:1000FB60 680B040000              push 0000040B            ;<--Language下面的ComboBox的ID号
:1000FB65 FF36                    push dword ptr [esi]
:1000FB67 FFD3                    call ebx
:1000FB69 6A00                    push 00000000            ;<--改为01才能激活ComboBox
:1000FB6B 50                      push eax
* Reference To: USER32.EnableWindow, Ord:00B9h
                                  |
:1000FB6C FF152C440710            Call dword ptr [1007442C]
:1000FB72 6A00                    push 00000000
:1000FB74 6A01                    push 00000001
:1000FB76 68CF000000              push 000000CF
:1000FB7B 68E9030000              push 000003E9            ;<--Text下面的Edit的ID号
:1000FB80 FF36                    push dword ptr [esi]
:1000FB82 FFD5                    call ebp
:1000FB84 680D040000              push 0000040D            ;<--右下角的Static的ID号
:1000FB89 FF36                    push dword ptr [esi]
:1000FB8B FFD3                    call ebx
:1000FB8D 6A05                    push 00000005
:1000FB8F 50                      push eax
* Reference To: USER32.ShowWindow, Ord:026Fh
                                  |
:1000FB90 FF1590440710            Call dword ptr [10074490]
:1000FB96 68ED030000              push 000003ED            ;<--未知控件ID号
:1000FB9B FF36                    push dword ptr [esi]
:1000FB9D FFD3                    call ebx
:1000FB9F 6A00                    push 00000000
:1000FBA1 50                      push eax
* Reference To: USER32.EnableWindow, Ord:00B9h
                                  |
:1000FBA2 FF152C440710            Call dword ptr [1007442C]
:1000FBA8 8B8740080000            mov eax, dword ptr [edi+00000840]
:1000FBAE 8DAF3C080000            lea ebp, dword ptr [edi+0000083C]
:1000FBB4 85C0                    test eax, eax
:1000FBB6 7505                    jne 1000FBBD
:1000FBB8 B820500710              mov eax, 10075020
所以,将Audconv.dll中的
:1000FB4C 68CF000000        =>68FF000000    (激活Description下面的Edit)
:1000FB69 6A00            =>6A01        (激活Language下面的ComboBox)
:1000FB76 68CF000000        =>68FF000000    (激活Text下面的Edit)
:1000FB84 680D040000        =>EB10909090    (除去右下角的Static)
(:1000FB9F 6A00            =>6A01)

2>  恢复User defined URL link窗口的功能
在Audconv.dll的10013DBD比较EAX是否为4A,是,则弹出"This frame can only be edited in the licensed version."对话框.
:10013DB8 E813D00000              call 10020DD0
:10013DBD 83F84A                  cmp eax, 0000004A
:10013DC0 7430                    je 10013DF2            ;<--一跳就没戏了
:10013DC2 8D4604                  lea eax, dword ptr [esi+04]
....
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10013DC0(C)
|
:10013DF2 6A40                    push 00000040
* Possible StringData Ref from Data Obj ->"Audio Converter"
                                  |
:10013DF4 6800530810              push 10085300
* Possible StringData Ref from Data Obj ->"This frame can only be edited "
                                        ->"in the licensed version."
                                  |
:10013DF9 68E0890810              push 100889E0
:10013DFE FF742414                push [esp+14]
* Reference To: USER32.MessageBoxA, Ord:01C3h
                                  |
:10013E02 FF15E0430710            Call dword ptr [100743E0]
所以,将Audconv.dll中的
:10013DC0 7430        =>9090
                  呵呵...打完收工啰! 应该是没问题了.
 
另:在Metadata窗口中点击Save按钮(特别是连续几次"打开Metadata窗口、Save"的时候),有时候会清空所有Tag! 不知道你们有没有碰到这种情况.

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功