0050740E |> \C605 A2985F00>MOV BYTE PTR DS:[5F98A2],0
00507415 |. 6A 00 PUSH 0
00507417 |. 6A 00 PUSH 0
00507419 |. 6A 00 PUSH 0
0050741B |. 6A 00 PUSH 0
0050741D |. 6A 00 PUSH 0
0050741F |. 68 65785000 PUSH 3+WinCNC.00507865
00507424 |. E8 27620500 CALL 3+WinCNC.0055D650
00507429 |. A3 B0985F00 MOV DWORD PTR DS:[5F98B0],EAX
0050742E |> 0FBE15 A2985F>/MOVSX EDX,BYTE PTR DS:[5F98A2] <=====(如果这里插入狗)
00507435 |. 85D2 |TEST EDX,EDX
00507437 |. 75 02 |JNZ SHORT 3+WinCNC.0050743B
00507439 |.^ EB F3 \JMP SHORT 3+WinCNC.0050742E
0050743B |> 0FBE05 39E3AB>MOVSX EAX,BYTE PTR DS:[1ABE339] <=====(这里拔出狗,软件运行正常)
00507442 |. 83F8 01 CMP EAX,1
00507445 |. 7C 14 JL SHORT 3+WinCNC.0050745B
00507447 |. 6A 00 PUSH 0
初学,调试了几天还是不明!请教各位大侠!这段代码怎么解决!
这是个工控软件,需要带硬件运行。软件还带个MicroDog USB狗!!
这大概是在代码的中段!我在0050742E <===> 0050743B下F2断点,只要在这小段循环里有狗软件运行正常!但如果反过来在这个循环里拔出狗软件运行后就报错误!
所指向的地址有如下变化:
DS:[5F98A2]
有狗:
005F98A2 0100 ADD DWORD PTR DS:[EAX],EAX
005F98A4 0000 ADD BYTE PTR DS:[EAX],AL
005F98A6 0000 ADD BYTE PTR DS:[EAX],AL
005F98A8 843C5B TEST BYTE PTR DS:[EBX+EBX*2],BH
005F98AB 0070 00 ADD BYTE PTR DS:[EAX],DH
005F98AE 0000 ADD BYTE PTR DS:[EAX],AL
005F98B0 C038 10 SAR BYTE PTR DS:[EAX],10
005F98B3 0201 ADD AL,BYTE PTR DS:[ECX]
005F98B5 0000 ADD BYTE PTR DS:[EAX],AL
005F98B7 0017 ADD BYTE PTR DS:[EDI],DL
005F98B9 0002 ADD BYTE PTR DS:[EDX],AL
005F98BB 0000 ADD BYTE PTR DS:[EAX],AL
005F98BD 0300 ADD EAX,DWORD PTR DS:[EAX]
无狗:
005F98A2 0100 ADD DWORD PTR DS:[EAX],EAX
005F98A4 0000 ADD BYTE PTR DS:[EAX],AL
005F98A6 0000 ADD BYTE PTR DS:[EAX],AL
005F98A8 843C5B TEST BYTE PTR DS:[EBX+EBX*2],BH
005F98AB 0070 00 ADD BYTE PTR DS:[EAX],DH
005F98AE 0000 ADD BYTE PTR DS:[EAX],AL
005F98B0 C038 10 SAR BYTE PTR DS:[EAX],10
005F98B3 0200 ADD AL,BYTE PTR DS:[EAX]
005F98B5 0000 ADD BYTE PTR DS:[EAX],AL
005F98B7 0000 ADD BYTE PTR DS:[EAX],AL
005F98B9 0000 ADD BYTE PTR DS:[EAX],AL
005F98BB 0000 ADD BYTE PTR DS:[EAX],AL
005F98BD 0000 ADD BYTE PTR DS:[EAX],AL
在:005F98B3、005F98B7、005F98B9、005F98BD 这四个地自址数据有变化。
DS:[1ABE339]
有狗:
01ABE339 0000 ADD BYTE PTR DS:[EAX],AL
01ABE33B 006A BA ADD BYTE PTR DS:[EDX-46],CH
01ABE33E 87E8 XCHG EAX,EBP
01ABE340 E5 E2 IN EAX,0E2 ; I/O 命令
01ABE342 C6 ??? ; 未知命令
01ABE343 0800 OR BYTE PTR DS:[EAX],AL
01ABE345 0000 ADD BYTE PTR DS:[EAX],AL
无狗:
01ABE339 0000 ADD BYTE PTR DS:[EAX],AL
01ABE33B 0000 ADD BYTE PTR DS:[EAX],AL
01ABE33D 0000 ADD BYTE PTR DS:[EAX],AL
01ABE33F 0000 ADD BYTE PTR DS:[EAX],AL
01ABE341 0000 ADD BYTE PTR DS:[EAX],AL
01ABE343 0000 ADD BYTE PTR DS:[EAX],AL
01ABE345 0000 ADD BYTE PTR DS:[EAX],AL
在:01ABE33B、01ABE33E、01ABE340、01ABE342、01ABE343 这五个地自址数据有变化。
请教各位大侠!赐教!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课