从穿衣的废铁,到全功能的跑车,着实要花很多的心力。 最简单的路是,比葫芦画瓢。从描摹到临摹再到自创,是一切艺术类学习的方法。自创?谈何容易?羽扇老师的功夫非一朝一夕可练成。 但是,比葫芦画瓢有个问题:若葫芦有个bug hole, 瓢也要钻个孔;如果葫芦上有个疤瘌,瓢也要挖个坑。走出描摹阶段后,临摹时应该尽量避免这个问题,所以,结构化就是一个可选的路。以下是结构化改装之路,与爱玩的分享。也希望各位玩家提出更好的方法或改进。(由于某某信对改装耿耿于怀,已经做了有针对性的反改装措施,这里比较明确的东西,仅谈思路,略去细节。只有不明确的,某某信也顾不过来的东西拿出来讨论) 和谐之旅 一 脱壳、去广告、去校验、解除高级行情设置对话框行情选项下拉框灰色限制 1 脱壳 1)用CFF dump原版程序的.data和.rsrc段,用exeInfoPe查原版程序的OEP,记下备用; 2)... 3)... 4)用Scylla在原版程序中根据第1)步查到的OEP查找并获取ITA,点击dumpFix按钮,修复tdxwDump.exe的导入表。 也可以直接搜.rdata段恢复原始导入表。 2 去校验 改校验子程序 跳过券商交易登录时的校验 3)解除高级行情设置对话框行情选项限制 4)解除强制版本升级限制 5)去广告 二 开通五档普通行情 1)开通传统行情的连接通道 (修改两处) 2)解除行情主站连接限制 3)授权连接行情主站/提取初始化信息 三 VIP跨券商交易 1)TC初始化闪电交易及多券商设置 2)全赢版跨券商授权(1),匹配TradeBoxAdvJy模式 3)券商Vip交易赋权 (与上面的第二项vip互斥)置为否(0) 4)略过交易登录登录附加码 (大多数券商没有这项) 四 ID调用、明码配置文件和港股实时行情 1)开通ID调用 2)读明码/或者加密的配置文件 (很多读明码就不能读加密的配置文件,不方便主程序在不同环境下试用) 3)。。。 五 必要性高的优化 1)跳过显示授权声明 2)允许传统行情用XX 公式 003A330A/007A3F0A E8 61C1D6FF call tdxw.00510070 B8 01000000 mov eax,0x1 ; 直接赋权L2行情权限 3)开通传统行情数据纵览 4)绕过只能运行一个实例的限制 5)解除版本号格式约束 6)解除执行文件不能改文件名限制 7)解除DLL交易限制 8)大数据优化 9)开通传统行情的主力风向标和主力轨迹图(其实,这个意义不大,因为L2行情下主力资金流数据也仅是根据模型的测算,传统行情数据就更不准了!) A)侧边栏CSS样式单 B)取消本地行情数据缓存 至此,一个跨券商vip交易的传统行情跑车已经改装完毕。 六 十六字批量标注 (文字标注 简字输入框的调整要编辑对话框资源) 这个改装相当的复杂,除非绝对需要。 七 BaoLiL2行情 1)BaoLiL2连接 - 1 2)BaoLiL2连接 - 2 3)BaoLiL2连接及自动初始化准备 (使正版账户登录不受任何影响,BaoLi和正版L2完全兼容) 4)BaoLiL2连接自动初始化 5)L1/L2切换 (ID4000调用),CTRL+P 仍然保留是全屏的功能 6)绕过高级行情认证失败提示(自动初始化需要) 7)绕过请先连接到行情主站提示(自动初始化需要) 8)和BaoLi连接及自动初始化有关?似乎不必要 001EC818/005ED418 75 58 jnz tdxw.005ED472 EB 58 jmp tdxw.005ED472 ; 9)提升至L2行情最高权限 A) 绕过(高级)行情未授权提示 B)不明觉厉 001FBE9A/005FCA9A 0F85 DE000000 jnz tdxw.005FCB7E 90 90 90 90 90 90 ;作用不明 搜字串"user.ini", 根据上下文确定 005FCA9A 0F85 DE000000 jnz tdxw.005FCB7E 005FCAA0 8B85 AC3A0000 mov eax,dword ptr ss:[ebp+0x3AAC] 005FCAA6 6A 00 push 0x0 ; /lParam = 0 005FCAA8 6A 00 push 0x0 ; |wParam = 0 005FCAAA 68 0B130000 push 0x130B ; |Message = MSG(130B) 005FCAAF 50 push eax ; |hWnd 005FCAB0 FF15 20579400 call dword ptr ds:[<&USER32.SendMess> ; \SendMessageA 005FCAB6 68 7C639C00 push tdxw.009C637C ; ASCII "user.ini" C)架空账户验证,似乎不必要 001EC8C1/005ED4C1 E8 CA04FAFF call tdxw.0058D990 E8 C104FAFF call tdxw.0058D987 ; 架空账号校验(retn) D)跳过账号校验 似乎不必要 001FBF7C/005FCB7C 75 7C jnz tdxw.005FCBFA EB 7C jmp Tdxw.005FCBFA ; 跳过账号校验 搜字串 "校验账号成功!点[确定]按钮后,请选择您的交易券商。", 其上方的第二个跳转 E)架空登录授权核查 似乎不必要 01EC234/005ECE34 E8 E770F0FF call tdxw.004F3F20 E8 CE70F0FF call tdxw.004F3F07 ; 架空登录授权核查 搜字串"登录被取消", 其上面的调用语句 F)绕过身份验证! 似乎不必要 01EC5BB/005ED1BB 0F85 9D000000 jnz tdxw.005ED25E E9 9E000000 jmp Tdxw.005ED25E 搜字串"连接被拒绝,行情主站需要进行身份验证!",其上面的条件跳转,上下文定位如下 (搜"试用行情已满",在其下面找也可以) G)优化窗口刷新? 002E752E/006E812E A1 79D2AE00 MOV EAX, DWORD PTR DS:[0xAED279] B8 01000000 mov eax,1 H)这个应该是必要的防闪退 003B15FE/007B21FE C2 0800 retn 0x8 -->在这句之前插入 007B21FE 83FE 00 cmp esi,0x0 007B2201 75 05 jnz short Tdxw.007B2208 007B2203 BE 01000000 mov esi,0x1 ;避免ESI=0的情况 007B2208 C2 0800 retn 0x8 I)绕过密码认证?似乎不必要 001D2452/005D3052 75 3D jnz tdxw.005D3091 EB 3D jmp short Tdxw.005D3091 ; 绕过密码认证 搜字串"请输入密码",其上面的条件跳转,上下文如下 005D3052 75 3D jnz Xtdxw.005D3091 005D3054 8B4D 20 mov ecx,dword ptr ss:[ebp+0x20] 005D3057 6A 00 push 0x0 005D3059 6A 00 push 0x0 005D305B 6A 30 push 0x30 005D305D 68 F07E9F00 push tdxw.009F7EF0 ; ASCII "请输入密码" J)扩展情授权? 001EE2F4/005EEEF4 8B85 20070000 mov eax,dword ptr ss:[ebp+0x720] B8 4CAA9C00 mov eax, tdxw.009CAA4C ; ASCII "00" 八 其它优化 下面这些改动是为了什么目的?是否必要,只有充分试用之后才能明白。希望大玩家们能点拨。 1)XXXX提权 0015FB4F/0056074F 85C0 test eax,eax 3BC0 cmp eax, eax ;提权 2)Tcalc主界面? 003A000A/007A0C0A E8 61F4D6FF call tdxw.00510070 B8 01000000 mov eax,0x1 3)XXXX提权 0039B12E/0079BD2E E8 3D43D7FF call tdxw.00510070 B8 01000000 mov eax,0x1 4)XXXX提权 0034A29D/0074AE9D 85C0 test eax,eax 3BC0 cmp eax, eax 5)XXXX提权 001AE12B/005AED2B 85C0 test eax,eax 3BC0 cmp eax, eax ; 提权 6)XXXX提权 001AE09A/005AEC9A 85C0 test eax,eax 3BC0 cmp eax, eax ; 提权 7)XXXX提权 001ADFFD/005AEBFD 85C0 test eax,eax 3BC0 cmp eax, eax ; 提权 8)XXXX提权 001ADF00/005AEB00 76 09 jbe tdxw.005AEB0B 90 90 ; 提权 9)XXXX提权 001ADE7E/005AEA7E 75 47 jnz tdxw.005AEAC7 EB 47 jmp Tdxw.005AEAC7 ; 提权 A)XXXX提权 001ADE08/005AEA08 76 1B jbe tdxw.005AEA25 90 90 ; 提权 B)XXXX提权 001ADB0A/005AE70A 76 09 jbe tdxw.005AE715 90 90 ; 提权 C)XXXX提权 00195966/00596566 75 2E jnz tdxw.00596596 EB 2E jmp dxw.00596596 ; 提权 D)XXXX提权 001ADA1C/005AE61C 73 08 jnb tdxw.005AE626 EB 08 jmp tdxw.005AE626 ; 提权 E)XXXX提权 0018D89A/0058E49A 75 6C jnz tdxw.0058E508 EB 6C jmp Tdxw.0058E508 ;提权 F)XXXX提权 001506E5/005512E5 0F85 35020000 jnz tdxw.00551520 E9 36020000 90 jmp Tdxw.00551520 nop ; 提权 G)XXXX提权 00150496/00551096 85C0 test eax,eax 3BC0 cmp eax, eax ; 提权 H)XXXX提权 00150505/00551105 85C0 test eax,eax 3BC0 cmp eax, eax ; 提权 I)XXXX提权 000F774B/004F834B 74 57 je tdxw.004F83A4 EB 57 jmp tdxw.004F83A4 ; 提权 J)XXXX提权 000AAB97/004AB797 77 52 ja tdxw.004AB7EB 90 90 ;提XX权 K)XXXX提权 000227E6/004233E6 8B15 FBD1AE00 mov edx,dword ptr ds:[0xAED1FB] BA 01000000 90 mov edx, 0x1 nop ; 提权 L)XXXX提权 004791C2/00879DC2 75 17 jnz tdxw.00879DDB EB 17 jmp tdxw.00879DDB ;开通传统行情的xx功能 |
|