图解在反汇编中识别VC++之if-else分支语句

592 篇文章 8 订阅 ¥99.90 ¥299.90
165 篇文章 18 订阅
106 篇文章 2 订阅
本文通过一个简单的VC++ win32控制台工程实例,探讨了在debug和release版本中,如何通过反汇编识别if-else分支。在debug版本中,if-else使用CMP和JXX指令实现,而在release版本中,编译器可能优化掉不可达分支。文章提到了不同类型的if-else分支,并鼓励读者深入研究相关高级技术。
摘要由CSDN通过智能技术生成

测试用VC++代码;建一个win32控制台工程;

 

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	int nTest=1;

	if(nTest>0)
		printf("Hello world!\r\n");
	else
		printf("Hello everybody!\r\n");

	return 0;
}


先构建一个debug版本;

 

然后用ollydbg打开;

停留在入口点;01091078处;

 

向下找到if-else分支对应的反汇编代码;

反汇编代码如下;

 

Address   Hex dump     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值