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

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

?? main.c

?? winNT技術操作系統,國外開放的原代碼和LIUX一樣
?? C
?? 第 1 頁 / 共 3 頁
字號:
int process_pe(char* filename,int file,void* p,int len)
{

	PIMAGE_DOS_HEADER pDosHeader;
	PIMAGE_NT_HEADERS pNTHeaders;

	char* pStr;
	PSTAB_ENTRY pStab;
	DWORD nStabLen,nSym;
	char* pStrTab;
	char* pSymTab;

	char szSymName[2048];
	HANDLE fileout;
	int nSymStrLen,nStabStrLen;
    int iRetVal = 0;

	pDosHeader = (PIMAGE_DOS_HEADER)p;
	pNTHeaders = (PIMAGE_NT_HEADERS)((DWORD)p + pDosHeader->e_lfanew);

    if ((pDosHeader->e_magic == IMAGE_DOS_SIGNATURE)
       && (pDosHeader->e_lfanew != 0L)
       && (pNTHeaders->Signature == IMAGE_NT_SIGNATURE))
    {
		if( pNTHeaders->FileHeader.PointerToSymbolTable ){

			pSymTab = (char*)((DWORD)p + pNTHeaders->FileHeader.PointerToSymbolTable);
			nSym = pNTHeaders->FileHeader.NumberOfSymbols;
			//string table follows immediately after symbol table. first 4 bytes give the length of the table
			//references to string table include the first 4 bytes.
			pStrTab = (char*)((PIMAGE_SYMBOL)pSymTab + nSym);
			nSymStrLen = *((DWORD*)pStrTab);
			find_stab_sections(p,IMAGE_FIRST_SECTION(pNTHeaders),pNTHeaders->FileHeader.NumberOfSections,
					&pStab,&nStabLen,&pStr,&nStabStrLen);

			if(pStab && nStabLen && pStr && nStabStrLen)
			{
				LPSTR pDot;

				strcpy(szSymName,filename);
				//printf("LOADER: file name = %s\n",szSymName);
				if((pDot = strchr(szSymName,'.')))
				{
					*pDot = 0;
					strcat(pDot,".dbg");
				}
				else
				{
					strcat(szSymName,".dbg");
				}
				//printf("LOADER: symbol file name = %s\n",szSymName);
	            printf("LOADER: creating symbol file %s for %s\n",szSymName,filename);

				fileout = CreateFile(szSymName,
								     GENERIC_READ | GENERIC_WRITE,
								     0,
								     NULL,
								     CREATE_ALWAYS,
								     0,
								     0);

	            if(fileout != INVALID_HANDLE_VALUE)
				{
					printf("NumberOfSections: %d, size: %d\n", pNTHeaders->FileHeader.NumberOfSections,sizeof(IMAGE_SECTION_HEADER));
					process_stabs(szSymName,
								  fileout,
								  IMAGE_FIRST_SECTION(pNTHeaders),
								  pNTHeaders->FileHeader.NumberOfSections*sizeof(IMAGE_SECTION_HEADER),
								  p,
								  pStab,
								  nStabLen,
								  pStr,
								  nStabStrLen,
								  (char*)pSymTab,
								  nSym*sizeof(IMAGE_SYMBOL),
								  pStrTab,
								  nSymStrLen);

					CloseHandle(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_pe()\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|_O_BINARY);
    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)
        {
			long count;
            //printf("LOADER: malloc'd @ %x\n",p);
            memset(p,0,len+16);
            if(len == (count = _read(file,p,len)))
            {
                //printf("LOADER: trying ELF format\n");
                iRetVal = process_pe(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()
//
///////////////////////////////////////////////////////////////////////////////////
HANDLE	open_debugger(void)
{
    debugger_file = CreateFile("\\Device\\Pice",GENERIC_READ,0,NULL,OPEN_EXISTING,NULL,NULL);
	if(debugger_file == INVALID_HANDLE_VALUE)
	{
		printf("LOADER: debugger is not loaded. Last Error: %ld\n", GetLastError());
	}

	return debugger_file;
}

///////////////////////////////////////////////////////////////////////////////////
// close_debugger()
//
///////////////////////////////////////////////////////////////////////////////////
void close_debugger(void)
{
	if( !CloseHandle(debugger_file) ){
		printf("Error closing debugger handle: %ld\n", GetLastError());
	}
}

int ioctl( HANDLE device, DWORD ioctrlcode, PDEBUGGER_STATUS_BLOCK psb)
{
	 DEBUGGER_STATUS_BLOCK tsb;
	 DWORD bytesreturned;
	 if( !DeviceIoControl( device, ioctrlcode, psb, sizeof(DEBUGGER_STATUS_BLOCK),
			&tsb, sizeof(DEBUGGER_STATUS_BLOCK),&bytesreturned, NULL) ){
		printf("Error in DeviceIoControl: %ld\n", GetLastError());
		return -EINVAL;
	 }
	 else{
		memcpy( psb, &tsb, sizeof(DEBUGGER_STATUS_BLOCK) );
	 }
	 return 0;
}

///////////////////////////////////////////////////////////////////////////////////
// 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

///////////////////////////////////////////////////////////////////////////////////
// change_symbols()
//
///////////////////////////////////////////////////////////////////////////////////
void change_symbols(int action,char* pfilename)
{
    int iRetVal = 0;
	DEBUGGER_STATUS_BLOCK sb;

	strcpy(sb.filename, pfilename);

	switch(action)
	{
		case ACTION_LOAD:
			printf("LOADER: loading symbols from %s\n",pfilename);
			if(open_debugger() != INVALID_HANDLE_VALUE)
			{
				iRetVal = ioctl(debugger_file,PICE_IOCTL_LOAD,&sb);
				close_debugger();
			}
			break;
		case ACTION_UNLOAD:
			printf("LOADER: unloading symbols from %s\n",pfilename);
			if(open_debugger() != INVALID_HANDLE_VALUE)
			{
				iRetVal = ioctl(debugger_file,PICE_IOCTL_UNLOAD,&sb);
				close_debugger();
			}
			break;
		case ACTION_RELOAD:
			printf("LOADER: reloading all symbols\n");
			if(open_debugger() != INVALID_HANDLE_VALUE)
			{
				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);
	}
}

// Dynamic install to be added later
#if 0
///////////////////////////////////////////////////////////////////////////////////
// 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() != INVALID_HANDLE_VALUE  )
    {
        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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区免费看| 亚洲精品国产高清久久伦理二区| 亚洲高清免费视频| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲国产电影在线观看| 精东粉嫩av免费一区二区三区| 日韩一卡二卡三卡国产欧美| 久久国产夜色精品鲁鲁99| 久久综合狠狠综合久久激情| 国产成人av网站| 国产精品人人做人人爽人人添| 成人午夜免费电影| 亚洲人成网站在线| 欧美另类z0zxhd电影| 捆绑紧缚一区二区三区视频| 欧美成人性战久久| 国产iv一区二区三区| 亚洲人成影院在线观看| 欧美日本在线一区| 国产中文字幕一区| 亚洲欧美激情视频在线观看一区二区三区 | 一区二区欧美在线观看| 欧美色中文字幕| 久久国产精品第一页| 久久免费午夜影院| 色综合久久综合网欧美综合网| 亚洲自拍偷拍av| 337p日本欧洲亚洲大胆精品 | 国产精品久久久久影院老司| 在线视频综合导航| 老汉av免费一区二区三区| 久久精品欧美日韩精品| 91福利视频网站| 久久国产生活片100| 中文字幕字幕中文在线中不卡视频| 欧美理论片在线| 黄网站免费久久| 亚洲激情综合网| 久久精品欧美一区二区三区麻豆 | 亚洲在线视频免费观看| 2023国产一二三区日本精品2022| 91免费国产视频网站| 久久99精品久久只有精品| 夜色激情一区二区| 久久久国产午夜精品| 欧美四级电影在线观看| 色综合一区二区三区| 偷拍亚洲欧洲综合| 国产精品国产三级国产三级人妇 | 成a人片亚洲日本久久| 丝袜亚洲精品中文字幕一区| 国产精品天干天干在观线| 91精品一区二区三区久久久久久| 美女任你摸久久| 夜夜揉揉日日人人青青一国产精品| 久久综合九色综合欧美就去吻| 91成人免费在线| www.欧美日韩国产在线| 日韩激情一区二区| 亚洲自拍偷拍欧美| 亚洲乱码国产乱码精品精可以看| 国产三级一区二区| 精品久久人人做人人爱| 欧美精品久久99久久在免费线 | 在线看国产一区二区| 国产91在线|亚洲| 精品一区二区三区在线播放| 天堂精品中文字幕在线| 亚洲一区二区在线免费看| 亚洲视频在线一区观看| 国产拍欧美日韩视频二区| 欧美理论电影在线| 在线成人免费视频| 欧美精品粉嫩高潮一区二区| 在线观看成人小视频| 97精品国产97久久久久久久久久久久| 国产精品白丝jk白祙喷水网站| 久久疯狂做爰流白浆xx| 蜜桃av噜噜一区| 麻豆91免费观看| 久久国产成人午夜av影院| 久久99精品久久久| 久久精品国产澳门| 国产在线精品视频| 国产乱码精品一区二区三区五月婷| 久久精品国产在热久久| 亚洲在线观看免费视频| 五月婷婷欧美视频| 美女视频一区二区| 日本成人在线电影网| 亚洲a一区二区| 日韩av电影一区| 精品一区二区三区免费播放| 久久精品国产色蜜蜜麻豆| 国产精品中文有码| 99综合影院在线| 色婷婷久久久久swag精品| 欧美午夜精品一区二区蜜桃| 欧美女孩性生活视频| 日韩欧美视频在线| 久久伊人蜜桃av一区二区| 国产欧美精品在线观看| 自拍偷在线精品自拍偷无码专区| 国产精品久久网站| 亚洲一区av在线| 麻豆成人在线观看| 成人综合在线网站| 欧洲人成人精品| 欧美成人aa大片| 国产精品乱码人人做人人爱| 亚洲欧美国产77777| 视频在线观看国产精品| 成人三级伦理片| 欧美在线免费视屏| 欧美tk丨vk视频| 亚洲品质自拍视频| 日本不卡一区二区| 成人丝袜高跟foot| 制服丝袜激情欧洲亚洲| 中文字幕精品在线不卡| 性做久久久久久免费观看欧美| 蜜臀久久99精品久久久久宅男 | 成人国产精品免费网站| 色噜噜狠狠成人网p站| 欧美大肚乱孕交hd孕妇| 一区在线观看免费| 日韩专区在线视频| 成人的网站免费观看| 91麻豆精品国产91久久久更新时间| 国产日韩精品久久久| 午夜欧美电影在线观看| 成人激情免费网站| 91精品国产乱码| 日韩理论电影院| 国产综合久久久久久鬼色| 日本高清不卡一区| xvideos.蜜桃一区二区| 亚洲一区免费在线观看| 成人国产精品免费观看动漫| 精品国产一区久久| 五月婷婷激情综合| 色悠悠久久综合| 久久精品人人做人人爽人人| 日韩av不卡在线观看| 在线视频中文字幕一区二区| 国产人久久人人人人爽| 看国产成人h片视频| 91久久一区二区| 国产精品美日韩| 国产在线视频一区二区三区| 欧美日韩一区二区三区在线| 亚洲美女少妇撒尿| 99久久精品久久久久久清纯| 久久蜜桃一区二区| 另类欧美日韩国产在线| 欧美精品在线观看播放| 亚洲影院在线观看| 91搞黄在线观看| ...av二区三区久久精品| 成人av综合一区| 国产精品欧美综合在线| 国产精品77777| 欧美电影免费观看高清完整版在 | 欧美精品少妇一区二区三区| 亚洲自拍偷拍网站| 91国偷自产一区二区三区观看| 国产精品国产三级国产有无不卡| av在线不卡电影| 久久精品欧美一区二区三区麻豆| 国产乱子伦一区二区三区国色天香| 717成人午夜免费福利电影| 午夜精品免费在线观看| 欧洲亚洲精品在线| 亚洲自拍另类综合| 欧美日韩视频在线一区二区| 亚洲精品久久久久久国产精华液| 99久久99久久精品免费观看| 中文字幕一区二区三区蜜月| 不卡影院免费观看| 亚洲欧美在线aaa| 91欧美一区二区| 亚洲综合色区另类av| 欧美日韩一本到| 日韩成人精品视频| 精品国产一区二区三区av性色| 韩国女主播一区| 欧美国产激情一区二区三区蜜月| 国产成人亚洲精品青草天美| 国产偷v国产偷v亚洲高清 | 国产精品主播直播| 日本一区二区三区电影| 一本到高清视频免费精品| 亚洲综合丁香婷婷六月香| 在线综合+亚洲+欧美中文字幕| 蜜臀av性久久久久蜜臀aⅴ| 久久免费精品国产久精品久久久久| 成人黄色a**站在线观看| 一区二区三区自拍| 欧美一级在线免费| 极品美女销魂一区二区三区|