datadirectorydlg.asm.bak

来自「汇编写的pe文件信息查看工具」· BAK 代码 · 共 139 行

BAK
139
字号

;显示数据目录表
_ShowDataDirectory	proc	_lpPEHeader,hWnd
			local	@szbuffer[64]:byte
			push	edi
			xor	edi,edi
		mov	edi,_lpPEHeader
		add	edi,0078h
		assume	edi:ptr	IMAGE_DATA_DIRECTORY 

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_EXPORT,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_EXPORT,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_IMPORT,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_IMPORT,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_RES,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SZIE_RES,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_EXCEPTION,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SZIE_EXCEPTION,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_SECURITY,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_SECURITY,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_RELOC,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_RELOC,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_DEBUG,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_DEBUG,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_COPYRIGHT,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_COPYRIGHT,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_GP,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_GP,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_TLS,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_TLS,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_LOADCONFIG,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_LOADCONFIG,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_IAT,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_IAT,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_BOUND,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_BOUND,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_COM,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_COM,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_DELAYIMPORT,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_DELAYIMPORT,addr @szbuffer
		add	edi, sizeof IMAGE_DATA_DIRECTORY

		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].VirtualAddress			
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_RVA_NOUSE,addr @szbuffer
		invoke	wsprintf,addr @szbuffer,addr szFmtHex,[edi].isize
		invoke	SetDlgItemText,hWnd,IDC_EDIT_DD_SIZE_NOUSE,addr @szbuffer


		assume	edi:nothing
			pop	edi
			ret
_ShowDataDirectory	endp




_ProcDlgDATADIR		proc	uses ebx edi esi hWnd,wMsg,wParam,lParam
			mov	eax,wMsg
		.if	eax == WM_CLOSE
			invoke  EndDialog,hWnd,NULL
		.elseif	eax ==  WM_INITDIALOG
			
			invoke	_UnLoadFile,offset stMapFile
			invoke	_LoadIsPEFile,offset szFileName,offset stMapFile,hWnd
			invoke	_ShowDataDirectory,stMapFile.lpPEHeader,hWnd
		.elseif	eax == WM_COMMAND
			mov	eax,wParam
			.if	ax == IDC_OK
				invoke  EndDialog,hWnd,NULL	
				ret
			.endif
		.else	
			mov	eax,FALSE
			ret
		.endif	
		mov	eax,TRUE
		ret
_ProcDlgDATADIR		endp


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?