通达信金融终端开心果交易版经典版1229除时间限制
本帖最后由 longlonglong 于 2021-3-24 21:54 编辑工具:OD;
研究对象:【新年贺礼】通达信金融交易终端(开心果交易版)V2020.12;
来源:网络
研究理由:好玩;
软件类型:exe、dll;
要达到目的:解决过期时间为2021年06月30日
软件限制:
调一下时间2021年07月05日,看看过期限制:
点确定,程序结束。OD加载Tdxw.exe,
VC++编译的,貌似没壳。F9,到出现上面过期对话框,F12,看看堆栈调用,
没有Tdxw.exe什么事。
这个过期对话框估计就是DispatchMessageA或者RtlDispatchException搞出来的东西。
找个下手的突破点,bp GetLocalTime,这个函数通达信会把你搞晕。
看堆栈里有什么,
点确定后,程序调用,
157C6E5C 778318E0ntdll.ZwTerminateProcess
来结束程序运行,找出778318E0ntdll.ZwTerminateProcess是如何是什么时候入栈的。利用OD的run功能,找个合适的start point,这个start point的原则是避开GetMessageA、DispatchMessageA和WaitForSingleObject等,否则前者会让run功能死循环,后者会让run功能假死。我找到模块AddinTradeBox.dll的
080A4CA5 /E9 89590000 jmp AddinTra.080AA633 ; //pj1-2:run 处
当程序第二次运行到jmp AddinTra.080AA633是,设置run条件==0x778318E0,然后ctrl+F11,等了5、6个小时,OD断在模块ntdll.dll,
778011E0 C785 38FFFFFF 0>mov dword ptr ss:,0x0
这时778318E0ntdll.ZwTerminateProcess已经入栈
下面就看程序如何处理778318E0ntdll.ZwTerminateProcess,一路F8,跟到
01C7E1A5 53 push ebx
01C7E1A6 BB FED2AFDA mov ebx,0xDAAFD2FE
01C7E1AB 81F3 FA178278 xor ebx,0x788217FA
01C7E1B1 81EB F399FC40 sub ebx,0x40FC99F3
01C7E1B7 81F3 BD9F3CDD xor ebx,0xDD3C9FBD
01C7E1BD E9 C7070000 jmp Tdxw.01C7E989
01C7E1C2 E9 C5210000 jmp Tdxw.01C8038C
01C7E1C7 EB 0B jmp short Tdxw.01C7E1D4
01C7E1C9 81F3 B39E9B7B xor ebx,0x7B9B9EB3
01C7E1CF E9 3B020000 jmp Tdxw.01C7E40F
01C7E1D4 52 push edx ; ntdll.ZwTerminateProcess
01C7E1D5 EB 16 jmp short Tdxw.01C7E1ED
01C7E1D7 BF 93B0F5F2 mov edi,0xF2F5B093
01C7E1DC 81EF BBBE4428 sub edi,0x2844BEBB
01C7E1E2 81EF 8B5BCCD6 sub edi,0xD6CC5B8B
01C7E1E8 E9 0D080000 jmp Tdxw.01C7E9FA
01C7E1ED BA 57B4FA06 mov edx,0x6FAB457
01C7E1F2 81F2 4356C33E xor edx,0x3EC35643
01C7E1F8 81C2 C1AECFB8 add edx,0xB8CFAEC1
01C7E1FE 81C2 27282AEF add edx,0xEF2A2827
01C7E204 81C2 0447CC1F add edx,0x1FCC4704
转到了寄存器EAX,EDX里,看看上面,明显代码vm了,看看这些代码属于哪里,
属于通达信主程序Tdxw.exe的代码。看来主程序Tdxw.exe没有加壳,但开心果老师自己在通达信主程序Tdxw.exe里添加的功能代码明显vm了。找到了开心果老师添加的代码,基本上就可以取消他的时间限制了,下面来分析这段vm了的代码
01C7E1A5 53 push ebx
找到
01C7FE8C FFD0 call eax ; msvcrt.time
01C7FCB2 8B042F mov eax,dword ptr ds: ; //取得当地时间:dword ptr ds:=60E2D513{2021年07月05日}
01C7D55B 3B45 E0 cmp eax,dword ptr ss: ; //与预置时间比较:dword ptr ss:=60DC94C4{2021年06月30日}
01C7D52F C3 retn ; //user32.MessageBoxA
来看看开心果老师是如何处理预置时间,会不会60DC94C4也vm了,内存映射找一下:C4 94 DC 60
找到2处,真的是明码,一处在主程序Tdxw.exe的Tdxw.vip段里。
好吧,验证一下,我把过期时间改到2022年07月05日{62C40BF2},
结束语:当然也可以不改软件,改电脑系统时间让它直不超过2021年06月30日,但这个方法对证券软件不合适,因为证券软件都是实时的,如果让时间一直不超过2021年06月30日,那么这个软件也就废了。
Tdxw20220705主程序:
https://www.asuswebstorage.com/navigate/a/#/s/985B0DE52A0C486EB5C524AD9366D843Y
新版的解除时间限制,论坛不允许我放出来,还领到一次违规。 hp910079 发表于 2021-1-23 21:56
RainH: 我菜鸟一个,搞了一天还是没搞明白,60E2D513{2021年07月05日 60DC94C4{2021年06月30 ...
60E2D513转换十进制 1625478419,再转换成时间戳 本帖最后由 cgi-bin 于 2021-4-29 16:10 编辑
随风落寞 发表于 2021-1-6 10:35
能去掉图中主程序界面左下的“短线宝”吗?
去掉这个倒是简单。OD载入,搜索短线宝,找到,本地调用来自 004FF3F5 、转到004FF3F5把他NOP。
最新的752版为例,
搜索关键词,,短线宝
0050FE25|E8 26F7FFFF call Tdxw.0050F550
--->
0050FE25 90 nop
厉害,可以前的高级行情版不能用了 感谢楼主分享,楼主辛苦了!。
感谢!学习! 感谢楼主,在用这个软件 有这么复杂吗?
感谢楼主分享,楼主辛苦了! 没有主程序?能不能把顶上面的栏目也弄成黑色? 下载地址呢
通达信用的不多,经常用同花顺!