照样秒杀。
原理是用一个简单的python script,
(1) 在IsDebuggerPresent下断点,修改EAX值
(2) 在每个检查Operator的地方下断点,输出不同值
opstring = dict( [ (0x0, ' '),
(0x1, ' '),
(0x20, ''),
(0x40, ' , '),
(0x41, ' = '),
(0x42, ' > '),
(0x43, ' < '),
(0x44, ' <> '),
(0x45, ' >= '),
(0x46, ' <= '),
(0x47, ' ( '),
(0x48, ' ) '),
(0x49, ' + '),
(0x4a, ' - '),
(0x4b, ' / '),
(0x4c, ' * '),
(0x4d, ' & '),
(0x4e, ' [ '),
(0x4f, ' ] '),
(0x50, ' == '),
(0x51, ' ^ '),
(0x52, ' += '),
(0x53, ' -= '),
(0x54, ' /= '),
(0x55, ' *= '),
(0x56, ' &= '),
(0x7F, '\n') ] )
(3) 在每个检查Operand的地方下断点,根据不同值做不同处理
0x0: ?
0x1: ?
0x5: INT
0x10: INT64
0x20: DOUBLE
0x7F: End of line?
0xFFFF: Start?
0x30: COSTRUCT
0x31: COMMAND
0x32: MACRO
0x33: VAR
0x34: FUNC
0x35: OBJECT
0x36: STRING
0x37: DIRECTIVE
(4) 在每个处理sring的地方下断点,分别考虑single quote only、double quote only、mixed single quote and double quote的状况 |