![]() |
#2
xieheping2005-10-20 21:53
我用这里给你讲好吗,可是我说的不一定,我讲的仅供参考
::00611AE5:: AE SCAS BYTE PTR ES:[EDI] ;串扫描[EDL]当这里的字节存在段寄存器ES 里
::00611AE6:: F7D1 NOT ECX ;取ECX的非
::00611AE8:: 2BF9 SUB EDI,ECX ;将ECX与EDL相减将结果存在EDL里
::00611AEA:: 8BC1 MOV EAX,ECX ;将ECX送到EAX里
::00611AEC:: 8BF7 MOV ESI,EDI ;将EDL送到ESL
::00611AEE:: 8BFA MOV EDI,EDX ;将EDX送到EDL
::00611AF0:: C1E9 02 SHR ECX,2 ;将ECX右移2位
::00611AF3:: F3 REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI];串前缀将EDL里的字串送给ESL
::00611AF4:: A5 MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI] ;将字ESL串送给EDL
::00611AF5:: 8BC8 MOV ECX,EAX ;将EAX送给ECX
::00611AF7:: 83E1 03 AND ECX,3 ;将ECX与3进行逻辑与运算
::00611AFA:: F3 REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]:重复前缀,将ESL里的字串传给EDL
::00611AFB:: A4 MOVS BYTE PTR ES:[EDI],BYTE PTR [ESI] ;将ESL里的字节串传送给EDL
这是一段反编译.
|
请高手翻译一下段程序。我是菜鸟呀什么都看不懂
REPNE SCAS BYTE PTR ES:[EDI]
::00611AE5:: AE SCAS BYTE PTR ES:[EDI]
::00611AE6:: F7D1 NOT ECX
::00611AE8:: 2BF9 SUB EDI,ECX
::00611AEA:: 8BC1 MOV EAX,ECX
::00611AEC:: 8BF7 MOV ESI,EDI
::00611AEE:: 8BFA MOV EDI,EDX
::00611AF0:: C1E9 02 SHR ECX,2
::00611AF3:: F3 REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
::00611AF4:: A5 MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
::00611AF5:: 8BC8 MOV ECX,EAX
::00611AF7:: 83E1 03 AND ECX,3
::00611AFA:: F3 REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
::00611AFB:: A4 MOVS BYTE PTR ES:[EDI],BYTE PTR [ESI]