|
|

楼主 |
发表于 2007-11-27 23:46
|
显示全部楼层
这是16格切换纪念版的修改和添加代码及函数。对应 TRFoxTrader.exe ,其它两个版本的修改类似,只是地址不同,不重复发了。
Patches
地址 大小 状态 旧 新 注释
00545EAA 2. 已删除 JE SHORT DIYFoxTr.00545EBC JMP SHORT DIYFoxTr.00545EBC [OK]---B-01---定向加密公式输出限制解除
0054636E 2. 已删除 JE SHORT DIYFoxTr.0054638E JMP SHORT DIYFoxTr.0054638E [OK]---B-02---非公式指定的产品导入限制解除
005463E2 2. 已删除 JNZ SHORT DIYFoxTr.005463EB NOP [OK]---B-03---定向加密公式导入限制解除
005469CD 2. 已删除 JE SHORT DIYFoxTr.005469E2 JMP SHORT DIYFoxTr.005469E2 [OK]---B-04---定向加密公式输出限制解除
005469E9 2. 已删除 JLE SHORT DIYFoxTr.00546A0A JMP SHORT DIYFoxTr.00546A0A [OK]---B-05---时间限制公式输出限制解除
00546A11 2. 已删除 JLE SHORT DIYFoxTr.00546A32 JMP SHORT DIYFoxTr.00546A32 [OK]---B-06---产品限制公式输出限制解除
0054E78C 6. 已删除 CMP DWORD PTR DS:[EAX+38],0 JMP DIYFoxTr.00BF5171 [OK]---B-07---时间限制公式导入及使用限制解除
005506C9 6. 已删除 JE DIYFoxTr.00550817 JMP DIYFoxTr.00550817 [OK]---B-08---密码加密公式直接编辑
00555614 5. 已删除 PUSH DIYFoxTr.00A76134 PUSH DIYFoxTr.00BF4120 [选择]重写版本名
005D72A4 5. 已删除 PUSH DIYFoxTr.00A76134 JMP DIYFoxTr.00BF5181 [选择]重写版本名
0067A661 2. 已删除 JE SHORT DIYFoxTr.0067A6B6 NOP [可选]-A-01---战无不胜
0067A6BA 2. 已删除 JE SHORT DIYFoxTr.0067A6E0 NOP [可选]-A-02---短线泰斗
00740CB5 6. 已删除 MOV ECX,DWORD PTR DS:[BC6510] JMP DIYFoxTr.00BF50DC [OK]---C-05---保存下拉框当前选择项ID
00740DFB 6. 已删除 LEA EAX,DWORD PTR SS:[EBP-84] JMP DIYFoxTr.00BF5072 [OK]---C-04---查找按钮文本切换
00740F60 7. 已删除 CMP DWORD PTR DS:[BC6514],3 JMP DIYFoxTr.00BF5002 [OK]---C-01---绘制16格
00742982 7. 已删除 CMP DWORD PTR DS:[BC6514],3 JMP DIYFoxTr.00BF5032 [OK]---C-02---网页窗口内容白屏刷新
00744299 7. 已删除 CMP DWORD PTR DS:[EAX+360],0 JMP DIYFoxTr.00BF50F0 [OK]---C-06---"16格"标志位切换控制
007442CB 7. 已删除 CMP DWORD PTR DS:[BC6514],3 JMP DIYFoxTr.00BF5052 [OK]---C-03---刷新网页窗体内容
00744334 7. 已删除 CMP DWORD PTR DS:[EDX+338],1 JMP DIYFoxTr.00BF5135 [OK]---C-07---设置 "查找" 按钮标志位
00BF5000 90 NOP
00BF5001 90 NOP ; [---01---]<绘制16格> - 绘制出 16 格同时解决从"资料库"切换到"和讯"后 16 格内的文本连接不能点击的问题
00BF5002 803D 0040BF00 0>CMP BYTE PTR DS:[BF4000],0 ; 检测 16 格 F10 功能标志位
00BF5009 75 14 JNZ SHORT DIYFoxTr.00BF501F ; 已打开 16 格 F10 功能就跳走
00BF500B 90 NOP ; [---原程序代码开始---]
00BF500C 833D 1465BC00 0>CMP DWORD PTR DS:[BC6514],3 ; 下拉框内容是"和讯"吗
00BF5013 - 0F85 55BFB4FF JNZ DIYFoxTr.00740F6E ; 是"资料库123"去绘制 16 格
00BF5019 - E9 9FC2B4FF JMP DIYFoxTr.007412BD ; 是"和讯"不绘制 16 格
00BF501E 90 NOP ; [---原程序代码结束---]
00BF501F C705 1465BC00 0>MOV DWORD PTR DS:[BC6514],0 ; 把 [BC6514] 值置 0 (让系统认为是资料库 1 )可解决从"资料库"切换到"和讯"后 16 格内文本连接不能点击的问题
00BF5029 - E9 40BFB4FF JMP DIYFoxTr.00740F6E ; 去窗体绘制 16 格
00BF502E 90 NOP
00BF502F 90 NOP
00BF5030 90 NOP
00BF5031 90 NOP ; [---02---]<网页窗口内容白屏刷新> - 解决从"和讯"切换到"资料库123"后网页窗口内的内容不刷新白屏的问题
00BF5032 803D 0040BF00 0>CMP BYTE PTR DS:[BF4000],0 ; 检测 16 格 F10 功能标志位
00BF5039 75 0E JNZ SHORT DIYFoxTr.00BF5049 ; 已打开 16 格 F10 功能就全部按"和讯"方式显示网页窗口内的内容,可解决从"和讯"切换到"资料库123"后网页窗口内的内容不刷新白屏的问题
00BF503B 90 NOP ; [---原程序代码开始---]
00BF503C 833D 1465BC00 0>CMP DWORD PTR DS:[BC6514],3 ; 下拉框内容是"和讯"吗
00BF5043 - 0F85 01DAB4FF JNZ DIYFoxTr.00742A4A ; 按"资料库123"方式显示网页窗口内的内容
00BF5049 - E9 41D9B4FF JMP DIYFoxTr.0074298F ; 按"和讯"方式显示网页窗口内的内容
00BF504E 90 NOP ; [---原程序代码结束---]
00BF504F 90 NOP
00BF5050 90 NOP
00BF5051 90 NOP ; [---03---]<刷新网页窗体内容> - 解决从“财务分析”回到"基本资料"下的"和讯"或从"和讯"切换到"资料库123"后不刷新网页窗口内容问题
00BF5052 803D 0040BF00 0>CMP BYTE PTR DS:[BF4000],0 ; 检测 16 格 F10 功能标志位
00BF5059 75 0E JNZ SHORT DIYFoxTr.00BF5069 ; 已打开 16 格 F10 功能就跳全部按 "和讯" 方式显示网页窗口,可解决从“财务分析”回到"基本资料"下的"和讯"或从"和讯"切换到"资料库123"后不刷新网页窗口内容问题
00BF505B 90 NOP ; [---原程序代码开始---]
00BF505C 833D 1465BC00 0>CMP DWORD PTR DS:[BC6514],3 ; 下拉框内容是"和讯"吗
00BF5063 - 0F85 8AF2B4FF JNZ DIYFoxTr.007442F3 ; 不是"和讯"就跳不刷新 16 格网页窗口内的内容
00BF5069 - E9 66F2B4FF JMP DIYFoxTr.007442D4 ; 刷新网页窗口内的内容
00BF506E 90 NOP ; [---原程序代码结束---]
00BF506F 90 NOP
00BF5070 90 NOP
00BF5071 90 NOP ; [---04---]< "查找" 按钮标题切换> - 用来控制替换"查找"按钮标题为 "资料库"、" 16 格"、"查找"
00BF5072 60 PUSHAD ; 原程序代码
00BF5073 8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84] ; 原程序代码
00BF5079 BB 2040BF00 MOV EBX,DIYFoxTr.00BF4020 ; 用来保存返回值(窗口句柄)的地址
00BF507E 8B8D 4CFFFFFF MOV ECX,DWORD PTR SS:[EBP-B4] ; 原程序代码
00BF5084 E8 79F4FFFF CALL DIYFoxTr.00BF4502 ; 调用原程序代码获取 hWnd 并保存到 BF4020 地址中
00BF5089 A1 2040BF00 MOV EAX,DWORD PTR DS:[BF4020] ; 把前面获取的窗口句柄送 EAX 作为参数
00BF508E BB EC060000 MOV EBX,6EC ; 6EC 为查找按钮 ID
00BF5093 803D 0140BF00 0>CMP BYTE PTR DS:[BF4001],0 ; 检测 "查找" 按钮标志位
00BF509A 75 25 JNZ SHORT DIYFoxTr.00BF50C1 ; 已打开 "查找" 按钮标志位跳
00BF509C 90 NOP
00BF509D 90 NOP
00BF509E 803D 0040BF00 0>CMP BYTE PTR DS:[BF4000],0 ; 检测 16 格 F10 功能标志位
00BF50A5 75 11 JNZ SHORT DIYFoxTr.00BF50B8 ; 已打开 16 格 F10 功能跳
00BF50A7 833D 1465BC00 0>CMP DWORD PTR DS:[BC6514],3 ; 下拉框内容是"和讯"吗
00BF50AE 75 11 JNZ SHORT DIYFoxTr.00BF50C1 ; 是"资料库123"就把" 16格 "或"资料库"还原回"查找"
00BF50B0 BA 0C41BF00 MOV EDX,DIYFoxTr.00BF410C ; 设置"查找"按钮标题为" 16格 "
00BF50B5 EB 0F JMP SHORT DIYFoxTr.00BF50C6
00BF50B7 90 NOP
00BF50B8 BA 0041BF00 MOV EDX,DIYFoxTr.00BF4100 ; 设置"查找"按钮标题为"资料库"
00BF50BD EB 07 JMP SHORT DIYFoxTr.00BF50C6
00BF50BF 90 NOP
00BF50C0 90 NOP
00BF50C1 BA 1841BF00 MOV EDX,DIYFoxTr.00BF4118 ; 把" 16格 "或"资料库"还原回"查找"
00BF50C6 E8 4BF4FFFF CALL DIYFoxTr.00BF4516 ; 修改标题
00BF50CB 61 POPAD
00BF50CC 90 NOP
00BF50CD 8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84] ; 还原程序原始代码
00BF50D3 - E9 29BDB4FF JMP DIYFoxTr.00740E01 ; 返回原程序
00BF50D8 90 NOP
00BF50D9 90 NOP
00BF50DA 90 NOP
00BF50DB 90 NOP ; [---05---]<保存下拉框当前选择项ID> - 用来标识当前选择项目是"资料库123"还是"和讯"以备后面判断用何种方式刷新窗口
00BF50DC A2 0240BF00 MOV BYTE PTR DS:[BF4002],AL ; 把前面原程序返回的标识号(返回值在EAX中)存到 BF4002 地址中
00BF50E1 8B0D 1065BC00 MOV ECX,DWORD PTR DS:[BC6510] ; 还原程序原始代码
00BF50E7 - E9 CFBBB4FF JMP DIYFoxTr.00740CBB ; 返回原程序
00BF50EC 90 NOP
00BF50ED 90 NOP
00BF50EE 90 NOP
00BF50EF 90 NOP ; [---06---]<" 16格 " 标志位切换控制> - 标志位决定 16 格功能与资料库功能的切换
00BF50F0 83B8 60030000 0>CMP DWORD PTR DS:[EAX+360],0 ; [EAX+360] ==1 是在基本资料下按查找按钮
00BF50F7 - 0F84 A7F1B4FF JE DIYFoxTr.007442A4 ; 不是就返回原程序
00BF50FD 90 NOP
00BF50FE 803D 0040BF00 0>CMP BYTE PTR DS:[BF4000],0 ; 检测 16 格 F10 功能标志位
00BF5105 75 09 JNZ SHORT DIYFoxTr.00BF5110 ; 已打开 16 格 F10 功能就跳走
00BF5107 C605 0040BF00 0>MOV BYTE PTR DS:[BF4000],1 ; 打开 16 格 F10 功能同时关闭"资料库"功能
00BF510E EB 08 JMP SHORT DIYFoxTr.00BF5118
00BF5110 C605 0040BF00 0>MOV BYTE PTR DS:[BF4000],0 ; 关闭 16 格 F10 功能同时打开"资料库"功能
00BF5117 90 NOP
00BF5118 60 PUSHAD ; 重新刷新窗口
00BF5119 FF35 0240BF00 PUSH DWORD PTR DS:[BF4002] ; [BF4002] 内为当前选择项目ID
00BF511F 8B0D 1065BC00 MOV ECX,DWORD PTR DS:[BC6510]
00BF5125 E8 92F1B4FF CALL DIYFoxTr.007442BC ; 调用原程序代码刷新窗口
00BF512A 61 POPAD
00BF512B 90 NOP
00BF512C - E9 87F1B4FF JMP DIYFoxTr.007442B8 ; 返回原程序
00BF5131 90 NOP
00BF5132 90 NOP
00BF5133 90 NOP
00BF5134 90 NOP ; [---07---]<设置 "查找" 按钮标志位> - 标志位决定"查找"按钮的标题切换
00BF5135 83BA 38030000 0>CMP DWORD PTR DS:[EDX+338],1 ; [EDX+338] == 1 是用户切换到了"财务分析"选项卡下
00BF513C 75 0E JNZ SHORT DIYFoxTr.00BF514C ; 从"财务分析"切换到"基本资料"选项卡下跳
00BF513E 90 NOP
00BF513F C605 0140BF00 0>MOV BYTE PTR DS:[BF4001],1 ; 标志位置 1
00BF5146 - E9 F2F1B4FF JMP DIYFoxTr.0074433D ; 返回原程序
00BF514B 90 NOP
00BF514C C605 0140BF00 0>MOV BYTE PTR DS:[BF4001],0 ; 标志位置 0
00BF5153 90 NOP
00BF5154 60 PUSHAD ; 重新刷新窗口
00BF5155 FF35 0240BF00 PUSH DWORD PTR DS:[BF4002] ; [BF4002] 内为当前选择项目ID
00BF515B 8B0D 1065BC00 MOV ECX,DWORD PTR DS:[BC6510]
00BF5161 E8 56F1B4FF CALL DIYFoxTr.007442BC ; 调用原程序代码刷新窗口
00BF5166 61 POPAD
00BF5167 90 NOP
00BF5168 - E9 EFF1B4FF JMP DIYFoxTr.0074435C ; 返回原程序
00BF516D 90 NOP
00BF516E 90 NOP
00BF516F 90 NOP
00BF5170 90 NOP ; [---08---]<时间限制公式导入及使用限制解除>
00BF5171 C740 38 0000000>MOV DWORD PTR DS:[EAX+38],0 ; [EAX+38] 内容为时间限制公式导入及使用限制 清 0 后即可解除限制
00BF5178 - E9 2A9695FF JMP DIYFoxTr.0054E7A7 ; 返回原程序
00BF517D 90 NOP
00BF517E 90 NOP
00BF517F 90 NOP
00BF5180 90 NOP
00BF5181 60 PUSHAD
00BF5182 B8 2041BF00 MOV EAX,DIYFoxTr.00BF4120
00BF5187 C700 DAFEC2E7 MOV DWORD PTR DS:[EAX],E7C2FEDA
00BF518D C740 04 A7E0204>MOV DWORD PTR DS:[EAX+4],4220E0A7
00BF5194 C740 08 4E26C9E>MOV DWORD PTR DS:[EAX+8],EEC9264E
00BF519B C740 0C D3D6B4F>MOV DWORD PTR DS:[EAX+C],F3B4D6D3
00BF51A2 C740 10 A2C7000>MOV DWORD PTR DS:[EAX+10],0C7A2
00BF51A9 90 NOP
00BF51AA B9 05000000 MOV ECX,5
00BF51AF B8 2041BF00 MOV EAX,DIYFoxTr.00BF4120
00BF51B4 8B18 MOV EBX,DWORD PTR DS:[EAX]
00BF51B6 81F3 17060000 XOR EBX,617
00BF51BC 53 PUSH EBX
00BF51BD 8F00 POP DWORD PTR DS:[EAX]
00BF51BF 83C0 04 ADD EAX,4
00BF51C2 49 DEC ECX
00BF51C3 85C9 TEST ECX,ECX
00BF51C5 ^ 75 ED JNZ SHORT DIYFoxTr.00BF51B4
00BF51C7 61 POPAD
00BF51C8 90 NOP
00BF51C9 68 2041BF00 PUSH DIYFoxTr.00BF4120
00BF51CE - E9 D6209EFF JMP DIYFoxTr.005D72A9
00BF51D3 90 NOP
00BF51D4 90 NOP
00BF51D5 90 NOP
00BF51D6 90 NOP
00BF4501 90 NOP ; [自编函数] - 获取 hWnd并保存
00BF4502 55 PUSH EBP
00BF4503 8BEC MOV EBP,ESP
00BF4505 50 PUSH EAX
00BF4506 E8 65D780FF CALL DIYFoxTr.00401C70 ; 利用原程序代码获取窗口句柄,返回值在 EDX 中
00BF450B 52 PUSH EDX
00BF450C 8F03 POP DWORD PTR DS:[EBX] ; 把得到的返回值(窗口句柄)写入到我们指定的地址里,作为后面利用
00BF450E 8BE5 MOV ESP,EBP
00BF4510 5D POP EBP
00BF4511 C3 RETN
00BF4512 90 NOP
00BF4513 90 NOP
00BF4514 90 NOP
00BF4515 90 NOP ; [自编函数] - 设置查找按钮文字
00BF4516 55 PUSH EBP
00BF4517 8BEC MOV EBP,ESP
00BF4519 52 PUSH EDX ; 待写入的标题文本
00BF451A 53 PUSH EBX ; 按钮 ID
00BF451B 50 PUSH EAX ; 获取的窗口句柄送
00BF451C FF15 1482BF00 CALL DWORD PTR DS:[<&user32.GetDlgItem>] ; 通过窗口句柄获取"查找"按钮句柄,返回值在 EAX 中
00BF4522 50 PUSH EAX
00BF4523 FF15 2082BF00 CALL DWORD PTR DS:[<&user32.SetWindowTex>; 设置文本
00BF4529 5D POP EBP
00BF452A C3 RETN
00BF452B 90 NOP
00BF452C 90 NOP
00BF452D 90 NOP
00BF452E 90 NOP
[ 本帖最后由 RegKiller 于 2007-12-20 22:03 编辑 ] |
|
|