内嵌补丁练习(一) 0x00 前言 首先介绍以下运行时压缩或者运行解压文件,这类文件通常是代码在运行之前已经压缩过或者代码被加密过,在运行过程中在进行解压缩或者解密的PE文件。通常这样做的目的可能为了压缩文件体积或者加密代码保护代码安全。下图位运行时解压缩文件和普通压缩文件对比。 0x01 调试查看 ...
分类:
其他好文 时间:
2018-11-10 22:38:26
阅读次数:
236
前言: 输入表又称导入地址表(Import Address Table),简称 IAT API 函数被程序调用但执行代码又不在程序中,而是位于一个或者多个 DLL 中 当 PE 文件被装入内存的时候,Windows 装载器才将 DLL 装入,并将调用导入函数的指令和函数实际所处的地址联系起来(动态连 ...
分类:
其他好文 时间:
2018-11-03 01:53:01
阅读次数:
209
与导入函数类似,DLL和EXE的导出函数,是用来与其他程序和代码进行交互时所使用的。通常,一个DLL会实现一个或多个功能函数,然后将它们导出,使得别的程序可以导入并使用这些函数。 PE文件中包含一个文件中导出了哪些函数的信息。因为DLL文件本身就是实现一些导出函数然后被其他EXE可执行文件使用的,因 ...
分类:
其他好文 时间:
2018-10-30 21:13:46
阅读次数:
144
对于一个可执行文件,可以收集到的最有用的信息之一,就是它的导入表。导入函数是一个程序所使用的但存储在另一程序中的那些函数,比如包含了对于很多程序都通用的一些代码函数库代码库可以通过链接方式,连接到主程序中。 程序员选择将一些导入函数链接到他们编写的程序中,这让他们不必重新再多个程序重复实现特定功能。 ...
分类:
其他好文 时间:
2018-10-30 20:02:55
阅读次数:
109
函数性能分析工具SyzyProf 我先开始介绍SyzyProf。这个工具可以捕获每个线程调用每个函数执行的时间,然后把结果生成一个KCacheGrind能够识别的数据格式文件,然后通过KCacheGrind的展示结果。你就可以知道函数哪个函数执行了次数最多,消耗的时间最多,哪个线程在读写文件,哪个线 ...
分类:
其他好文 时间:
2018-10-26 13:12:44
阅读次数:
197
0x00 前言 对于加壳程序第一件事就是要找到OEP(oringinal Entry point),由于加壳的缘故,当PE文件载入OD或者其他调试软件时进入的的往往是壳程序的入口地址。所以要进行逆向分析第一步就必须找到PE程序的原始入口点。 0x01 壳的加载过程 壳和病毒在某些方面比较类似,都需要 ...
分类:
其他好文 时间:
2018-10-26 12:08:51
阅读次数:
353
PE文件格式详解(七) Ox00 前言 前面好几篇在讲输入表,今天要讲的是输出表和地址的是地址重定位。有了前面的基础,其实对于怎么找输出表地址重定位的表已经非常熟悉了。 0x01 输出表结构 当创建一个DLL文件时,实际上创建了一组能让EXE或者其他DLL调用的一组函数,PE装载器根据DLL文件中输 ...
分类:
其他好文 时间:
2018-10-22 17:47:58
阅读次数:
299
0x00 前言 前面两篇讲到了输出表的内容以及涉及如何在hexWorkShop中找到输出表及输入DLL,感觉有几个地方还是没有理解好,比如由数据目录表DataDirectory[16]找到输出表表后以为找到输入DLL就完了,其实这一流程的最终功能是通过输入DLL找到输入DLL调用的函数,这一步骤是通 ...
分类:
其他好文 时间:
2018-10-21 12:11:35
阅读次数:
194
PE文件解析 基础篇 来源 https://bbs.pediy.com/thread-247114.htm 前言 之前学习了PE格式,为了更好的理解,决定写一个类似LoadPE的小工具。 编译器是VS2015,采用MFC框架。 此系列文章采用边介绍知识点,边写代码的形式,以免变的无聊丧失兴趣。 PE ...
分类:
其他好文 时间:
2018-10-20 17:28:57
阅读次数:
247
PE文件格式详解(四) 0x00 前言 上一篇介绍了区块表的信息,以及如何在hexwrokshop找到区块表。接下来,我们继续深入了解区块,并且学会文件偏移和虚拟地址转换的知识。 0x01 区块对齐值 首先我们要知道啥事区块对齐?为啥要区块对齐?这个问题其实困扰了我很久,只能怪我操作系统没学好。。。 ...
分类:
其他好文 时间:
2018-10-19 19:50:08
阅读次数:
181