谢谢大家,谢谢。
很遗憾,alt-M以后,01AB7491显示不在任何区块内。内存分布图在下面。
这个软件试用期是30天,经我试验,到第31天便会失效。
请大家帮忙再给点提示吧,中断以后可能在哪里转悠呢?是不是像上面的兄弟说的动态写入内存?如果是,要怎么处理呢?
下面是中断以后的代码:
01D47491 66:8B4C24 0E mov cx, [esp+E] 本机当前日期
01D47496 66:8B5424 0A mov dx, [esp+A] ...... 月份
01D4749B 66:8B4424 08 mov ax, [esp+8] ...... 年
01D474A0 E8 07FEFFFF call 01D472AC
01D474A5 DD5C24 18 fstp qword ptr [esp+18]
01D474A9 9B wait
01D474AA 66:8B4424 16 mov ax, [esp+16]
进入call以后:
01A872AC 55 push ebp
01A872AD 8BEC mov ebp, esp
01A872AF 83C4 F4 add esp, -0C
01A872B2 53 push ebx 3D
01A872B3 56 push esi 3F
01A872B4 57 push edi
01A872B5 33DB xor ebx, ebx
01A872B7 895D F4 mov [ebp-C], ebx
01A872BA 8BF9 mov edi, ecx
01A872BC 8BF2 mov esi, edx
01A872BE 8BD8 mov ebx, eax
01A872C0 33C0 xor eax, eax
01A872C2 55 push ebp
01A872C3 68 0C73A801 push 1A8730C
01A872C8 64:FF30 push dword ptr fs:[eax]
01A872CB 64:8920 mov fs:[eax], esp
01A872CE 8D45 F8 lea eax, [ebp-8]
01A872D1 50 push eax
01A872D2 8BCF mov ecx, edi 本机当前: 日
01A872D4 8BD6 mov edx, esi 月
01A872D6 8BC3 mov eax, ebx 年
01A872D8 E8 07FFFFFF call 01A871E4
01A872DD 84C0 test al, al
01A872DF 75 15 jnz short 01A872F6
再次进入call以后:
01A871E4 55 push ebp
01A871E5 8BEC mov ebp, esp
01A871E7 83C4 F8 add esp, -8
01A871EA 53 push ebx
01A871EB 56 push esi
01A871EC 57 push edi
01A871ED 8BD9 mov ebx, ecx
01A871EF 8BFA mov edi, edx
01A871F1 66:8945 FE mov [ebp-2], ax
01A871F5 C645 FD 00 mov byte ptr [ebp-3], 0
01A871F9 66:8B45 FE mov ax, [ebp-2]
01A871FD E8 A6FFFFFF call 01A871A8
01A87202 83E0 7F and eax, 7F
01A87205 8D0440 lea eax, [eax+eax*2]
01A87208 8D34C5 E480AA01 lea esi, [eax*8+1AA80E4]
01A8720F 66:837D FE 01 cmp word ptr [ebp-2], 1 年份<1则跳转
01A87214 0F82 86000000 jb 01A872A0
01A8721A 66:817D FE 0F27 cmp word ptr [ebp-2], 270F 年份>9999则跳转
01A87220 77 7E ja short 01A872A0
01A87222 66:83FF 01 cmp di, 1 月份<1则跳转
01A87226 72 78 jb short 01A872A0
01A87228 66:83FF 0C cmp di, 0C 月份>12则跳转
01A8722C 77 72 ja short 01A872A0
01A8722E 66:83FB 01 cmp bx, 1 日期<1则跳转
01A87232 72 6C jb short 01A872A0
01A87234 0FB7C7 movzx eax, di
01A87237 66:3B5C46 FE cmp bx, [esi+eax*2-2] 日期>31则跳转
01A8723C 77 62 ja short 01A872A0
01A8723E 0FB7C7 movzx eax, di
01A87241 48 dec eax
01A87242 85C0 test eax, eax
01A87244 7E 0E jle short 01A87254
01A87246 B9 01000000 mov ecx, 1
01A8724B 66:035C4E FE add bx, [esi+ecx*2-2]
01A87250 41 inc ecx
01A87251 48 dec eax
01A87252 ^ 75 F7 jnz short 01A8724B
01A87254 0FB74D FE movzx ecx, word ptr [ebp-2]
01A87258 49 dec ecx
01A87259 8BC1 mov eax, ecx
01A8725B BE 64000000 mov esi, 64
01A87260 99 cdq
01A87261 F7FE idiv esi
01A87263 69F1 6D010000 imul esi, ecx, 16D
01A87269 8BD1 mov edx, ecx
01A8726B 85D2 test edx, edx
01A8726D 79 03 jns short 01A87272
01A8726F 83C2 03 add edx, 3
01A87272 C1FA 02 sar edx, 2
01A87275 03F2 add esi, edx
01A87277 2BF0 sub esi, eax
01A87279 8BC1 mov eax, ecx
01A8727B B9 90010000 mov ecx, 190
01A87280 99 cdq
01A87281 F7F9 idiv ecx
01A87283 03F0 add esi, eax
01A87285 0FB7C3 movzx eax, bx
01A87288 03F0 add esi, eax
01A8728A 81EE 5A950A00 sub esi, 0A955A
01A87290 8975 F8 mov [ebp-8], esi
01A87293 DB45 F8 fild dword ptr [ebp-8]
01A87296 8B45 08 mov eax, [ebp+8]
01A87299 DD18 fstp qword ptr [eax]
01A8729B 9B wait
01A8729C C645 FD 01 mov byte ptr [ebp-3], 1
01A872A0 8A45 FD mov al, [ebp-3]
01A872A3 5F pop edi
01A872A4 5E pop esi
01A872A5 5B pop ebx
01A872A6 59 pop ecx
01A872A7 59 pop ecx
01A872A8 5D pop ebp
01A872A9 C2 0400 retn 4