首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏方亮

    PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头2

            之前的博文中介绍了IMAGE_FILE_HEADER结构,现在来讨论比较复杂的“可选文件头”结构体。(转载请指明来自breaksoftware的csdn博客)先看下其声明

    1.4K30发布于 2019-01-16
  • 来自专栏方亮

    PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3

            《PE2》中介绍了一些可选文件头中重要的属性,为了全面起见,本文将会讲解那些不是那么重要的属性。虽然不重要,但是还是可以发现很多好玩的情况。首先看一下32位的可选文件头详细定义。(转载请指明来源于breaksoftware的CSDN博客)

    1.4K30发布于 2019-01-16
  • 来自专栏方亮

    PE文件和COFF文件格式分析--概述

    随着后来的工作进行,一些任务的和这个理想有了交集,这得以让我有足够的时间和精力去细细研究PE文件和COFF文件格式。 如果没什么耐性去读,可以去读我即将编写的《PE文件和COFF文件格式分析》系列博文,同时我用VC去解析一些文件。 COFF的全称是Common Object File Format,用中文描述是“通用对象文件结构”。 这里的obj文件就是COFF格式的。         如之前介绍的,我们编写的PE文件很可能是由COFF文件链接而成,那么PE和COFF之间有什么关系呢? PE文件中包含COFF格式头,这个头的信息非常重要,我会在之后介绍。 ? 以上是经典的PE文件格式 ? 以上是经典的COFF文件格式        之后我们会讨论更详细的信息。

    1.5K20发布于 2019-01-16
  • 来自专栏方亮

    PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1

    “签名、COFF文件头和可选文件头”这三部分信息组合在一起是一个叫IMAGE_NT_HEADERS的结构体。 看一下COFF文件头结构 typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; 因为“可选文件头”还要看“COFF文件头”中的SizeOfOptionalHeader数据。          IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 COFF行号信息已经被移除。不赞成使用该标志。 IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 COFF符号表中有关局部符号的项已经被移除。不赞成使用该标志。

    1.4K40发布于 2019-01-16
  • 来自专栏方亮

    PE文件和COFF文件格式分析——导出表

    用之前《PE文件和COFF文件格式分析——RVA和RA相互计算》介绍的算法,我们可以得出         导出地址表RVA(0x00002E58)对应的RA是0x00002258。

    75810发布于 2019-01-16
  • 来自专栏方亮

    PE文件和COFF文件格式分析——节信息

          在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3》中,我们看到一些区块的信息都有偏移指向。 在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1》中,我们描述过,IMAGE_FILE_HEADER::NumberOfSections就是用于指定该节信息的个数的。 现在我们要回顾《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1》,该文中我埋了一个伏笔,我把段提出来         PointerToSymbolTable是0x00000000

    91020发布于 2019-01-16
  • 来自专栏C/C++基础

    认识目标文件的格式——a.out COFF PE ELF

    PE和ELF都是通用目标文件格式(COFF,Common Object File Format)的变种。 在Windows下,我们将目标文件与可执行文件统称为PE-COFF文件,Linux统称为ELF文件。 后台,System V Release 4 在 COFF的基础上引入了ELF格式,目前流行的Linux系统也是以ELF作为基本的可执行文件格式。 这也是为什么目前PE和ELF如此相似的原因,因为它们都是源于同一种可执行文件格式COFF。 在COFF之前,Unix最早的可执行文件格式是a.out格式,中文意为汇编器输出。 由于COFF格式的设计非常通用,以至于COFF的继承者PE和ELF目前还在被广泛地使用。COFF的主要贡献是在目标文件中引入了“段”的机制,不同的目标文件可以拥有不同数量及不同类型的段。

    3.6K30发布于 2019-06-16
  • 来自专栏方亮

    PE文件和COFF文件格式分析——RVA和RA相互计算

    我在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头2》最后部分,说了一句话“DataDirectory保存了指向“块信息”的目录信息,其中包括偏移(除了IMAGE_DIRECTORY_ENTRY_SECURITY 还有《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1》中介绍的IMAGE_FILE_HEADER::PointerToSymbolTable,它指向的数据是符号表,该信息也是程序运行时不关心的 关于节信息,我在《PE文件和COFF文件格式分析——节信息》中有说明。 在《PE文件和COFF文件格式分析——节信息》一文中我介绍VirtualSize属性时这么说的“VirtualSize属性是节加载进入内存后,节在内存中的大小。

    1K30发布于 2019-01-16
  • 来自专栏Script Boy (CN-SIMO)

    >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明: 当VS生成PE文件头时,使用的cvtres.exe版本错误,不能与当前的.NET平台兼容 或者使VS链接器不生成COFF的方法都可以。 【方法一】 当前系统中存在两个cvtres.exe文件,版本不同。让VS2010使用.NET 4.5的cvtres.exe程序。

    2.3K30编辑于 2022-05-10
  • 来自专栏趣Python

    M-Arch(5)第四个示例:ADC&DMA

    4.35mv/度 (10000x) gd #define COFF_V25_SLOPE_1000x COFF_V25_142_SLOPE_435_1000x #define COFF_VDATA_SLOPE 4.3mv/度 (10000x) stm #define COFF_V25_SLOPE_1000x COFF_V25_143_SLOPE_430_1000x #define COFF_VDATA_SLOPE _SLOPE - data * COFF_VDATA_SLOPE */ #define COFF_33_4096_10000000x 8057 ///< 3.3/4096 (10000000 _1000x(int32_t coff_v25_slope_1000x, int32_t coff_vdata_slope_10000x, int32_t data) { return CPU_TEMP_AD_BASE _1000x + coff_v25_slope_1000x - data * coff_vdata_slope_10000x / 10; } 例行给出运行结果 STM32F1-COM3,GD32F4-

    82410发布于 2021-10-08
  • 来自专栏方亮

    PE文件和COFF文件格式分析--MS-DOS 2.0兼容Exe文件段

            MS 2.0节是PE文件格式中第一个“节”。其大致结构如下:(转载请指明来源于breaksoftware的csdn博客)

    1.6K40发布于 2019-01-16
  • 来自专栏FreeBuf

    Shoggoth:一款基于Asmjit的多态加密工具

    关于Shoggoth Shoggoth是个基于C++和Asmjit库的开源项目,该工具可以帮助广大研究人员针对给定的Shell代码、PE和COFF文件进行多态加密。 功能介绍 当前版本的Shoggoth支持下列功能: 1、仅适用于x64输入; 2、能够将PIC COFF加载器与COFF或BOF输入文件合并; 3、能够将PIC PE加载器与PE输入文件合并; 4、采用 或者,你想要编辑PE加载器或COFF加载器的源代码的话,你应该在设备上安装MinGW,并使用项目提供的Makefiles来进行代码构建。 seed <Value> 设置随机种子值 -m | --mode <Mode Value> 设置Payload加密模式,支持raw、pe和coff --coff-arg <Argument> 设置COSS加载器参数 -k | --key <Encryption Key>

    58510编辑于 2023-08-08
  • 来自专栏Linux内核及编程语言底层相关技术研究

    聊聊各种操作系统都在使用什么样的格式来存储可执行文件及目标文件

    COFF With Unix System V, AT&T introduced COFF (Common Object File Format) to replace the a.out format COFF also added support for shared libraries. ELF In order to resolve a number of problems with COFF, AT&T created ELF (Executable and Linkable Format Only a few operating systems like AIX have stuck with their custom COFF-based formats. COFF supported a similar but different shared library mechanism.

    1.1K20发布于 2020-06-09
  • 来自专栏方亮

    PE文件和COFF文件格式分析——导出表的应用——通过导出表隐性加载DLL

    如果觉得不可思议,可以先看《PE文件和COFF文件格式分析——导出表》中关于“导出地址表”的详细介绍。

    99730发布于 2019-01-16
  • 来自专栏防止网络攻击

    TMS320C54X 的软件编程

    图 4 是 TMS C320C54X 软件开发流程,图中有阴影的部分是通常开发的必需步骤,其 它可据需要选作,最后产生 COFF(Common Object File Format) 文件。 下面是一段程序例子,图 5 是 COFF         文件格式和 object file 在存储器中的分配情况。         b) cmd 文件的编写。 通过对源程序(*.asm)的编译产生 COFF 目标文件(*.obj),再通过 连接产生可执行的 COFF 文件(*.out),就可以进行仿真和加载。         

    42620编辑于 2023-10-14
  • 来自专栏逆向技术

    纯C代码解析PE.获取资源表中的文件版本信息.

    = 0x4550) // PE signature return NULL; // coff is a IMAGE_FILE_HEADER const char *coff = pe + 4; WORD numSections = READ_WORD(coff + 2); WORD optHeaderSize = READ_WORD(coff + 16); if (numSections optHeaderSize == 0) return NULL; // optHeader is a IMAGE_OPTIONAL_HEADER32 const char *optHeader = coff

    67720编辑于 2023-10-22
  • 来自专栏c++ 学习分享

    win7编译vs2010 转换到 COFF 期间失败: 文件无效或损坏 解决

    2如果还是不行: 连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。 : http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-c

    4.6K20编辑于 2023-07-06
  • 来自专栏方亮

    PE文件和COFF文件格式分析——导出表的应用——一种插件模型

    而在《PE文件和COFF文件格式分析——导出表》中,我却避开了这个话题。我就是想在本文中讨论下载Exe中存在导出表的场景。 那我们收敛一下方案,我们做个空壳DLL(使用《PE文件和COFF文件格式分析——导出表》介绍的类似于Kernel32.dll的AddVectoredExceptionHandler导出方法,这个方法的应用我会在之后写篇文章介绍

    77850发布于 2019-01-16
  • 来自专栏10km的专栏

    MSVC/GCC/NDK:将二进制文件生成obj文件

    有两个解决方案: 如这篇文章中所说《Embedding of binary data into programs》,在网上搜索 bin2coff 或bin2obj可以找到第三方的工具.比如这个github 上的bin2coff(我没测试)。 如果你已经安装了MinGW编译器,使用MinGW提供的objcopy或ld就可以生成MS COFF格式的obj文件了 如下生成MSVC所需的PE格式obj文件 objcopy -I binary -O Dump of file fall_pe-x86-64.obj File Type: COFF OBJECT FILE HEADER VALUES 8664 machine of line numbers C0100040 flags Initialized Data 1 byte align Read Write COFF

    2.6K30发布于 2021-01-26
  • 来自专栏FreeBuf

    如何使用bof-launcher在CC++Zig应用程序中执行Beacon对象文件(BOF)

    该语言的所有功能和丰富的标准库都可以用于BOF; 5、异步BOF执行,能够在单独的线程中启动更耗时的BOF; 6、BOF进程注入,通过将其注入新进程来启动风险更大的BOF; 7、完美支持Windows COFF 该代码库对外提供了CAPI和Zig API,支持解析COFF/ELF对象数据,能够加载所有需要的符号,最后处理BOF输出。 C API基础使用 // 加载对象文件(COFF或ELF)并获得一个对应的句柄 BofObjectHandle bof_handle; if (bofObjectInitFromMemory(obj_file_data \zig-out\bin\wWinver.coff.x64.o cli4bofs.exe exec . \zig-out\bin\udpScanner.coff.x64.o str:162.159.200.1-5:123,88 如需在其他CPU架构上运行该BOF的话,可以使用QEMU: qemu-aarch64

    1.5K10编辑于 2024-04-30
领券