分类

编程工具

pe修改工具(CFF EXploer)

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

大小:2.59 MB

语言:简体中文系统:WinXP, Win7, Win8, Win10, WinAll

类别:编程工具时间:2017-05-15

  cff explorer下载是一款可以帮助您编辑PE插件的工具,该软件虽然体积小,但是功能全面,针对PE代码来说已经足够修改相关参数了,本软件的最大特色就是可以利用内部的文件系统管理功能执行编辑工作,支持启用外壳扩展功能加载更多的执行文件,您可以根据文件显示的数据修改字符、处理函数代码、可以选择同一个实例中打开多个拖拽文件,支持导入目录、查看资源、显示十六进制编辑器操作的方式非常丰富,需要的朋友可以下载pe修改工具(CFF EXploer)试试!

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

软件功能

  这个脚本语言的第一个版本是在CFF Explorer VII中引入的。最初的想法是非常简单的:提供基本的命令行支持来修改资便携式可执行文件,就像资源黑客一样。命令行/脚本支持是由一个需要它的软件来改变一些Windows的人的社区要求资源

  CFF Explorer脚本语言提供了许多API来轻松地操作便携式可执行文件。 除此之外,它还提供了通过文件系统功能执行外部应用程序,删除文件等。

  因此,运行脚本可能是潜在的危险的就像运行一个可执行文件,理论上可以像一个病毒一样表现出来。 至为了避免用户出现问题,我实现了某种UAC(不要担心,这并不烦人像真实的一样),我之为脚本特权保护(SPP)。 某些功能按顺序要求用户同意。 一旦用户同意,脚本会具有高权限,可以执行任何功能。

  如果用户不同意,功能失败。 一个脚本可以检查它是否通过该功能是高权限的HasHighPrivileges。 此外,脚本可以明确地要求用户给予它高的特权通过函数RequestHighPrivileges。

软件特色

  高级PE编辑

  即使高级的PE编辑也可以使用CFF Explorer脚本轻松实现语言。 在下一个示例中,我们将看到如何向PE的最后一节添代码,重定向进入我们的代码,从我们的代码跳转到原来的入口点,最后更新PE的校验和值,并删除强名称签名,以防它是一个.NET程序集。 一世不想鼓励有人通过脚本感染PE。 我只是想展示如何很容易一个像这样一个更加引人入胜的任务是用很少的代码执行的。 另外,记录函数将在此脚本中使用,因此我们将被告知我们的代码的每一步。

  xtension设置

  最后一个代码示例是关于扩展设置。 现在可以安装CFF Explorer扩展以优雅的方式通过脚本。 这比手动放置文件更好CFF Explorer扩展目录。 不仅如此,脚本语言能够安装通过使用GetCFFExplorerMachine函数为当前平台提供正确的文件,其中返回CFF Explorer可执行文件的机器

  GetFileSize

  GetFileSize(文件名/把手)返回给定文件的大小。 如果函数失败,则返回null。

  打开文件

  OpenFile(文件名)

  返回打开的文件的句柄。 如果函数失败,则返回null。备注:打开的文件加载到内存中。 这不是OpenFile的标准,但是功能为所有其他脚本功能提供了一个句柄来操作。

使用方法

  如何为CFF Explorer编写扩展名

  使用CFF Explorer VI(与Explorer Suite II一起部署)写入的可能性扩展已经被引入。 扩展字面上扩大了CFF的功能Explorer,将外部软件部件集成到其GUI中。 我写了一个upx扩展名将在本文中解释。

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

  实现扩展的最专业的方法将是通过ActiveX。 而是我选择了另一个,不太强大的方式。 事实上,使用COM对象是非常业的,但有两个很大的缺点:它将占用大部分时间,并不是每个人都有能力(或愿意)编写COM对象。 我决定保持简单但如果有必要,将来没有办法改变事情。 要轻松开始为CFF资源管理器编写扩展名,您应该将ExSuiteExtWiz msi文件安在SDK目录中。它是为Visual Studio 2005构建的向导。安装完成后,您可以打开Visual Studio,单击在新项目上,然后在Visual C ++部分的Explorer套件扩展。 正如我所说,我保持简单,所以我们将使用纯Win32。 Visual Studio项目对话框应该是这样的:

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

  现在,从现实世界来,我将向您展示从我的UPX实用程序中获取的每个功能

  实现肯定比向导生成的框架代码更有用。

  第一个非常重要的功能是ExtensionLoad。 以下是代码:

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

  参数是通过检索CFF Explorer来初始化扩展所需的数据API。 RetrieveExtensionApi函数有两个参数:API Mask和API结构体。 基本上,API掩码只是一个以空字符结尾的数组。该掩码告诉CFF Explorer扩展名请求的功能。 那些地址函数放在API结构中,其中包含相应地排序的函数指针API面具。 这些函数的声明包含在CFFExplorerSDK.h中。 至更好地了解我的意思,这里是API Mask和API结构:

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

  而现在,一个重要的功能,即使是可选的。 实际上,ExtensionNeeded函数应该是总是被实现,因为加载你的扩展名(就是说,一个x64)是没有意义的便携式可执行文件,如果它只能处理x86。 在这种情况下,只能使用UPX处理不能是.NET程序集的x86文件。 所以,功能过滤所有没有的文件尊重这个标准:

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

  如您所见,几乎所有这些功能都将HWND类型作为第一个参数。 那是因为CFF Explorer能够打开同一个文件(和Windows)实例,并且只有当它知道哪个对话框请求它时才能检索当前文件。 的当然,内部实现是完全不一样的,但展必须要识别自己通过他们的窗口把手。 谈论编码术语:

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

  现在,让我们来看一个真实世界的例子。 让我们假设一个刚刚称为函数的脚本MoveFile。 这是Scripting Privilege Protection将提示给用户的对话框:

pe修改工具(CFF EXploer) 8.0 绿色中文免费版

使用说明

  •ExtensionName.cpp:包含扩展的核心实现。

  •Extension.h:包含有关扩展框架的一般定义。

  •CFFExplorerSDK.h:基本上包含CFF Explorer的Extensions API。

  •ExtensionName.rc:包含默认对话框。

  ExtensionNeeded:调用以评估当前文件是否需要扩展名。 如果该功能缺失,假定扩展总是需要/可用。

  ExtensionExecute:包含执行代码。 在我们的例子中,它返回数据创建对话框。

  •resource.h:标准资源定义。

  •stdafx.cpp / h:标准的Visual C ++ Afx头文件。

  我们要分析的文件是ExtensionName.cpp和CFFExplorerSDK.h,它和我一样说,包含CFF Explorer API。前六个功能 -除了DllMain - 我们在cpp文件中遇到的是扩展的核心功能:

  •ExtensionLoad:第一次加载扩展名时调用。它包含检索CFF Explorer API的代码。

  •ExtensionUnload:当扩展名被卸载时调用。通常发生的时候CFF资源管理器正在关闭。默认情况下此功能为空。

∨ 展开

网友评论

我要跟帖
取消
所有评论 共 0