📄 datadirectorydlg.asm
字号:
;显示数据目录表
_ShowDataDirectory proc _lpPEHeader,hWnd
local @szbuffer[64]:byte
push edi
xor edi,edi
mov edi,_lpPEHeader ;edi指向IMAGE_NT_HEADERS
add edi,0078h ;edi指向IMAGE_DATA_DIRECTORY
assume edi:ptr IMAGE_DATA_DIRECTORY
;显示所有DataDirectory
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -