C++黑客編程第五章C語言逆向基礎筆記(三)

switch結構分析

C語言源代碼:

#include <stdio.h>

int main()
{
	int nNum = 0;
	scanf("%d",&nNum);

	switch(nNum)
	{
	case 1:
		{
			printf("1 \r\n");
			break;
		}
	case 2:
		{
			printf("2 \r\n");
			break;
		}
	case 3:
		{
			printf("3 \r\n");
			break;
		}
	case 4:
		{
			printf("4 \r\n");
			break;
		}
	default:
		{
			printf("default \r\n");
			break;
		}

		return 0;
	}
}	

逆向反彙編解析:

switch流程分支圖如下:

查看分支代碼:

00401058地址處的代碼跳轉如下:

上圖連續四個標號地址,分別對應着4個case對應的代碼,該數組中保存了4個值,用表索引正好也是0-3,也就是可以通過var_8中對應的值進行訪問。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章