一个关于爆破的迷惑了很久的问题
我们常见的爆破的方法就是修改关键的跳转,例如将jne改为je或者改为nop之类的.如果按照我们通常的逻辑上的理解,上面的方法很正确,不过最近由于真正开始学习汇编的缘故,感到了迷茫.我们知道跳转指令到底是否要跳转是根据标志位来的,比如je到底要不要跳转那要看决定它跳转的标志位的值.那么我们将其改变之后,比如将其改为jne,控制jne跳转的还是要看标志位的值,而我们又并没有修改标志位的值,这样修改之后能成功吗?
有时候好象成功了,那到底为什么成功了呢?如果不能成功,我们又应该怎么修改呢?
一只想学习的鸟热切的期待高手的回答.先在此谢了! 那么麻烦解释一下~我也想知道啊!楼主知道了~就教教我们这些菜鸟拉! 不同的比较不同的测试条件书上都有介绍的
例如
1 根据单个条件标志设置转移 如 jz测试条件 就是 zf =1
2 比较 两个无符号数 jbe测试条件 cf v zf =1
。。
不同指令 测试条件不同 我没学过汇编
所以不懂
但期望有人能说 我也不懂!! 比较 a1=a2 ??,等于就不跳转 ------也就是注册码正确
al不等于a2 注册码不正确----跳转
改一下,改为nop,就为,你输入任何的注册码都成!,
页:
[1]