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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 一個類似與Windows環(huán)境下的softice的源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
		}    }    if(link != (-1))    {        // find global string table        pSHdr = pSHdrOrig;        for(i=0;i<num;i++,pSHdr++)        {            //int sh_name = pSHdr->sh_name;            //printf("LOADER: [%u] %32s %8x %8x %8x %8x %8x\n",i,pStr,pSHdr->sh_offset,pSHdr->sh_size,pSHdr->sh_addr,pSHdr->sh_type,pSHdr->sh_link);		    if(pSHdr->sh_type == SHT_STRTAB && i==link)		    {			    *ppStr = (LPSTR)((int)p+pSHdr->sh_offset);				*pnSymStrLen = pSHdr->sh_size;		    }	    }	    if(*ppStr && pSym)	    {		    LPSTR pStr = *ppStr;			pSymOrig = pSym;		    for(i=0;i<ulSymTabEntries/sizeof(Elf32_Sym);i++)		    {			    pName = &pStr[pSym->st_name];			    //printf("LOADER: [%u] %32s %x %x %x %x\n",i,pName,pSym->st_name,pSym->st_value,pSym->st_info,pSym->st_other);			    pSym++;		    }	    }	    *pLen = ulSymTabEntries;    }    else    {        pSymOrig= NULL;    }    //printf("LOADER: leave find_symtab()\n");	return pSymOrig;}///////////////////////////////////////////////////////////////////////////////////// process_elf()/////////////////////////////////////////////////////////////////////////////////////int process_elf(char* filename,int file,void* p,int len){	Elf32_Ehdr* pEHdr =(Elf32_Ehdr*)p;	Elf32_Shdr* pSHdr;	char* pStr;	PSTAB_ENTRY pStab;	int nStabLen,nSym;	LPSTR pStrTab;	Elf32_Sym* pSymTab;	char szSymName[2048];	int fileout;	int nSymStrLen,nStabStrLen;    int iRetVal = 0;    //printf("LOADER: enter process_elf()\n");    if(strncmp(pEHdr->e_ident,"\177ELF",4) == 0) // is ELF binary magic    {        pSHdr = (Elf32_Shdr*)((int)p+pEHdr->e_shoff);        //printf("LOADER: Section header @ %x (offset %x)\n",pSHdr,pEHdr->e_shoff);        //printf("LOADER: %u entries\n",pEHdr->e_shnum);        //printf("LOADER: string table index %u\n",pEHdr->e_shstrndx);		if((pSymTab = find_symtab(p,pSHdr,pEHdr->e_shnum,pEHdr->e_shstrndx,&nSym,&pStrTab,&nSymStrLen)) != NULL )		{			find_stab_sections(p,pSHdr,&pStab,&nStabLen,&pStr,&nStabStrLen,pEHdr->e_shnum,pEHdr->e_shstrndx);			if(pStab && nStabLen && pStr && nStabStrLen)			{				LPSTR pDot;				strcpy(szSymName,filename);				//printf("LOADER: file name = %s\n",szSymName);				if((pDot = strrchr(szSymName,'.')))				{					*pDot = 0;					strcat(pDot,".sym");				}				else				{					strcat(szSymName,".sym");				}				//printf("LOADER: symbol file name = %s\n",szSymName);                printf("LOADER: creating symbol file %s for %s\n",szSymName,filename);                fileout = creat(szSymName,S_IRUSR|S_IWUSR);     // make r/w for owner                if(fileout != -1)								{					process_stabs(szSymName,								  fileout,								  pSHdr,								  pEHdr->e_shnum*sizeof(Elf32_Shdr),								  p,								  pStab,								  nStabLen,								  pStr,								  nStabStrLen,								  (LPSTR)pSymTab,								  nSym,								  pStrTab,								  nSymStrLen);					close(fileout);				}                else                {                    printf("LOADER: creation of symbol file %s failed\n",szSymName);					iRetVal = 2;                }			}            else                                                                      {                                                                             printf("LOADER: file %s has no data inside symbol tables\n",filename);				if( ulGlobalVerbose )				{                    if( !pStab || !nStabLen )                                                     printf("LOADER: - symbol table is empty or not present\n");                    if( !pStr  || !nStabStrLen )                                                  printf("LOADER: - string table is empty or not present\n");				}                iRetVal = 2;                                                      }                                                                     }                                                                             else                                                                          {                                                                                 printf("LOADER: file %s does not have a symbol table\n",filename);                         iRetVal = 2;        }    }    else                                                                              {                                                                                     printf("LOADER: file %s is not an ELF binary\n",filename);                            iRetVal = 1;                                                              }	       //printf("LOADER: leave process_elf()\n");    return iRetVal;}///////////////////////////////////////////////////////////////////////////////////// process_file()/////////////////////////////////////////////////////////////////////////////////////int process_file(char* filename){	int file;	void* p;	off_t len;	int iRetVal=0;    //printf("LOADER: enter process_file()\n");    file = open(filename,O_RDONLY);    if(file>0)    {        //printf("LOADER: opened %s as FD %x\n",filename,file);        len = lseek(file,0,SEEK_END);        printf("LOADER: file %s is %u bytes\n",filename,(int)len);                lseek(file,0,SEEK_SET);        p = malloc(len+16);        if(p)        {            //printf("LOADER: malloc'd @ %x\n",p);            memset(p,0,len+16);            if(len == read(file,p,len))            {                //printf("LOADER: trying ELF format\n");                iRetVal = process_elf(filename,file,p,len);            }        }        close(file);    }    else    {        printf("LOADER: file %s could not be opened\n",filename);		iRetVal = 1;    }    //printf("LOADER: leave process_file()\n");    return iRetVal;}///////////////////////////////////////////////////////////////////////////////////// open_debugger()/////////////////////////////////////////////////////////////////////////////////////int	open_debugger(void){    debugger_file = open("/dev/pice0",O_RDONLY);	if(debugger_file<0)	{		printf("LOADER: debugger is not loaded\n");	}	return debugger_file;}///////////////////////////////////////////////////////////////////////////////////// close_debugger()/////////////////////////////////////////////////////////////////////////////////////void close_debugger(void){	close(debugger_file);}///////////////////////////////////////////////////////////////////////////////////// banner()/////////////////////////////////////////////////////////////////////////////////////void banner(void){    printf("#########################################################\n");    printf("####       Symbols LOADER/TRANSLATOR for PICE        ####\n");    printf("#########################################################\n");}#define ACTION_NONE             0#define ACTION_LOAD             1#define ACTION_UNLOAD           2#define ACTION_TRANS            3#define ACTION_RELOAD           4#define ACTION_INSTALL          5#define ACTION_UNINSTALL        6#define ACTION_STATUS           7#define ACTION_BREAK            8#define ACTION_TERMINAL         9#define ACTION_STRESSTEST       10#define ACTION_USERBREAK		11///////////////////////////////////////////////////////////////////////////////////// change_symbols()/////////////////////////////////////////////////////////////////////////////////////void change_symbols(int action,char* pfilename){    int iRetVal = 0;		switch(action)	{		case ACTION_LOAD:			printf("LOADER: loading symbols from %s\n",pfilename);			if(open_debugger()>=0)			{				iRetVal = ioctl(debugger_file,PICE_IOCTL_LOAD,pfilename);				close_debugger();			}			break;		case ACTION_UNLOAD:			printf("LOADER: unloading symbols from %s\n",pfilename);			if(open_debugger()>=0)			{				iRetVal = ioctl(debugger_file,PICE_IOCTL_UNLOAD,pfilename);				close_debugger();			}			break;		case ACTION_RELOAD:			printf("LOADER: reloading all symbols\n");			if(open_debugger()>=0)			{				ioctl(debugger_file,PICE_IOCTL_RELOAD,NULL);				close_debugger();    			printf("LOADER: reloading DONE!\n");			}			break;        default :            printf("LOADER: an internal error has occurred at change_symbols\n");	}	    switch( iRetVal )	{	    case -EINVAL :			printf("LOADER: debugger return value = -EINVAL, operation has failed\n");			break;		case 0 :			// success - silently proceed			break;		default :			printf("LOADER: debugger return value = %i, operation possibly failed\n",iRetVal);	}}///////////////////////////////////////////////////////////////////////////////////// tryinstall()/////////////////////////////////////////////////////////////////////////////////////int tryinstall(void){    char *argv[]={"/sbin/insmod","pice.o",NULL};    int err = 0;    int pid,status;        banner();    printf("LOADER: trying to install debugger...\n");    if(!(open_debugger() < 0) )    {        printf("LOADER: debugger already installed...\n");        close_debugger();        return 0;    }    // create a separate thread    pid = fork();    switch(pid)    {        case -1:            // error when forking, i.e. out E_NOMEM            err = errno;            printf("LOADER: fork failed for execution of '%s' (errno = %u).\n",argv[0],err);            break;        case 0:            // child process handler             execve(argv[0],argv,NULL);            // returns only on error, with return value -1, errno is set            printf("LOADER: couldn't execute '%s' (errno = %u)\n",argv[0],errno);            exit(255);            break;        default:            // parent process handler            printf("LOADER: waiting for debugger to load...\n");            pid = waitpid(pid, &status, 0); // suspend until child is done            if( (pid>0) && WIFEXITED(status) && (WEXITSTATUS(status) == 0) )                printf("LOADER: debugger loaded!\n");            else if( pid<=0 )            {                printf("LOADER: Error on loading debugger! (waitpid() = %i)\n",pid);                err = -1;            }            else if( !WIFEXITED(status) )            {                printf("LOADER: Error on loading debugger! (ifexited = %i)\n",WIFEXITED(status));                err = -1;            }            else            {                printf("LOADER: Error on loading debugger! (exitstatus = %u)\n",WEXITSTATUS(status));                err = WEXITSTATUS(status);            }            break;    }        return err;}///////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲在线中文字幕| 国产欧美日韩在线观看| 一区二区激情视频| 99久久99久久精品国产片果冻 | 国产精品亲子伦对白| 色狠狠色狠狠综合| 亚洲成人一区在线| 亚洲精品高清在线| 自拍偷拍欧美精品| 亚洲人成网站精品片在线观看| 中文字幕精品三区| 国产精品亲子伦对白| √…a在线天堂一区| 亚洲另类春色国产| 亚洲精品成人在线| 亚洲成人自拍偷拍| 日本亚洲欧美天堂免费| 国产在线精品不卡| 国产精品一二三四| 99久久精品99国产精品 | 在线免费av一区| 在线一区二区三区| 欧美日韩成人综合天天影院| 欧美一区二区三区婷婷月色 | 日韩和欧美一区二区| 天堂午夜影视日韩欧美一区二区| 视频一区欧美精品| 精品无码三级在线观看视频| 国产激情一区二区三区四区| www.亚洲色图| 欧美日韩国产另类一区| 日韩一级成人av| 国产人妖乱国产精品人妖| 亚洲视频免费在线| 天天av天天翘天天综合网 | 欧美主播一区二区三区美女| 7777精品伊人久久久大香线蕉的 | 国产亚洲精品资源在线26u| 国产精品日日摸夜夜摸av| 国产亚洲一二三区| 中文字幕av一区二区三区| 欧美激情一区二区三区四区| 亚洲精品国产无天堂网2021| 精品国产一区二区在线观看| 精品国产精品网麻豆系列| 国产欧美日韩一区二区三区在线观看 | 久久奇米777| 国产精品成人一区二区艾草| 亚洲自拍欧美精品| 美国av一区二区| 91在线一区二区三区| 欧美一区二区视频在线观看2020| 精品理论电影在线| 一区二区三区视频在线观看| 久久黄色级2电影| 99re视频精品| 精品国产乱码久久久久久夜甘婷婷| 欧美国产精品一区二区三区| 视频一区二区欧美| 成人av动漫在线| 欧美成人国产一区二区| 亚洲精品视频免费看| 韩国一区二区三区| 欧美日韩国产乱码电影| 国产精品久久久久7777按摩| 另类专区欧美蜜桃臀第一页| 不卡视频免费播放| 日韩天堂在线观看| 亚洲一区二区美女| 成人福利视频在线看| 欧美tickling挠脚心丨vk| 亚洲免费av观看| 懂色av一区二区三区蜜臀| 日韩丝袜美女视频| 午夜电影网一区| 色综合婷婷久久| 久久精品欧美一区二区三区不卡 | 成人黄色小视频| 欧美mv和日韩mv国产网站| 亚洲一二三区视频在线观看| 丰满少妇在线播放bd日韩电影| 欧美一级久久久久久久大片| 久久人人97超碰com| 亚洲人成网站色在线观看| 99久久综合国产精品| 精品日本一线二线三线不卡| 91精品免费观看| 日韩综合在线视频| 精品日韩99亚洲| 国产精品日韩成人| 久久精品一区二区| 欧美视频在线播放| 国产xxx精品视频大全| 2020国产成人综合网| 激情伊人五月天久久综合| 日韩高清在线一区| 亚洲乱码中文字幕综合| 精品国产91九色蝌蚪| 国产91清纯白嫩初高中在线观看| 国产欧美精品一区二区色综合 | 国产婷婷色一区二区三区| 久久91精品国产91久久小草| 91精品国产综合久久久蜜臀粉嫩| 午夜欧美电影在线观看| 激情综合网天天干| 不卡免费追剧大全电视剧网站| 亚洲精品综合在线| 欧美吻胸吃奶大尺度电影| 国产成人精品一区二区三区四区| 国产一级精品在线| 国产精品99久久久久久有的能看 | 日韩欧美一区二区在线视频| 婷婷开心激情综合| 666欧美在线视频| 亚洲日韩欧美一区二区在线| 成人在线综合网站| 五月天国产精品| 国产香蕉久久精品综合网| 99久久精品99国产精品| 蜜桃久久久久久久| 午夜精品影院在线观看| 国产精品国产馆在线真实露脸| 欧美亚洲综合久久| 99re成人在线| 欧美无乱码久久久免费午夜一区| 偷拍自拍另类欧美| 日韩欧美的一区| 国精品**一区二区三区在线蜜桃| 欧美激情一区二区三区四区| 99久久精品免费观看| 亚洲综合激情网| 精品欧美乱码久久久久久1区2区| 国v精品久久久网| 成人欧美一区二区三区小说| 欧美亚洲免费在线一区| 精品伊人久久久久7777人| 国产精品嫩草久久久久| 91黄色在线观看| 亚洲成人免费av| 婷婷国产v国产偷v亚洲高清| 国产精品女主播av| 久久免费美女视频| 国产日韩综合av| 久久在线观看免费| 亚洲国产电影在线观看| 国产精品乱码一区二三区小蝌蚪| 欧美一二三四区在线| 欧美一区二区三区小说| 欧美一级二级三级乱码| 欧美videos大乳护士334| 日韩欧美国产综合一区| 精品入口麻豆88视频| 久久精品亚洲一区二区三区浴池| 国产精品国产馆在线真实露脸 | 欧美一区二区观看视频| 日韩欧美一级特黄在线播放| 欧美电视剧在线看免费| 一区二区三区日韩欧美| 免费高清成人在线| 日本韩国欧美三级| 亚洲午夜视频在线观看| 国产酒店精品激情| 99久久99精品久久久久久| 精品久久久久久亚洲综合网| 中文字幕精品一区二区三区精品| 亚洲乱码中文字幕| 国产成人精品www牛牛影视| 日本三级亚洲精品| 国产精品一级片在线观看| 1000部国产精品成人观看| 欧美另类变人与禽xxxxx| 国产高清精品久久久久| 国产精品三级av在线播放| 91麻豆精品国产91久久久久| 91丨porny丨户外露出| 国产在线日韩欧美| 日本伊人午夜精品| 性做久久久久久免费观看欧美| 国产精品乱码久久久久久| xf在线a精品一区二区视频网站| 欧美日韩中字一区| 色婷婷综合久久| av一二三不卡影片| 国产不卡在线视频| 午夜精品久久久久久久久久久 | 亚洲四区在线观看| 亚洲欧美综合色| 色综合咪咪久久| 精品国产伦一区二区三区免费| 亚洲桃色在线一区| 99久久精品免费观看| 国产精品国产自产拍高清av| 波多野结衣视频一区| 国产真实乱子伦精品视频| 日韩成人av影视| 日本欧美一区二区三区乱码 | 亚洲自拍偷拍欧美| 国产精品美女视频| 欧美国产精品中文字幕| 国产亚洲欧美一区在线观看|