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

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

?? main.c

?? ReactOS是一些高手根據Windows XP的內核編寫出的類XP。內核實現機理和API函數調用幾乎相同。甚至可以兼容XP的程序。喜歡研究系統內核的人可以看一看。
?? 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女人视频在线观看| 91精品国产乱码久久蜜臀| 成人黄色av电影| 欧美日韩国产高清一区二区| 国产精品99久久久久久久女警| 国产很黄免费观看久久| 97久久精品人人澡人人爽| 欧美理论电影在线| 国产精品久久三区| 日本91福利区| 欧美日韩在线一区二区| 久久精品这里都是精品| 日韩高清不卡在线| 91丨九色丨国产丨porny| 精品sm捆绑视频| 肉色丝袜一区二区| 成人av网站在线观看| 久久久久亚洲综合| 午夜欧美视频在线观看| 国产成人在线电影| 日韩一区二区三区在线观看| 中文字幕亚洲精品在线观看| 美女精品自拍一二三四| 在线观看日韩精品| 中文字幕一区不卡| 成人午夜av影视| 欧美韩国一区二区| 国产91精品露脸国语对白| 精品日韩成人av| 国产一区二区三区高清播放| 欧美日本在线视频| 日产精品久久久久久久性色| 欧美α欧美αv大片| 极品少妇xxxx偷拍精品少妇| 精品日产卡一卡二卡麻豆| 国产尤物一区二区在线| 91精品午夜视频| 国产综合色在线| 亚洲女同一区二区| 欧美一区日本一区韩国一区| 日本不卡视频在线观看| 国产精品久久久久久久久动漫| 91在线国产福利| 夜夜精品视频一区二区| 日韩视频一区二区三区| av成人老司机| 国产一区欧美日韩| 中文字幕一区二区三区不卡| 欧美一区二区视频观看视频| 国产乱子伦视频一区二区三区| 亚洲国产综合人成综合网站| 欧美刺激午夜性久久久久久久| 成人福利视频网站| 欧美96一区二区免费视频| 国产精品久久久久久久久快鸭 | 日韩精品高清不卡| 亚洲免费av在线| 国产精品嫩草影院com| 日韩一本二本av| 欧美日韩高清不卡| 91官网在线观看| 成人看片黄a免费看在线| 韩国v欧美v日本v亚洲v| 蜜桃在线一区二区三区| 天天影视网天天综合色在线播放| 国产精品国产三级国产普通话蜜臀 | 成人欧美一区二区三区| 国产欧美视频在线观看| 精品国产乱码久久久久久浪潮 | 从欧美一区二区三区| 免费观看在线综合色| 亚洲va国产天堂va久久en| 亚洲精品v日韩精品| 欧美精品一区二区三区在线播放| 欧美大片免费久久精品三p| 日韩你懂的在线观看| 26uuu亚洲| 国产精品久久久久久久久久久免费看 | 婷婷亚洲久悠悠色悠在线播放 | 欧美精品久久一区| 97se亚洲国产综合自在线不卡| 国产精品综合在线视频| eeuss鲁片一区二区三区在线看| 色综合久久综合中文综合网| 色www精品视频在线观看| 51精品久久久久久久蜜臀| 中文字幕一区在线观看视频| 亚洲国产裸拍裸体视频在线观看乱了| 偷拍日韩校园综合在线| 高清在线不卡av| 欧美美女喷水视频| 亚洲欧美综合色| 东方欧美亚洲色图在线| 欧美日韩国产不卡| 国产精品网站一区| 捆绑变态av一区二区三区| 色悠悠久久综合| 久久精品人人做人人爽人人| 奇米色一区二区三区四区| 成人动漫一区二区三区| 久久综合久久鬼色中文字| 亚洲人成小说网站色在线 | 成人激情开心网| 国产丝袜欧美中文另类| 久久综合狠狠综合久久激情| 视频在线在亚洲| 国产在线国偷精品免费看| 欧美日韩www| 亚洲一区二区三区四区不卡| 日韩免费一区二区| 天堂在线一区二区| 在线观看视频一区| 午夜久久久久久| 在线播放/欧美激情| 午夜精品久久久久久久蜜桃app| 色婷婷久久久亚洲一区二区三区 | 精品久久人人做人人爰| 国模冰冰炮一区二区| 国产精品久久久久久久久快鸭| 成人久久久精品乱码一区二区三区 | 欧美日韩五月天| 国产剧情一区二区| 中文字幕日韩av资源站| 欧美日韩国产一级| 国产成人在线观看免费网站| 亚洲精品国产品国语在线app| 欧美日韩亚州综合| 成人午夜在线播放| 午夜电影一区二区| 成人免费在线视频观看| 日韩一区二区三区四区| 99久久免费视频.com| 久久91精品久久久久久秒播| 亚洲精品中文在线观看| 国产精品毛片高清在线完整版| 欧美一区二区三区的| 欧美性一二三区| aaa亚洲精品一二三区| 韩国视频一区二区| 久久精品国产亚洲高清剧情介绍 | 风流少妇一区二区| 麻豆视频观看网址久久| 午夜日韩在线观看| 亚洲最新视频在线观看| 国产精品丝袜久久久久久app| 4438成人网| 亚洲精品一线二线三线| 精品奇米国产一区二区三区| 欧美日本高清视频在线观看| 欧美亚洲丝袜传媒另类| 欧美日韩国产一级| 久久综合中文字幕| 国产精品国产三级国产a| 亚洲啪啪综合av一区二区三区| 国产精品福利一区二区| 久久精品在线观看| 一区二区三区中文在线| 午夜天堂影视香蕉久久| 秋霞电影一区二区| 国产另类ts人妖一区二区| 国产成人亚洲精品青草天美| 国产精品一区一区| 色天使色偷偷av一区二区| 666欧美在线视频| 国产精品你懂的| 麻豆传媒一区二区三区| 99久久er热在这里只有精品66| 在线观看91精品国产麻豆| 26uuu精品一区二区| 亚洲在线观看免费| 国产91精品一区二区麻豆亚洲| 91麻豆.com| 国产精品理伦片| 国产麻豆欧美日韩一区| 欧美私人免费视频| 一区二区在线免费观看| 高清国产一区二区| 欧美激情一区二区三区全黄| 免费在线观看视频一区| 7777精品伊人久久久大香线蕉的| 亚洲永久免费视频| 91麻豆国产精品久久| 亚洲欧美日韩综合aⅴ视频| 成人福利在线看| 国产精品不卡视频| 欧美日韩中文字幕精品| 亚洲成人免费在线观看| 欧美一区二区视频在线观看2020 | 国模大尺度一区二区三区| 日韩美女一区二区三区| 国产伦精品一区二区三区免费迷| 欧美精品aⅴ在线视频| 老司机精品视频线观看86| 国产欧美日韩在线视频| 91国内精品野花午夜精品| 国产欧美一区二区精品忘忧草| 日韩高清国产一区在线| 欧美三级视频在线| 国产自产视频一区二区三区| 蜜臀av性久久久久av蜜臀妖精|