|
RT。。。。
今天考虑给ssreader加个自定义hddkey。。
patch了SSReaderPlug.dll SSReaderPlug.ocx
最后patch的时候发现居然莫名其妙的登录过期了。。。
试了多种patch方法,都无效,patch的确生效了,但是登录莫名其妙过期。。。。最后发现是这段代码惹的祸。
- GetSystemTime(&SystemTime);
- TimeZoneInformation.Bias = -480;
- wcscpy(TimeZoneInformation.StandardName, L"China Standard Time");
- SystemTimeToTzSpecificLocalTime(&TimeZoneInformation, &SystemTime, &LocalTime);
- HIWORD(v19) = LocalTime.wYear;
- LOWORD(v19) = LocalTime.wMonth;
- v18 = LocalTime.wDay;
- HIWORD(v17) = *(_WORD *)(a1 + 0xA4);
- LOWORD(v17) = *(_BYTE *)(a1 + 0xA6);
- v16 = *(_BYTE *)(a1 + 0xA7);
复制代码
里面TimeZoneIformation结构压根就没有完整初始化,里面部分值实际上是其他地方填进来的废值(getHddKey函数),然后凑巧填入的值能使SystemTimeToTzSpecificLocalTime正常工作。结果按照正常的patch思路,patch后,TimeZone里面的值可能无法正常工作。。。。如是。。。登录过期。
最后直接patch代码里再调用这个破函数完事。。。
PS:按照传统扣除发帖所得? |
|