⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sectiondlg.asm

📁 汇编写的pe文件信息查看工具
💻 ASM
字号:

_InitSectionList	proc	hWnd
			local	@stlvColumn:LVCOLUMN,@hList:DWORD
		invoke	RtlZeroMemory,addr @stlvColumn,sizeof @stlvColumn
		invoke	GetDlgItem,hWnd,IDC_LIST_SECTION
		mov	@hList,eax
		invoke	SendMessage,@hList,LVM_SETEXTENDEDLISTVIEWSTYLE,NULL,LVS_EX_FULLROWSELECT
		
		mov	@stlvColumn.imask,LVCF_FMT or LVCF_TEXT or LVCF_WIDTH or LVCF_SUBITEM
		mov	@stlvColumn.fmt,LVCFMT_LEFT
		mov	@stlvColumn.iSubItem,0 
		mov	@stlvColumn.lx,100									
		mov	@stlvColumn.pszText,OFFSET ColumTitle1		
		invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTCOLUMN,0,addr @stlvColumn
		
		
		
		mov	@stlvColumn.fmt,LVCFMT_RIGHT 
		mov	@stlvColumn.lx,100
		mov	@stlvColumn.pszText,OFFSET ColumTitle2
		invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTCOLUMN,1,addr @stlvColumn

		
		mov	@stlvColumn.lx,100
		mov	@stlvColumn.pszText,OFFSET ColumTitle3
		invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTCOLUMN,2,addr @stlvColumn

		
		mov	@stlvColumn.lx,100
		mov	@stlvColumn.pszText,OFFSET ColumTitle4
		invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTCOLUMN,3,addr @stlvColumn

		
		mov	@stlvColumn.lx,100
		mov	@stlvColumn.pszText,OFFSET ColumTitle5
		invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTCOLUMN,4,addr @stlvColumn

		
		mov	@stlvColumn.lx,110
		mov	@stlvColumn.pszText,OFFSET ColumTitle6
		invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTCOLUMN,5,addr @stlvColumn			
		ret
_InitSectionList	endp

	
				


_ShowSection		proc	hWnd
			local	@stlvItem:LVITEM
			local	@szName[16]:byte,@szbuffer[1024]:byte
			pushad
			mov	edi,stMapFile.lpPEHeader
			assume  edi:ptr IMAGE_NT_HEADERS
			movzx	ecx,[edi].FileHeader.NumberOfSections
			add	edi,sizeof IMAGE_NT_HEADERS
			assume	edi:ptr IMAGE_SECTION_HEADER
			.while	ecx>0
				push	ecx
				invoke	RtlZeroMemory,addr @szName,sizeof @szName
				push	edi
				push	esi
				mov	esi,edi
				lea	edi,@szName
				mov	ecx,8
				cld
			@@:
				lodsb
				.if !al 
					mov	al,' '	
				.endif
				stosb
				loop	@B
				pop	esi
				pop	edi
				invoke	RtlZeroMemory,addr @stlvItem,sizeof @stlvItem
				mov	@stlvItem.imask,LVIF_TEXT
				mov	@stlvItem.iItem,0
				lea	ebx,@szName
				mov	@stlvItem.pszText,ebx
				mov	@stlvItem.iSubItem,0
				invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_INSERTITEM,0,addr @stlvItem

				invoke	wsprintf,addr @szbuffer, offset szFmtHex,[edi].VirtualAddress
				lea	ebx,@szbuffer
				mov	@stlvItem.pszText,ebx
				mov	@stlvItem.iSubItem,1
				invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_SETITEM,0,addr @stlvItem

				invoke	wsprintf,addr @szbuffer, offset szFmtHex,[edi].Misc.VirtualSize
				lea	ebx,@szbuffer
				mov	@stlvItem.pszText,ebx
				mov	@stlvItem.iSubItem,2
				invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_SETITEM,0,addr @stlvItem

				invoke	wsprintf,addr @szbuffer, offset szFmtHex,[edi].PointerToRawData
				lea	ebx,@szbuffer
				mov	@stlvItem.pszText,ebx
				mov	@stlvItem.iSubItem,3
				invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_SETITEM,0,addr @stlvItem

				invoke	wsprintf,addr @szbuffer, offset szFmtHex,[edi].SizeOfRawData
				lea	ebx,@szbuffer
				mov	@stlvItem.pszText,ebx
				mov	@stlvItem.iSubItem,4
				invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_SETITEM,0,addr @stlvItem

				invoke	wsprintf,addr @szbuffer, offset szFmtHex,[edi].Characteristics
				lea	ebx,@szbuffer
				mov	@stlvItem.pszText,ebx
				mov	@stlvItem.iSubItem,5
				invoke	SendDlgItemMessage,hWnd,IDC_LIST_SECTION,LVM_SETITEM,0,addr @stlvItem
				inc	@stlvItem.iItem 
				add     edi,sizeof IMAGE_SECTION_HEADER
				pop	ecx
				dec	ecx
			.endw

			assume	edi:nothing				
			popad
			ret
_ShowSection		endp
;节表对话框
_ProcDlgSection	proc	uses ebx edi esi hWnd,wMsg,wParam,lParam
			mov	eax,wMsg
		.if	eax == WM_CLOSE
			invoke  EndDialog,hWnd,NULL
		.elseif	eax ==  WM_INITDIALOG			
			mov	eax,hWnd
			mov	hSection,eax
			invoke	_UnLoadFile,offset stMapFile
			invoke	_LoadIsPEFile,offset szFileName,offset stMapFile,hWnd
			invoke	_InitSectionList,hWnd
			invoke	_ShowSection,hWnd
			
		.elseif	eax == WM_COMMAND
			mov	eax,wParam
			.if	ax == IDOK
				invoke  SendMessage,hWnd,WM_CLOSE,NULL,NULL	
				ret
			.endif
		.else	
			mov	eax,FALSE
			ret
		.endif	
		mov	eax,TRUE
		ret
_ProcDlgSection	endp

⌨️ 快捷键说明

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