随笔分类 -  《Windows PE结构系列教程》

摘要:PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如文件加密与解密,病毒分析,外挂技术等。 阅读全文
posted @ 2022-07-26 09:51 lyshark 阅读(840) 评论(0) 推荐(0) 编辑
摘要:经过了前一章的学习相信你已经能够独立完成FOA与VA之间的互转了,接下来我们将实现在程序中插入新节区,并向新节区内插入一段能够反向连接的ShellCode代码,并保证插入后门的程序依旧能够正常运行不被干扰,为了能够更好的复习PE相关知识,此处的偏移全部手动计算不借助任何工具,请确保你已经掌握了FOA与VA之间的转换关系然后再继续学习。 阅读全文
posted @ 2022-07-26 09:48 lyshark 阅读(550) 评论(0) 推荐(0) 编辑
摘要:首先老样子,我们先来到PE节表位置处,并仿写一个`.hack`的节,该节大小为`0x1000`字节,在仿写前我们需要先来计算出`.hack`的虚拟偏移与实际偏移,先来查询一下当前节表结构,如下: 阅读全文
posted @ 2022-07-26 09:45 lyshark 阅读(621) 评论(0) 推荐(0) 编辑
摘要:Ring 3层的 IAT HOOK 和 EAT HOOK 其原理是通过替换IAT表中函数的原始地址从而实现Hook的,与普通的 InlineHook 不太一样 IAT Hook 需要充分理解PE文件的结构才能完成 Hook,接下来将具体分析 IAT Hook 的实现原理,并编写一个DLL注入文件,实现 IAT Hook 。 阅读全文
posted @ 2022-07-25 21:26 lyshark 阅读(966) 评论(0) 推荐(2) 编辑
摘要:手工修复导入表结构 实现手工修复导入表结构 1.首先需要找到加壳后程序的导入表以及导入了那些函数,使用PETools工具解析导入表结构,如下。 2.发现目录FOA地址为0x00000800的位置,长度是0x000000A8定位过去看看,程序中只保留了一个LoadLibraryA和GetProcAdd 阅读全文
posted @ 2020-09-25 22:10 lyshark 阅读(2699) 评论(0) 推荐(0) 编辑
摘要:DLL注入有多种方式,今天介绍的这一种注入方式是通过修改导入表,增加一项导入DLL以及导入函数,我们知道当程序在被运行起来之前,其导入表中的导入DLL与导入函数会被递归读取加载到目标空间中,我们向导入表增加导入函数同样可以实现动态加载,本次实验用到的工具依然是上次编写的PE结构解析器。 阅读全文
posted @ 2020-09-20 16:02 lyshark 阅读(2398) 评论(0) 推荐(0) 编辑
摘要:关于Dump内存原理,我们可以使用调试API启动调试事件,然后再程序的OEP位置写入CC断点让其暂停在OEP位置,此时程序已经在内存解码,同时也可以获取到程序的OEP位置,转储就是将程序原封不动的读取出来并放入临时空间中,然后对空间中的节表和OEP以及内存对齐进行修正,最后将此文件在内存保存出来即可。 阅读全文
posted @ 2020-09-17 20:15 lyshark 阅读(1961) 评论(0) 推荐(0) 编辑
摘要:PE结构中的地址互转,这次再来系统的复习一下关于PE结构中各种地址的转换方式,最终通过编程来实现自动解析计算,最后将这个功能集成到我的迷你解析器中,本章中使用的工具是上次讲解PE结构文章中制作的CMD迷你结构解析器,如果不知道参数的基本使用请看前一篇。 阅读全文
posted @ 2020-09-14 21:37 lyshark 阅读(1312) 评论(0) 推荐(1) 编辑
摘要:PE文件就是我们常说的EXE可执行文件,针对文件特征的识别可以清晰的知道该程序是使用何种编程语言实现的,前提是要有特征库,PE特征识别有多种形式,第一种是静态识别,此方法就是只针对磁盘中文件的特征码字段进行检测来判断编译器版本,此种方式优点是快,缺点是识别不准确,第二种则是动态识别,当程序被装入内存解码后在尝试对其进行识别,此方法最为准确,我们经常使用的PEID查壳工具是基于静态检测的方法。 阅读全文
posted @ 2020-09-14 14:14 lyshark 阅读(2368) 评论(0) 推荐(0) 编辑
摘要:ELF文件格式,是一个开放的可执行文件和链接文件格式,其主要工作在Linux系统上,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件,ELF文件格式类似于PE格式,但比起PE结构来ELF结构显得更加的简单,Linux文件结构相比于Windows结构来说简单一些. 阅读全文
posted @ 2020-05-22 12:08 lyshark 阅读(2465) 评论(0) 推荐(0) 编辑
摘要:复习一下,不然会忘 1.imagebase 映像基地址 ,默认是0x400000 2.va 虚拟地址,载入OD后的地址,已经映射到内存的地址。 计算实际装入地址 VA imagebase (映像基址) + RVA(虚拟入口) => 0x400000 + 0x5d485 = 0x45d485 载入 o 阅读全文
posted @ 2020-03-24 20:00 lyshark 阅读(1129) 评论(0) 推荐(0) 编辑
摘要:PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如文件加密与解密,病毒分析,外挂技术等,本次实验的目标是手工修改或增加节区,并给特定可执行程序插入一段ShellCode代码,实现程序运行自动反弹一个Shell会话。 阅读全文
posted @ 2019-11-04 09:42 lyshark 阅读(2707) 评论(0) 推荐(0) 编辑
摘要:Ring 3层的 IAT HOOK 和 EAT HOOK 其原理是通过替换IAT表中函数的原始地址从而实现Hook的,与普通的 InlineHook 不太一样 IAT Hook 需要充分理解PE文件的结构才能完成 Hook,接下来将具体分析 IAT Hook 的实现原理,并编写一个DLL注入文件,实现 IAT Hook ,废话不多说先来给大家补补课。 阅读全文
posted @ 2019-10-30 18:10 lyshark 阅读(4564) 评论(0) 推荐(2) 编辑
摘要:PE格式是 Windows下最常用的可执行文件格式,理解PE文件格式不仅可以了解操作系统的加载流程,还可以更好的理解操作系统对进程和内存相关的管理知识,而有些技术必须建立在了解PE文件格式的基础上,如文件加密与解密,病毒分析,外挂技术等,在PE文件中我们最需要关注,PE结构,导入表,导出表,重定位表,下面将具体介绍PE的关键结构,并使用C语言编程获取到这些结构数据. 阅读全文
posted @ 2019-10-27 17:46 lyshark 阅读(3872) 评论(0) 推荐(1) 编辑
摘要:PE(Portable Executable)格式,是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。PE格式衍生于早期建立在VAX(R)VMS(R)上的COFF(Common Object File Format)文件格式,如下是本人找到的高清PE结构图,可给逆向人员作为参考使用。 阅读全文
posted @ 2019-10-26 16:27 lyshark 阅读(2911) 评论(0) 推荐(1) 编辑


8928009 | 6877438
博客园 - 开发者的网上家园

点击右上角即可分享
微信分享提示