亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? square.idc

?? 網(wǎng)絡(luò)滲透技術(shù)配書源碼
?? IDC
?? 第 1 頁 / 共 2 頁
字號:
		else if(opcode == "ldi" && GetOpnd(addr,1) == REG ) //ldil 0x55,%r
		{
			D_MSG(DEBUG_FLAG,addr,"ldi",REG);
			return VALUE+getValue(addr,0);
		}
		else if(opcode == "ldo"  && GetOpnd(addr,1) == REG) //ldo 0x456(%r),%r  / ldo  -0xc0 +var_23(%sp),%r
		{
			D_MSG(DEBUG_FLAG,addr,"ldo",REG);
			if(GetOpType(addr,0) !=4) //非相對尋址,出錯
				F_ERR(addr,VALUE);

			tmpStr = GetOpnd(addr,0);
			REG = getRegister(tmpStr);
			if(REG == "")
				F_ERR(addr,VALUE);

			if(REG == "%dp")
				return VALUE + REGDP;
			if(REG == "%r0")
				return VALUE + getValue(addr,0);
			if(REG == "%sp")
				F_STA(addr,VALUE);
			if(REG == "%r28")
				F_RET(addr,VALUE);

			VALUE = VALUE + getValue(addr,0);
		}
		else if(opcode == "or"  && GetOpnd(addr,2) == REG) //目前只能處理or的幾種特殊情形
		{
			auto type1,type2;
			auto str1,str2;
			D_MSG(DEBUG_FLAG,addr,"or",REG);

			type1=GetOpType(addr,0);
			type2=GetOpType(addr,1);

			str1 = GetOpnd(addr,0);
			str2 = GetOpnd(addr,1);

			if( (type1==5 || type1==7) && (type2==5 || type2==7) ) //or 0x45,0x23 ,%r
			{
				VALUE = VALUE + (getValue(addr,0) | getValue(addr,1));
			}
			else if(type1 == 1 && (str2=="0" || str2=="%r0") ) // or %r,0,%r  / or %r,%r0,%r
			{
				if(str1 == "%dp")
					return VALUE + REGDP;
				if(str1 == "%r0")
					return VALUE ;
				if(str1 == "%sp")
					F_STA(addr,VALUE);
				if(str1 == "%r28")
					F_RET(addr,VALUE);

				REG = str1;  //如果引用的是其他積存器則繼續(xù)回溯
			}
			else
				F_ERR(addr,VALUE);  //其他情形出錯


		}
		else if(opcode == "ldw"  && GetOpnd(addr,1) == REG) //ldw %r15(%r23),%r3 / ldw 4(%r1),%r2 / ldw -0x44+var_8(%sp,%r3)
		{
			D_MSG(DEBUG_FLAG,addr,"ldw",REG);
			type = GetOpType(addr,0);
			if(type != 4 ) //目前只能處理基址尋址
				F_ERR(addr,VALUE);

			tmpReg = getRegister(GetOpnd(addr,0));
			if(tmpReg == "")
				F_ERR(addr,VALUE);

			tmp = getValue(addr,0);

			if(tmpReg == "%dp") //ldw -0x4882(%dp),%r26
			{
				if(tmp == "ERR")
					F_ERR(addr,VALUE);
				tmpAddr = tmp + REGDP;
				return VALUE + Dword(tmpAddr);
			}
			if(tmpReg != "%sp" && tmp != "ERR" )//如果不是棧內(nèi)變量試圖在前10條指令內(nèi)找到 ldil 0x77,%dp,%r,如果沒有找到則出錯
			{
				//addil           -0x800, %dp, %r1
				// . . . . 
				//ldw             -0x150(%sr0,%r1), %r21 # ._write
				//ldw             -0x14C(%sr0,%r1), %r19 # dword_40024E74
				//該處理方式不是非常嚴(yán)謹(jǐn),基本基于常見如上形勢,出現(xiàn),如果沒有找到就將整個作為REG,試圖找到對應(yīng)的stw
				auto n ;
				n=0;
				tmpAddr = addr;
				while(tmpAddr > FUNC_BEGIN &&  tmpAddr < FUNC_END && n < 30 && CLICK <PREVENT_UN_LOCK_CLICK )
				{
					tmpAddr =tmpAddr-4;//=RfirstB(tmpAddr);
					n++;
					CLICK++; //防止死循環(huán)

					if(GetMnem(tmpAddr) == "addil" && GetOpnd(tmpAddr,1) == "%dp" && GetOpnd(tmpAddr,2) == tmpReg)
					{
						tmpValue = getValue(tmpAddr,0);
						if(tmpValue == "ERR")
							F_ERR(tmpAddr,VALUE);
						return VALUE + Dword( tmp + tmpValue+REGDP );
					}
					else if(GetMnem(tmpAddr)=="ldil" || GetMnem(tmpAddr)=="ldi" && GetOpnd(tmpAddr,1) == tmpReg)
					{
						tmpValue =getValue(tmpAddr,0);
						if(tmpValue == "ERR")
							F_ERR(tmpAddr,VALUE);
						return VALUE + Dword( tmp + tmpValue);
					}
					else if(GetMnem(tmpAddr) == "copy" && GetOpnd(tmpAddr,1) == tmpReg)
					{
						tmpReg = GetOpnd(tmpAddr,0);
						if(GetOpType(tmpAddr,0) == 1)
						{
							if(tmpReg == "%r0")
								return VALUE + Dword(tmp);
							if(tmpReg == "%dp")
								return VALUE + Dword(tmp + REGDP);
							if(tmpReg == "%sp")
								break;
						}
						else
						{
							return VALUE + Dword(tmp + getValue(tmpAddr,0));
						}
					}
				}// END while  (指定范圍內(nèi)尋找能迅速處理的指令)
			}

			//將整個字符串 -0x140+var_48(%sr0,%sp) 作為尋找對象,該目標(biāo)只能由stw處理。
			REG = GetOpnd(addr,0);  //繼續(xù)回溯
		}
		else if(opcode == "stw" && GetOpnd(addr,1) == REG) //stw %r,sw  / stw 0x88,sw
		{
			D_MSG(DEBUG_FLAG,addr,"stw",REG);
			type = GetOpType(addr,0);
			if(type == 1) //寄存器
			{
				tmpReg = GetOpnd(addr,0);
				if(tmpReg == "%dp")
					return VALUE + REGDP;
				if(tmpReg == "%r0")
					return VALUE;
				if(tmpReg == "%sp")
					F_STA(addr,VALUE);
				if(tmpReg == "%r28")
					F_RET(addr,VALUE);
				REG = tmpReg;  //繼續(xù)回溯
			}	
			else if(type == 5 || type == 7)
				return VALUE + getValue(addr,0);
			else
				F_ERR(addr,VALUE);

		}
		else if(GetOpnd(addr,1)==REG)  //未實現(xiàn)相應(yīng)處理的指令
		{
			if( opcode=="ldb" || opcode=="ldh" || opcode=="addib" || opcode=="movib")
				F_IMP(addr,VALUE);
		}
		else if(GetOpnd(addr,2)==REG)
		{
			if(opcode=="sub"||opcode=="and"||opcode=="add"||opcode=="subi")
				F_IMP(addr,VALUE);
			else if(opcode=="shrd"||opcode=="xor"||opcode=="uxor")
				F_IMP(addr,VALUE);
		}
		else if(GetOpnd(addr,3)==REG)
		{
			if(opcode=="depw" || opcode=="shladd" || opcode=="extrw")
				F_IMP(addr,VALUE);
		}


	} //END while(addr > FUNC_BEGIN)

	//現(xiàn)在已經(jīng)找離開了函數(shù)區(qū)域
	if( CLICK == PREVENT_UN_LOCK_CLICK )
	{
		if(DEBUG_FLAG >=3)
			Message("ERROR: getDataResEx() 出現(xiàn)死循環(huán) : 0x%x  0x%x!\n",_addr,addr);

		if(DEBUG_FLAG == 10) //如果調(diào)試等級為10則退出程序,退回到IDA
		{
			//沒有找到合適的功能函數(shù) :(
		}

		F_ERR(3,0);
	}
	
	if(REG=="%r26")
		F_ARG(REG,VALUE);
	if(REG=="%r25")
		F_ARG(REG,VALUE);
	if(REG=="%r24")
		F_ARG(REG,VALUE);
	if(REG=="%r23")
		F_ARG(REG,VALUE);

	//仍然沒有判斷出來,出錯
	F_NOF(REG,VALUE);
}

/**
函數(shù): long getDataRes(long,string,long)
說明: 取得數(shù)據(jù)來源 ,該函數(shù)是對getDataResEx()的包裝。
**/
static getDataRes(_addr,_reg,_debugFlag)
{
	auto tmp,tmpValue;

	tmpValue = getDataResEx(_addr,"%r26",_debugFlag);
	tmp = substr(tmpValue,0,3);

	if( !isDRValue(tmpValue) )
	{
		if(_debugFlag >=1)
			Message("Get DataResource Failed : %s\n",tmpValue);
		return "ERR";
	}
	return tmpValue;
}
/**
函數(shù):string getDRFunName(string _drString)
說明:返回"RET xxxx xxxx"中第一個xxxx指定處的回溯路徑上小段范圍內(nèi)的最近的一個函數(shù)調(diào)用名稱。出錯返回""。
**/
static getDRFunName(_drString)
{
	auto type,addr,opcode,opnd1,opnd0,tmp;
	auto n,MAX_NUMBER,FUNC_BEGIN,FUNC_END;

	MAX_NUMBER = 40; //在回溯路徑上40個指令內(nèi)尋找函數(shù)調(diào)用

	type=getDRType(_drString) ;
	if(type!= "RET" )
		return "";
	tmp = getDRStr1(_drString);
	addr = xtol(tmp);

	if(addr == 0)
		return "";
	if( GetFunctionName(addr) == "")
		return "";
	if( SegName(addr) != "$CODE$")
		return "";

	FUNC_BEGIN = getFuncBeginEA(addr);
	FUNC_END   = FindFuncEnd(FUNC_BEGIN);
	if(FUNC_BEGIN == BADADDR || FUNC_END == BADADDR || FUNC_END <= FUNC_BEGIN)
		return "";

	addr=RfirstB(addr);
	n = 0;
	while(addr > FUNC_BEGIN && addr < FUNC_END &&  n < MAX_NUMBER)
	{
		addr=RfirstB(addr);
		n++;

		opcode = GetMnem(addr);
		opnd0  = GetOpnd(addr,0);
		opnd1  = GetOpnd(addr,1);
		if(opcode == "call" )
			return opnd0;
		if(opcode == "b" && opnd1 == "%r31")
			return opnd0;
	}

	return "";
}


/**
函數(shù):string getDRStrFunName(string _drString)
說明:返回"STA xxxx xxxx"中第一個xxxx指定處的回溯路徑上小段范圍內(nèi)的字符串操作函數(shù)調(diào)用名稱。出錯返回""。
**/
static getDRStrFunName(_drString)
{
	auto reg,flag,type,addr,opcode,opnd1,opnd0,tmp;
	auto n,MAX_NUMBER,FUNC_BEGIN,FUNC_END;

	MAX_NUMBER = 400; //在回溯路徑上指定范圍內(nèi)尋找函數(shù)調(diào)用

	type=getDRType(_drString) ;
	if(type!= "STA" )
		return "";
	tmp = getDRStr1(_drString);
	addr = xtol(tmp);

	if(addr == 0)
		return "";
	if( GetFunctionName(addr) == "")
		return "";
	if( SegName(addr) != "$CODE$")
		return "";

	if(GetMnem(addr) != "ldo")
		return "";
	flag=GetFlags(addr);
	if(! isStkvar0(flag) )
		return "";
	reg=GetOpnd(addr,0);

	FUNC_BEGIN = getFuncBeginEA(addr);
	FUNC_END   = FindFuncEnd(FUNC_BEGIN);
	if(FUNC_BEGIN == BADADDR || FUNC_END == BADADDR || FUNC_END <= FUNC_BEGIN)
		return "";

	addr=RfirstB(addr);
	n = 0;
	while(addr > FUNC_BEGIN && addr < FUNC_END &&  n < MAX_NUMBER)
	{
		addr=RfirstB(addr);
		n++;

		opcode = GetMnem(addr);
		opnd0  = GetOpnd(addr,0);
		opnd1  = GetOpnd(addr,1);

		if(opcode == "ldo" && opnd0 == reg && opnd1 == "%r26") //目前僅處理給%r26賦值緊跟在call之后的情況
		{
			addr=RfirstB(addr);
			n++;
			opcode = GetMnem(addr);
			opnd0  = GetOpnd(addr,0);
			opnd1  = GetOpnd(addr,1);
			if(opcode == "call"  || (opcode == "b" && opnd1 == "%r31") )
			{
				if(opnd0=="strcpy"||opnd0=="strncpy"||opnd0=="strcat"||opnd0=="strncat")
					return opnd0;
				if(opnd0=="memcpy"||opnd0=="sprintf"||opnd0=="snprintf")
					return opnd0;
			}
		}//end opcode == "ldo" . . .
	}

	return "";
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性大战久久| 久久久www成人免费无遮挡大片| 日韩欧美国产综合在线一区二区三区 | 国产成人在线看| 欧美亚洲一区二区在线观看| 26uuu色噜噜精品一区二区| 一区二区在线观看av| 国产精品中文字幕欧美| 欧美乱妇20p| 亚洲精品成人精品456| 粉嫩高潮美女一区二区三区 | 国产精品久久久久久久久动漫| 天堂精品中文字幕在线| av不卡免费在线观看| 久久久久久久久久看片| 久久精品国产免费| 69精品人人人人| 一区二区三区四区激情 | 欧美一区二区三区婷婷月色 | 国产综合久久久久久鬼色 | 91麻豆6部合集magnet| 久久久久久久综合色一本| 蜜臀a∨国产成人精品| 欧美色网一区二区| 亚洲电影一区二区三区| 色婷婷av一区二区三区大白胸| 最新热久久免费视频| 国产一区二区三区| 久久久久久久久蜜桃| 国产成人在线观看| 久久精品欧美日韩精品| 国产老女人精品毛片久久| 久久日一线二线三线suv| 国产一区二区三区不卡在线观看 | 91国产成人在线| 亚洲免费色视频| 欧美性猛片xxxx免费看久爱| 亚洲午夜电影在线观看| 欧美男男青年gay1069videost | 一区二区三区欧美在线观看| 色婷婷久久99综合精品jk白丝| 亚洲猫色日本管| 欧美色大人视频| 青娱乐精品在线视频| 精品日韩一区二区| 丁香激情综合五月| 一区二区三区日韩在线观看| 欧美日韩成人综合在线一区二区| 日本成人在线看| 久久精品人人做| 91麻豆国产自产在线观看| 亚洲成av人片在www色猫咪| 日韩午夜在线影院| 国产白丝网站精品污在线入口| 国产精品视频一区二区三区不卡| 色菇凉天天综合网| 奇米影视7777精品一区二区| 久久综合色婷婷| 91精彩视频在线| 经典三级在线一区| 中文字幕一区二区三区色视频| 欧美日韩美女一区二区| 国模娜娜一区二区三区| 日韩毛片在线免费观看| 欧美精品色综合| 久久91精品国产91久久小草| 亚洲图片一区二区| 日韩视频不卡中文| 成人av午夜影院| 午夜日韩在线观看| 欧美经典一区二区三区| 在线观看视频一区| 国产一区 二区 三区一级| 亚洲激情成人在线| 久久精品夜色噜噜亚洲aⅴ| 在线观看欧美黄色| 懂色av一区二区三区蜜臀 | 亚洲成人免费在线| 国产丝袜美腿一区二区三区| 欧美日韩一区成人| 97久久超碰国产精品电影| 极品美女销魂一区二区三区 | √…a在线天堂一区| 精品少妇一区二区三区免费观看 | 日韩成人精品视频| 亚洲欧美日韩一区二区| wwwwxxxxx欧美| 91精品福利在线一区二区三区 | 免费看日韩精品| 一区二区不卡在线播放 | 热久久国产精品| 亚洲午夜久久久久久久久电影网| 国产精品女主播在线观看| 精品免费国产二区三区| 69堂成人精品免费视频| 91久久香蕉国产日韩欧美9色| 国产成人免费xxxxxxxx| 精品一区二区日韩| 久久福利资源站| 免费看欧美美女黄的网站| 亚洲国产精品一区二区久久恐怖片| 国产精品国产a级| 国产日本一区二区| 久久久精品国产免费观看同学| 日韩三级免费观看| 欧美一激情一区二区三区| 欧美一三区三区四区免费在线看| 欧洲精品在线观看| 91久久香蕉国产日韩欧美9色| 成人av午夜影院| 91蜜桃视频在线| 91黄色在线观看| 欧美亚洲综合久久| 欧美日韩国产另类一区| 欧美日韩国产影片| 欧美一区二区高清| 精品国产人成亚洲区| 精品国产在天天线2019| 精品999在线播放| 国产亚洲欧美激情| 国产精品免费视频观看| 专区另类欧美日韩| 一区二区三区精品视频| 亚洲成人免费观看| 久久精品国产99国产| 国产在线视频一区二区三区| 国产美女视频一区| 不卡的av中国片| 欧美日韩中文精品| 欧美成人一区二区三区片免费 | 美女mm1313爽爽久久久蜜臀| 久久99蜜桃精品| 国产白丝精品91爽爽久久 | 久久午夜国产精品| 中文字幕第一区第二区| 成人欧美一区二区三区黑人麻豆| 亚洲国产精品欧美一二99| 日本美女视频一区二区| 欧美一区二区视频在线观看2022 | 中文字幕在线不卡视频| 国产精品国产三级国产有无不卡| 亚洲三级小视频| 丝袜a∨在线一区二区三区不卡| 免费亚洲电影在线| 国产99久久久久久免费看农村| 色噜噜狠狠一区二区三区果冻| 91精品国产品国语在线不卡| 中文字幕不卡在线播放| 亚洲高清在线视频| 国产精品1024| 欧美精品一级二级三级| 国产欧美中文在线| 舔着乳尖日韩一区| k8久久久一区二区三区| 欧美精选一区二区| 国产精品久久久久影院老司 | 日韩精品电影在线观看| 国产91精品露脸国语对白| 欧美三级乱人伦电影| 久久久一区二区三区| 亚洲丰满少妇videoshd| 国产精品第五页| 日韩欧美视频一区| 国产精品久久久爽爽爽麻豆色哟哟 | 91麻豆高清视频| 欧美大片日本大片免费观看| ...av二区三区久久精品| 九色综合狠狠综合久久| 一本一本大道香蕉久在线精品| 2017欧美狠狠色| 天天av天天翘天天综合网色鬼国产| 丁香桃色午夜亚洲一区二区三区| 欧美乱妇20p| 亚洲综合色区另类av| 成人av免费在线| 国产三级欧美三级日产三级99| 五月婷婷久久丁香| 91福利视频网站| 成人欧美一区二区三区| 国产经典欧美精品| 精品国产一区二区亚洲人成毛片| 婷婷丁香激情综合| 欧美日韩国产一级| 依依成人综合视频| 91老师国产黑色丝袜在线| 亚洲精品在线网站| 石原莉奈在线亚洲三区| 欧美吻胸吃奶大尺度电影| 亚洲人成亚洲人成在线观看图片 | 91黄色免费观看| 日本一区二区三级电影在线观看| 美女视频一区在线观看| 91精品国产欧美一区二区成人| 亚洲一区免费在线观看| 欧美视频一区在线观看| 夜色激情一区二区| 欧美性色黄大片手机版| 亚洲二区在线观看| 制服丝袜亚洲精品中文字幕| 天堂va蜜桃一区二区三区 |