为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 系统工具源码 正文

易语言PE查看器

三叶资源网 2018-12-17 14:51:24 系统工具源码 2025 ℃ 3 评论

易语言PE查看器

.版本 2
.支持库 spec
.支持库 eAPI

.子程序 查看基本信息
.参数 PE文件, 文本型
.局部变量 文件号, 整数型
.局部变量 tmp, 字节集
.局部变量 j, 整数型

文件号 = 打开文件 (PE文件, #读入, #无限制)
.如果真 (文件号 = 0)
    返回 ()
.如果真结束

tmp = 读入字节集 (文件号, 64)
.如果真 (取字节集长度 (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_NT_HEADERS32.OptionalHeader.DataDirectory [2].Size > 0)

                    重定义数组 (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)
                                编辑框_入口点.内容 = 格式化文本 (“%.8X”, IMAGE_NT_HEADERS32.OptionalHeader.AddressOfEntryPoint)
                                编辑框_偏移.内容 = 格式化文本 (“%.8X”, 到整数 (IMAGE_NT_HEADERS32.OptionalHeader.AddressOfEntryPoint - (IMAGE_SECTION_HEADER [j].VirtualAddress - IMAGE_SECTION_HEADER [j].PointerToRawData)))
                                编辑框_链接器.内容 = 格式化文本 (“%d.%d”, IMAGE_NT_HEADERS32.OptionalHeader.MajorLinkerVersion, IMAGE_NT_HEADERS32.OptionalHeader.MinorLinkerVersion)
                                编辑框_EP.内容 = 到文本 (IMAGE_SECTION_HEADER [j].Name)

                                移动读写位置 (文件号, #文件首, IMAGE_NT_HEADERS32.OptionalHeader.AddressOfEntryPoint - (IMAGE_SECTION_HEADER [j].VirtualAddress - IMAGE_SECTION_HEADER [j].PointerToRawData))
                                tmp = 读入字节集 (文件号, 4)
                                .如果真 (取字节集长度 (tmp) = 4)
                                    编辑框_首字节.内容 = 格式化文本 (“%.2X,%.2X,%.2X,%.2X”, tmp [1], tmp [2], tmp [3], tmp [4])
                                .如果真结束

                                编辑框_子系统.内容 = 格式化文本 (“%.4X”, IMAGE_NT_HEADERS32.OptionalHeader.Subsystem)


                                跳出循环 ()
                            .如果真结束

                        .计次循环尾 ()
                    .如果真结束

                .如果真结束

            .如果真结束

        .如果真结束

    .如果真结束

.如果真结束



关闭文件 (文件号)


@易语言入门教程

易语言PE查看器


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有3位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
DZ论坛post内存注入模块二维码登录mysqlWinHttp类监视热键小米路由器fiddler易语言游戏开发宏插件加QQ好友FTP验证多线程防崩溃例程LOL免更新fiddlercoreapiEx_Ui登陆界面中文安卓开发工具日期时间型进程信息快看点视频上传
最新评论