什么是以及如何使用 OllyDbg解释寄存器下的 EFL?
什么是NO
, NB
, E
, NE
, BE
, A
, NS
, PO
, GE
, G
, ...</p>
例子:
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
我徒劳的破译:
00000246 => 0000 ... 0010 0100 0110
NO NB E BE NS PE GE LE
0 0 0 0 0 1 1 1 <- I do not know if this is correct.
(Likely not.)
手术:
AND ESI,7FFFFFFF
结果:
EFL 00000202 (NO,NB,NE,A,NS,PO,GE,G)
我的 ASCII,(灵感来自):
_---------------------------=> E -> NE
/ _----------------------=> BE -> A
| / _------------=> PE -> PO
| | / _--=> LE -> G
| | | /
| | | |
NO NB NE A NS PO GE G
0000 0000 0000 0000 0000 0010 0100 0110
0 0 0 0 0 1 1 1
帮助有以下说法:
EFL 之后是满足当前标志的条件命令的后缀。例如,如果您看到:
EFL 00000A86 (O,NB,NE,A,S,PE,GE,G),
这意味着将采用 JO 和 JNE,而不会采用 JB 和 JPO。
我怀疑CPU Flags、FLAGS register等,但无法识别NO
其中任何一个。