工具:52下的OD;
研究对象:趋势为王选股;
来源:网络
理由:和谐过程中的一点心得;
软件类型:QSWW.dll;
操作系统:win10x64
要达到目的:解决过期恢复正常功能
这个软件有时间限制,去年脱壳时我是不知道的,脱完壳后一切功能正常,今天拿出来想用一下,没想到不能用了,是悄悄的不能用了。


上面原版界面,加的是VMProtect v3.00 - 3.5.0壳
打开Tdxw.exe,

趋势为王2处一片空白,指标失灵了。我的印象中去年脱完壳后一切正常的,今天的现象说明软件还有时间暗桩。OD加载Tdxw.exe正常运行,内存中找到QSWW.dll,去QSWW.dll的IAT看看有哪些与时间相关的函数,如果能找到GetLocalTime、Time等函数就简单了。
把带点时间日期相关的函数一一下硬件访问断点,找到下面几处:
592D590A - FF25 1C303059 jmp dword ptr ds:[<&kernel32.GetSystemTimeAsFileTime>] ; kernel32.GetSystemTimeAsFileTime
592D59DC - FF25 A8303059 jmp dword ptr ds:[<&kernel32.GetDateFormatW>] ; kernel32.GetDateFormatW
592D59E2 - FF25 AC303059 jmp dword ptr ds:[<&kernel32.GetTimeFormatW>] ; kernel32.GetTimeFormatW
打开软件日k线界面,上面所下断点都没有反应。看来软件作者不想让人轻松找到这个时间暗桩,如果程序IAT中没有GetLocalTime、Time这些函数,建议别下GetLocalTime函数断点,玩通达信的都知道,这种实时软件,通达信中的程序对GetLocalTime函数调用太频繁了,会把人搞崩溃。要让QSWW.dll在OD中断下来,看看QSWW.dll实时在调用哪些程序。Od中查找所有模块间的调用,全部下断点。


换看K线图,OD没反应,一个断点也没断下来。有点神奇了,不把QSWW.dll断到OD来分析,那就不好下手。ctrl+M,到程序代码段去下内存访问断点,

通达信中继续换看K线图,OD终于有反应了,断在,
59249BE9 /E9 62470000 jmp qsww.5924E350
删除内存访问断点,F7跟踪,看能不能跟踪出它是如何实时读取时间的,能找到实时取时间的地方那么软件里的时间暗桩也就能解了。







592A334C FF15 1C303059 call dword ptr ds:[<&kernel32.GetSystemTimeAsFileTime>] ; kernel32.GetSystemTimeAsFileTime
看到调用GetSystemTimeAsFileTime函数,但前面对这个函数下断点的时候,这个函数没有断下来。难道脱壳不完整?还能把软硬断点给屏蔽了?来分析一下这段代码:
从
592A332E /74 18 je short qsww.592A3348
才能跳到
592A334C FF15 1C303059 call dword ptr ds:[<&kernel32.GetSystemTimeAsFileTime>] ; kernel32.GetSystemTimeAsFileTime
没有访问GetSystemTimeAsFileTime函数,可能592A332E /74 18 je short qsww.592A3348条件不成立,那么
592A3343 FF55 F4 call dword ptr ss:[ebp-0xC]
这个call要调用什么?F8

592A3343 FF55 F4 call dword ptr ss:[ebp-0xC] ; KernelBa.GetSystemTimePreciseAsFileTime
调用GetSystemTimePreciseAsFileTime,这个函数从堆栈 ss:[00197A5C]=76AA5D60 (KernelBa.GetSystemTimePreciseAsFileTime)来,根本不在QSWW.dll的IAT中,难怪前面找不到。下面一路F8,跟踪到
[Asm] 纯文本查看 复制代码
59262768 8945 E8 mov dword ptr ss:[ebp-0x18],eax ; //eax=60B8FB02,时间戳{2021年6月3日}5926276B 8955 EC mov dword ptr ss:[ebp-0x14],edx5926276E 6A 00 push 0x059262770 68 80969800 push 0x98968059262775 8B55 F4 mov edx,dword ptr ss:[ebp-0xC]59262778 52 push edx59262779 8B45 F0 mov eax,dword ptr ss:[ebp-0x10]5924FA2B /7C 14 jl short qsww.5924FA415924FA2D |7F 0E jg short qsww.5924FA3D5924FA2F |8B85 2CFFFFFF mov eax,dword ptr ss:[ebp-0xD4] ; //dword ptr ss:[ebp-0xD4]实时时间戳60B8FB025924FA35 |3B85 24FFFFFF cmp eax,dword ptr ss:[ebp-0xDC] ; //dword ptr ss:[ebp-0xDC]预置时间戳5F74AA8B{2020年09月30日}5924FA3B |76 04 jbe short qsww.5924FA41打开程序文件QSWW.dll来验证一下5F74AA8B是不是预置时间戳,程序文件QSWW.dll中查找:

找到一处,改成8B AA 74 6F,保存文件,退出OD,重新打开Tdxw.exe

时间暗桩拔除,程序恢复正常功能。
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]