首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PE知识复习之PE导入表

PE知识复习之PE导入表 一丶简介   上一讲讲解了导出表. 也就是一个PE文件给别人使用时候.导出函数 函数地址 函数名称 序号 等等.   ...一个进程是一组PE文件构成. PE文件需要依赖那些模块.以及依赖这些模块中那些函数.这个就是导入表需要做. 确定PE依赖那个模块. 确定PE依赖那个函数. 以及确定函数地址....会一一进行讲解.首先从最简单成员开始.   2.1 Name成员. 确定依赖模块名字是什么 我们说过.一个PE文件.依赖模块....PE加载前加载后区别. 一样是一样.但是需要分清 PE加载前.还有PE加载后.如果加载前,那么IAT跟INT一样.都可以找到依赖函数名称....如果是加载后.也就是在内存中的话.那么IAT表保存就是函数地址. PE加载后如下图: ? IAT表保存就是函数地址了. 从导入表中找到IAT表. ?

1.1K20

PE知识复习之PE导出表

PE知识复习之PE导出表 一丶简介  在说明PE导出表之前.我们要理解.一个PE可执行程序.是由一个文件组成吗....答案: 不是.是由很多PE文件组成.DLL也是PE文件.如果我们PE文件运行.那么就需要依赖DLL.系统DLL就是Kerner32.dll user32.dll等等.这些都是PE文件....什么是导出表:     导出表就是当前PE文件提供了那些函数.给别人. 举个例子: PE文件相当于一个饭店.那么菜单就是导出表....在导入表中我们函数地址表中地址会有5个.原因就是.序号会给我们0填充. 1 2 3 4 5 虽然第二项并没有.但是也会给我们导出....如果在内存中.我们直接RVA + 当前PEImageBase就可以看到函数导出名称了.不过我们现在算一下.

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PE知识复习之PE重定位表

    PE知识复习之PE重定位表 一丶何为重定位       重定位意思就是修正偏移意思. 如一个地址位 0x401234 ,Imagebase = 0x400000 ....首先我们知道.一个EXE文件.会调用很多DLL(PE) 有多个PE文件组成. exe文件启动基址 (ImageBase) 是0x40000. 假设我们调用三个DLL A B C....但是我们知道.PE文件中有很多RVA .RVA 是相对于ImageBase偏移进行存放. 如果PE文件中都是 RVA 那就好办了. 但是不一定呀....我们知道.一个PE文件需要很多地方进行重定位.比如这个记录 大小为16....所以修复位置是 0x116b0位置. 0x116b0 + 当前PE文件ImageBase就是要进行重定位位置 当前PEImagebase为0x400000 重定位地方为 0x4116b0位置

    1.6K30

    PE知识复习之PE节表

    PE知识复习之PE节表 一丶节表信息,PE两种状态.以及重要两个成员解析.   确定节表位置: DOS + NT头下面就是节表.   ...} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; 节表重要成员都标红了.我们知道.PE文件有两种状态.一种是内存状态.一种则是文件状态....而节就是分别保存了内存中节展开位置偏移. 以及文件展开后.节数据在文件中那个偏移位置. 1.内存中节开始位置 我们分别以PE两种状态.来加深一下.在内存中跟文件中节数据起始位置....这也解释了PE在内存中展开跟在文件中是不一样. 也加深了节表中 VirtualAddress成员 以及 PointerToRawData成员了....节属性.也就是最后一个成员.表明了这个节是可读可写.还是可读可写可执行. 具体可以查看一下宏.

    1K20

    PE知识复习之PE绑定导入表

    PE知识复习之PE绑定导入表 一丶简介   根据前几讲,我们已经熟悉了导入表结构.但是如果大家尝试过打印导入表结构. INT IAT时候. 会出现问题....PE在加载前 INT IAT表都指向一个名称表. 这样说是没错. 但是如果你打印过导入表.会发现一个问题. 有的EXE程序.在打印IAT表时候.发现里面是地址....原因:   我们PE程序在加载时候.我们知道. PE中导入表子表. IAT表.会填写函数地址. 但是这就造成了一个问题.PE程序启动慢.每次启动都要给IAT表填写函数地址.   ...这样是可以. 优点:   PE程序启动变快. 缺点:   如果DLLImageBase变了.那么就需要进行重定位.因为在文件中你填写地址是固定地址....PE文件名 WORD NumberOfModuleForwarderRefs;        //依赖另外DLL有几个 // Array of zero or more IMAGE_BOUND_FORWARDER_REF

    1K20

    PE知识复习之PE两种状态

    PE知识复习之PE两种状态 一丶熟悉PE整体结构 ?...从下面依次网上看.可以得出PE结构 其中DOS头有DOS头结构 也就是 IMAGE_DOS_HEADER 关于结构体各项属性.前边已经写过了.本系列博客就是加深PE印象.理解复杂原理....MZ头就是标出来 4D 5A 大小是两个字节. 操作系统会以检查这个标识.判断是否是PE文件. PE偏移 0x00000138 大小是4个字节.指向PE头....NT头中PE标识.操作系统不光检查MZ 也检查PE. 三丶DOS stub Dos stub 大小是不确定,他大小是 PE头减掉 DOS头大小.其中成员都是Dos stub. ?...填写AAAA地方是对其后没有使用.所以我们如果熟悉PE可以添加任何成员进去. 八丶PE两种状态 根据上面简单了介绍了一下PE存储结构.也知道了节数据跟节数据之间.都是根据文件对齐存放.

    59360

    PE文件解析器编写(二)——PE文件头解析

    ,具体标识请查看MSDN,一般我们这样几个就足够了 一般只需要更改标题,内存缓冲区指针和它大小,其余按照上面的代码默认就好 用户选择后,将用户选择文件全路径显示出来,并调用CPefileInfo...在程序中有一个判断该文件是否是PE文件操作。...在PEDOS头结构中e_magic结构保存是’MZ’这个标志对应16进制数是0x4d5a,另外在pe头中有一个Sinature成员保存了0x50450000这个值,它对应字符是‘PE’只有满足这两个条件文件才是一个正常...获取DOS头和PE头 在之前我们说过,PE文件开始位置是一个DOS头结构——IMAGE_DOS_HEADER STRUCT,它第一个成员作为DOS头标识,一般保存都是‘MZ’,而它里面的e_lfanew...则保存真正PE头所在偏移 所在获取DOS头时候简单将前面的几个字节转化为这个结构即可,在寻址PE时候e_lfanew成员加上文件起始地址就可以得到PE地址。

    1.3K20

    4.2 针对PE文件扫描

    通过运用LyScript插件并配合pefile模块,即可实现对特定PE文件扫描功能,例如载入PE程序到内存,验证PE启用保护方式,计算PE节区内存特征,文件FOA与内存VA转换等功能实现,首先简单介绍一下...pefile模块是一个用于解析Windows可执行文件(PE文件)Python模块,它可以从PE文件中提取出文件头、节表、导入表、导出表、资源表等信息,也可以修改PE文件一些属性。...;图片总体上,这段代码作用是利用调试器将调试程序首地址处4096字节读入内存,然后使用pefile模块将其解析为PE文件,最后输出PE文件可选头信息。...RVA通常是用于描述PE文件中各个段相对位置,它不像VA一样是用于真正运行程序,而是在加载 PE 文件时进行重定位所使用。...,至于PE结构解析问题,详细度过PE结构篇你不需要我做太多解释了。

    29020

    浅谈非PE攻击技巧

    这是一个典型以邮件作为传播媒介,以非PE文件作为攻击载荷攻击过程。本文将以该案例为切入点,针对现有的非PE攻击手法进行分析与总结,内容包括脚本类型以及文档类型攻击,下面开始今天正文。...2.对抗&绕过 2.1 猜猜我是谁 对于杀软厂商来讲,PE文件类型识别较为容易,因为它们有固定格式以及标记,但对于非PE样本来讲,识别文件类型是一个比较困难问题,通常有两种可选方案,各有优缺点,方案...PE文件,而目前对于第2级PE执行方式,也渐渐从之前直接允许转换到延迟执行,如下:通过设置计划任务方式在开机时执行。...CVE-2017-0199 EXP程序中带恶意URL 2.关于pdf文档攻击 PDF(便携式文件格式,Portable Document Format)是由Adobe Systems在1993年於文件交换所发展出文件格式...三、总结 与PE相比,非PE拥有更多攻击方式及技巧。对于杀毒软件厂商而言,检测与分析也极具挑战,可以想象彼此攻防转换也不会有停止那一刻,作为防守方,我们要做还有很多。

    1.7K70

    LyScript 验证PE程序开启保护

    有些漏洞利用代码需要在某个保护模式被关闭情况下才可以利用成功,在此之前需要得到程序开启了何种保护方式。...验证其实有很多方法,其原理是读入PE文件头部结构,找到OPTIONAL_HEADER.DllCharacteristics结构,通过与不同操作数与运算得到,LyScript插件完全可以实现这个验证功能...,实现起来也是很简单。...插件地址:https://github.com/lyshark/LyScript 验证PE保护方式: 验证自身保护方式无需要遍历加载过模块,读入DllCharacteristics并依次与操作数与运算得到主程序保护方式...: 得到了程序开启保护方式以后,就可以对症下药,提前判断出漏洞攻击后是否可以反弹了。

    35110

    如何系统备份ghost_服务器可以pe备份吗

    大家好,又见面了,我是你们朋友全栈君。...电脑出现系统故障是一个很正常现象,在这个时候只能通过重组系统方法来解决故障,如果我们此前有将正常系统备份到U盘里面那么重装系统就会变得很简单,接下来就教给大家怎样GHOST备份系统。...1、首先把装有一键GHOST装系统U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USD HDD模式选择好,然后按F10键保存,电脑就会马上重启。...通过上面的方法借助一键GHOST工具将系统备份好了,如果下次再次碰到需要重装系统情况则可以直接使用这个备份好系统进行重装操作,当然如果碰到更好系统,也可以重复操作一遍上面的步骤来备份更好系统。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    4.7K20

    LyScript 验证PE程序开启保护

    有些漏洞利用代码需要在某个保护模式被关闭情况下才可以利用成功,在此之前需要得到程序开启了何种保护方式。...验证其实有很多方法,其原理是读入PE文件头部结构,找到OPTIONAL_HEADER.DllCharacteristics结构,通过与不同操作数与运算得到,LyScript插件完全可以实现这个验证功能...,实现起来也是很简单。...插件地址:https://github.com/lyshark/LyScript验证PE保护方式: 验证自身保护方式无需要遍历加载过模块,读入DllCharacteristics并依次与操作数与运算得到主程序保护方式...:图片得到了程序开启保护方式以后,就可以对症下药,提前判断出漏洞攻击后是否可以反弹了。

    30420
    领券