WebEditor使用时间限制去除分析
步骤: 用TRW2k载入WebEditor 3,按F10至
4F7F51 Call 00518BE4
换F8进入Call内(按F10带过过期提示便会出现),此时看一下你所处的
位置。按F10至
518BF4 Call Near [EAX+58]
换F8进入Call内,再看一下你所处的位置,会发现你又处于程式中了。按F10至
475AEB Call 00476280
换F8切入,该Call便是比较时间的程序段。下面是该Call的内容:
0167:00476280 PUSH EBP
0167:00476281 MOV EBP,ESP
0167:00476283 PUSH ECX
0167:00476284 LEA EAX,[EBP-04]
0167:00476287 PUSH EAX
0167:00476288 CALL `MSVCRT!time`
0167:0047628E ADD ESP,BYTE +04
0167:00476291 LEA ECX,[EBP-04]
0167:00476294 PUSH ECX
0167:00476295 CALL `MSVCRT!localtime` —>获得当前时间。
0167:0047629B MOV ECX,[EAX+14] —>将年放入ECX,
0167:0047629E MOV EDX,[EAX+10] —>将月放入EDX,
0167:004762A1 MOV EAX,[EAX+0C] —>将日放入EAX。
0167:004762A4 ADD ESP,BYTE +04
0167:004762A7 ADD ECX,076C
0167:004762AD INC EDX
0167:004762AE CMP ECX,07CF —>?7CF 看看是多少?
0167:004762B4 JG 004762CF —>若年大于1999则去死。用code on看一下该处的代码并记下来。
0167:004762B6 JNZ 004762BD
0167:004762B8 CMP EDX,BYTE +04
0167:004762BB JG 004762CF
0167:004762BD CMP ECX,07CF —>再比较一次年,
0167:004762C3 JNZ 004762E2 —>若二者不等(则肯定是小于过期年了),则正确执行。
以下代码请自己分析:
0167:004762C5 CMP EDX,BYTE +04
0167:004762C8 JNZ 004762E2
0167:004762CA CMP EAX,BYTE +1E
0167:004762CD JNG 004762E2
0167:004762CF PUSH DWORD CB38
0167:004762D4 CALL 0044FF20
0167:004762D9 ADD ESP,BYTE +04
0167:004762DC XOR EAX,EAX
0167:004762DE MOV ESP,EBP
0167:004762E0 POP EBP
0167:004762E1 RET
总结一下,查找 81F9CF070000 7F 19
— —
改为 ==>90 90
OK,收工!