DLL函数查看工具

易语言 2020-10-05 17:16:59

DLL函数查看工具

.如果真 (取字节集长度 (tmp) = 64)
RtlMoveMemory_IMAGE_DOS_HEADER (IMAGE_DOS_HEADER, 取变量数据地址 (tmp), 64)
.如果真 (IMAGE_DOS_HEADER.e_magic = #MZ)
移动读写位置 (文件号, #文件首, IMAGE_DOS_HEADER.e_lfanew)
tmp = 读入字节集 (文件号, 248)
.如果真 (取字节集长度 (tmp) = 248)
RtlMoveMemory_IMAGE_NT_HEADERS32 (IMAGE_NT_HEADERS32, 取变量数据地址 (tmp), 248)
.如果真 (IMAGE_NT_HEADERS32.Signature = #PE)
重定义数组 (IMAGE_SECTION_HEADER, 假, IMAGE_NT_HEADERS32.FileHeader.NumberOfSections)
移动读写位置 (文件号, #文件首, IMAGE_DOS_HEADER.e_lfanew + 248)
tmp = 读入字节集 (文件号, IMAGE_NT_HEADERS32.FileHeader.NumberOfSections × 40)
.如果真 (取字节集长度 (tmp) = IMAGE_NT_HEADERS32.FileHeader.NumberOfSections × 40)
RtlMoveMemory_IMAGE_SECTION_HEADER (IMAGE_SECTION_HEADER, 取变量数据地址 (tmp), IMAGE_NT_HEADERS32.FileHeader.NumberOfSections × 40)
.计次循环首 (IMAGE_NT_HEADERS32.FileHeader.NumberOfSections, j)
.如果真 (IMAGE_NT_HEADERS32.OptionalHeader.AddressOfEntryPoint ≥ IMAGE_SECTION_HEADER [j].VirtualAddress 且 IMAGE_NT_HEADERS32.OptionalHeader.AddressOfEntryPoint ≤ IMAGE_SECTION_HEADER [j].VirtualAddress + IMAGE_SECTION_HEADER [j].VirtualSize)
移动读写位置 (文件号, #文件首, IMAGE_NT_HEADERS32.OptionalHeader.AddressOfEntryPoint - (IMAGE_SECTION_HEADER [j].VirtualAddress - IMAGE_SECTION_HEADER [j].PointerToRawData))
tmp = 读入字节集 (文件号, 4)
跳出循环 ()
.如果真结束

.计次循环尾 ()