OllyDbg笔记-对标志寄存器中ZF的理解(逆向方面)
发布日期:2021-06-30 10:40:57 浏览次数:2 分类:技术文章

本文共 605 字,大约阅读时间需要 2 分钟。

这里主要是第6位的ZF。

zf (Zero Flag) 是零标志位,在第6位;它记录相关指令执行后,其结果是否为0,如果为0,那么zf = 1;否则zf = 0

如下面的这个:

这里要介绍两条命令:

Jz=jump if zero (结果为0则设置ZF零标志为1,跳转)

Jnz=jump if not zero

Z这个标志位在程序判断的时候极为重要:

比如下面的代码:

void Widget::btnClicked(){    QString passwd = ui->lineEdit->text();    if(isOK(passwd)){        QMessageBox::information(this, "提示", "成功");    }    else{        QMessageBox::information(this, "提示", "失败");    }}bool Widget::isOK(QString str){    if(str == "www.it1995.cn")        return true;    return false;}

这里就是根据其JZ,进行跳转。

最后一个知识点是TEST

Test的一个非常普遍的用法是用来测试一方寄存器是否为空:

test ecx, ecx 

jz somewhere

如果ecx为零,设置ZF零标志为1,Jz跳转

 

转载地址:https://it1995.blog.csdn.net/article/details/103413412 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C++|Linux工作笔记-C++获取Linux中shell命令结果
下一篇:OllyDbg笔记-暴力破解简单判断程序(TraceMe.exe与简单Qt程序)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月08日 16时09分15秒