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

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

?? main.c

?? 反匯編工具原代碼,從sourceforge上下的
?? C
字號:
/*
 *
 * File Name: 
 *
 *		main.c
 *
 * Summary:
 *
 *		This file was created to be included within a 'disassembler' project for PE 
 *		image files running on x86 and x86-compatible processors.
 *
 *		File contains functions forming a framework for loading a PE file through 
 *		memory mapping, verifying if it's a valid PE and coordinating the process
 *		of disassembling
 * 
 *
 * Copyright (C) 2004, Isaac Sigasa [isigasa@ananzi.co.za]
 * All Rights Reserved
 *
 *
 *  
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 *
 *		-	Redistributions of source code must retain the above copyright notice, 
 *			this list of conditions and the following disclaimer. 
 *
 *		-	Redistributions in binary form must reproduce the above copyright notice, 
 *			this list of conditions and the following disclaimer in the documentation 
 *			and/or other materials provided with the distribution. 
 *
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. 
 * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 */

#include <windows.h>
#include <winnt.h>
#include <string.h>
#include <stdio.h>
#include "disasm.h"


#define EXTRACT_DISASM			0x00010


BOOL FileExists(const char *strFileName)
{
	WIN32_FIND_DATA FindData;
	HANDLE HFind = FindFirstFile(strFileName,&FindData);
	BOOL Found = (HFind == INVALID_HANDLE_VALUE)? FALSE : TRUE;
	FindClose(HFind);
	return Found;
};


typedef union _ImageBase
{
	LPVOID ImageBase;
	PIMAGE_DOS_HEADER pDOSHeader;
}ImageBase, *PImageBase;


typedef struct _PEBFFDescriptor
{
	ImageBase UImageBase;
	PIMAGE_NT_HEADERS pImageNTHeader;
	PIMAGE_SECTION_HEADER pSectionHeader;
}PEBFFDescriptor, *PPEBFFDescriptor;


PBYTE RVAtoVA(PEBFFDescriptor *BFF, DWORD nRVA)
{
	DWORD i;

	if(nRVA == 0)
		return NULL;
	for(i = 0; i < BFF->pImageNTHeader->FileHeader.NumberOfSections; i++)
	{
		DWORD startVA = BFF->pSectionHeader[i].VirtualAddress;
		DWORD endVA = startVA + BFF->pSectionHeader[i].SizeOfRawData;

		if((nRVA >= startVA)&&(nRVA < endVA))
		{
			return (PBYTE)BFF->UImageBase.ImageBase + BFF->pSectionHeader[i].PointerToRawData 
				          + nRVA - BFF->pSectionHeader[i].VirtualAddress;
		}
	}
	return NULL;
};


typedef struct _FileMapping
{
	HANDLE HFile;						
	HANDLE HFileMapping;	
	LPVOID pBaseAddress;
}FileMapping, *PFileMapping;


DWORD AllocateFileMapping(const char *strFileName, FileMapping* pFileMapping)
{
	ZeroMemory(pFileMapping, sizeof(*pFileMapping));
	pFileMapping->HFile = CreateFile(strFileName,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);
	if(pFileMapping->HFile == INVALID_HANDLE_VALUE)
		return GetLastError();		
	pFileMapping->HFileMapping = CreateFileMapping(pFileMapping->HFile,0,PAGE_READONLY,0,0,NULL);
	if(!pFileMapping->HFileMapping)
		return GetLastError();
	pFileMapping->pBaseAddress = MapViewOfFile(pFileMapping->HFileMapping,FILE_MAP_READ,0,0,0);
	if(!pFileMapping->pBaseAddress)
		return GetLastError();
	return ERROR_SUCCESS;
};


void DeallocateFileMapping(FileMapping* pFileMapping)
{
	if(pFileMapping->HFileMapping)
		UnmapViewOfFile(pFileMapping->pBaseAddress);
	if(pFileMapping->HFileMapping)
		CloseHandle(pFileMapping->HFileMapping);
	if(pFileMapping->HFile)
		CloseHandle(pFileMapping->HFile);
};


DWORD InitializePEBFF(FileMapping *pFileMapping, PEBFFDescriptor* pBFF)
{
	ZeroMemory(pBFF,sizeof(*pBFF));
	pBFF->UImageBase.ImageBase = pFileMapping->pBaseAddress; 
	if(IsBadReadPtr(pBFF->UImageBase.ImageBase,sizeof(pBFF->UImageBase.ImageBase)))
		return ERROR_BAD_EXE_FORMAT;
	
	/* Check if we got a valid DOS signature */
	if(pBFF->UImageBase.pDOSHeader->e_magic != IMAGE_DOS_SIGNATURE)
		return ERROR_BAD_EXE_FORMAT;
	
	pBFF->pImageNTHeader = (PIMAGE_NT_HEADERS32)((char*)pBFF->UImageBase.ImageBase + pBFF->UImageBase.pDOSHeader->e_lfanew);
	if(IsBadReadPtr(pBFF->pImageNTHeader,sizeof(*pBFF->pImageNTHeader)))
		return ERROR_BAD_EXE_FORMAT;
	/* Check if we got a valid PE signature */
	if(pBFF->pImageNTHeader->Signature != IMAGE_NT_SIGNATURE)
		return ERROR_BAD_EXE_FORMAT;
	if(pBFF->pImageNTHeader->FileHeader.NumberOfSections)
		pBFF->pSectionHeader = (PIMAGE_SECTION_HEADER)((char*)(&pBFF->pImageNTHeader->OptionalHeader) + pBFF->pImageNTHeader->FileHeader.SizeOfOptionalHeader);
	else
		pBFF->pSectionHeader = NULL;

	return ERROR_SUCCESS;
};


int main(int argc, char *argv[])
{
	DWORD ret;
	DWORD i;
	FileMapping lFileMapping;
	char ErrorMessage[256];
	PBYTE pStart;	
	PBYTE pEnd;
	PBYTE pLoadAddress;
	PIMAGE_SECTION_HEADER pSection;
	PEBFFDescriptor BFF;

	ZeroMemory(ErrorMessage,sizeof(ErrorMessage));
	printf(	"PE Image Dumper\nCopyright (C) 2004, Isaac Sigasa [isigasa@ananzi.co.za].\n"
			"All Rights Reserved.\n\n");
	
	if(argc != 2)
	{
		printf("\nUsage:\n\tPED Filename");
		return -1;
	}
	if(!FileExists(argv[1]))
	{
		printf("\nError: file %s does not exist",argv[1]);
		return -1;
	}

	printf("\nProcessing file %s\n",argv[argc-1]);
	ret = AllocateFileMapping(argv[argc-1],&lFileMapping);
	if(ret != ERROR_SUCCESS)
	{
		FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0,ret,0,ErrorMessage,sizeof(ErrorMessage),0);
		printf("\nError %d: Failed to initialize file mapping,'%s'",ret,ErrorMessage);
		DeallocateFileMapping(&lFileMapping);
		return 1;
	};

	ret = InitializePEBFF(&lFileMapping,&BFF);
	if(ret != ERROR_SUCCESS)
	{
		strcpy(ErrorMessage,"Bad EXE or DLL format");
		printf("\nError %d: Failed to initialize BE BFF, '%s'",ret,ErrorMessage);
		DeallocateFileMapping(&lFileMapping);
		return 1;
	};

	// For now we are dealing with EXEs or DLLs, let's check if that's the case
	if(!((BFF.pImageNTHeader->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) ||
		(BFF.pImageNTHeader->FileHeader.Characteristics & IMAGE_FILE_DLL)))
	{
		printf("\nOnly dealing with either EXECUTABLE or DLL images");
		DeallocateFileMapping(&lFileMapping);
		return 1;
	}; 
	if(BFF.pImageNTHeader->FileHeader.Characteristics & IMAGE_FILE_DLL)
		printf("\nFile type: DLL\n");
	else
	{
		if(BFF.pImageNTHeader->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE)
			printf("\nFile type: EXECUTABLE\n");
	}
	
	/* scan sections - if a section is marked as executable, disassemble it */
	for(i = 0, pSection = BFF.pSectionHeader; i < BFF.pImageNTHeader->FileHeader.NumberOfSections; i++,pSection++)
	{
		if(pSection->Characteristics & IMAGE_SCN_MEM_EXECUTE)
		{
			pLoadAddress = (PBYTE)BFF.pImageNTHeader->OptionalHeader.ImageBase + pSection->VirtualAddress;
			pStart = RVAtoVA(&BFF,pSection->VirtualAddress);
			pEnd = pStart + pSection->Misc.VirtualSize;			
			Disassemble((char*)pLoadAddress,OpSize32,pStart,pEnd);
			printf("\n");
		}
	};
		
	DeallocateFileMapping(&lFileMapping);
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月天欧美精品| 国产一区二区网址| 精品久久久久av影院| 99精品欧美一区二区蜜桃免费| 亚洲成人动漫av| 国产精品夫妻自拍| 久久久久久毛片| 欧美精品久久一区| 色综合中文综合网| 精品一区二区三区香蕉蜜桃 | 久久久久久久久久久久久久久99| 色乱码一区二区三区88| 国产一区二区三区久久久| 亚洲成av人综合在线观看| 中文字幕一区免费在线观看| 欧美成人官网二区| 欧美日韩高清在线| 色婷婷国产精品| 不卡的看片网站| 国产精品一区一区| 久久www免费人成看片高清| 三级欧美韩日大片在线看| 亚洲精品免费播放| 中文一区在线播放| 中文字幕免费不卡| 欧美国产日韩亚洲一区| 欧美精品一区二区三区高清aⅴ| 欧美日韩国产高清一区| 在线观看亚洲成人| 色综合久久久久久久久| 97se狠狠狠综合亚洲狠狠| 高清国产一区二区三区| 国产suv精品一区二区6| 国内精品嫩模私拍在线| 久久99久久99小草精品免视看| 亚瑟在线精品视频| 日韩中文字幕麻豆| 视频一区中文字幕国产| 日韩av在线播放中文字幕| 亚洲r级在线视频| 午夜影院在线观看欧美| 婷婷夜色潮精品综合在线| 天堂va蜜桃一区二区三区漫画版| 亚洲午夜久久久久中文字幕久| 亚洲男女一区二区三区| 一区二区三区在线播放| 亚洲女人的天堂| 一区二区三区四区国产精品| 亚洲理论在线观看| 亚洲综合久久av| 亚洲第一av色| 美女国产一区二区| 国产一区在线观看麻豆| 国产白丝网站精品污在线入口| 成人av网站大全| 色综合天天在线| 欧美日韩一区二区三区免费看| 欧美另类z0zxhd电影| 日韩午夜在线观看视频| 国产丝袜欧美中文另类| 国产精品第五页| 亚洲午夜精品久久久久久久久| 视频一区二区欧美| 国产一区二区在线影院| 99久久久无码国产精品| 欧美精品在欧美一区二区少妇| 日韩欧美一卡二卡| 国产欧美精品一区aⅴ影院| 亚洲人成在线观看一区二区| 亚洲电影一级片| 久久国产精品免费| 9l国产精品久久久久麻豆| 91国产免费看| 精品99999| 成人免费在线观看入口| 午夜视频在线观看一区| 国产一区二三区| 91久久线看在观草草青青| 日韩一区二区中文字幕| 国产精品福利一区| 奇米影视在线99精品| av爱爱亚洲一区| 欧美日本乱大交xxxxx| 日本一区二区成人| 日韩在线播放一区二区| 成人美女视频在线观看| 欧美美女网站色| 国产欧美精品国产国产专区| 亚洲一区在线观看视频| 国产福利不卡视频| 欧美三级韩国三级日本三斤| 久久久国产午夜精品| 亚洲成av人片| www.色综合.com| 精品久久久久久久人人人人传媒| 综合久久给合久久狠狠狠97色 | 日韩成人免费看| 成人蜜臀av电影| 欧美成人一区二区| 一区二区不卡在线播放| 懂色av中文一区二区三区| 欧美一区二区三区播放老司机| 国产精品乱人伦一区二区| 午夜精彩视频在线观看不卡| 99久久免费国产| 久久这里只有精品首页| 亚洲成人免费在线观看| 99re热这里只有精品免费视频| 精品国产污污免费网站入口| 亚洲一区二区三区四区不卡| 本田岬高潮一区二区三区| 精品久久久久久无| 日韩电影一区二区三区| 欧美亚洲一区三区| 亚洲美女区一区| 成人黄色在线看| 国产性做久久久久久| 激情欧美日韩一区二区| 3atv一区二区三区| 亚洲高清在线精品| 在线观看国产91| 亚洲男女毛片无遮挡| 成人黄色大片在线观看| 国产嫩草影院久久久久| 国内精品在线播放| 久久这里只有精品视频网| 激情综合五月天| 日韩精品资源二区在线| 免费观看在线综合色| 91精品国产综合久久蜜臀| 亚洲va韩国va欧美va| 欧美日韩国产首页在线观看| 亚洲自拍偷拍图区| 欧洲一区二区三区在线| 亚洲福利一区二区三区| 欧美日本视频在线| 日韩福利视频网| 日韩三级免费观看| 精品午夜久久福利影院| 日韩精品在线看片z| 久久99精品久久只有精品| 精品国产免费一区二区三区四区 | 色综合久久天天综合网| 亚洲女女做受ⅹxx高潮| 在线精品视频一区二区三四| 亚洲一区二区三区四区在线| 欧美精选一区二区| 日本免费新一区视频| 久久伊99综合婷婷久久伊| 国产成人av福利| 国产精品美日韩| 99久久99久久精品免费观看| 亚洲免费观看在线观看| 欧美三级三级三级| 蜜芽一区二区三区| 久久久精品免费观看| 99久久免费视频.com| 亚洲成av人片| 欧美成人女星排名| 丁香六月久久综合狠狠色| 中文字幕在线不卡一区二区三区| 91老司机福利 在线| 亚洲高清视频的网址| 日韩欧美视频一区| 不卡一区二区中文字幕| 亚洲午夜久久久久久久久电影院| 欧美一区二区久久久| 国产在线不卡一区| 亚洲欧美激情视频在线观看一区二区三区 | 日韩精品一区二区三区蜜臀| 高清不卡一区二区| 免费成人你懂的| 国产性色一区二区| 欧美在线观看视频一区二区三区| 免费成人在线观看视频| 国产精品久久久久精k8| 91麻豆精品国产91久久久久久| 国产一区二区中文字幕| 亚洲人成网站在线| 日韩美女在线视频| 色先锋资源久久综合| 免费欧美在线视频| 综合婷婷亚洲小说| 欧美成人一区二区三区在线观看 | 精品国产欧美一区二区| 91视视频在线直接观看在线看网页在线看| 亚洲一级电影视频| 国产三级精品视频| 欧美日韩一区二区三区免费看 | 国产成人99久久亚洲综合精品| 亚洲一区二区三区小说| 国产午夜精品一区二区三区四区| 欧美性生活大片视频| 国产精品123区| 免费成人av在线播放| 亚洲乱码国产乱码精品精小说 | 亚洲成人av一区二区三区| 国产精品系列在线| 日韩美女主播在线视频一区二区三区| 一本久久综合亚洲鲁鲁五月天|