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

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

软件功能

  这个脚本语言的工具第一个版本是在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扩展名将在本文中解释 。

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

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

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

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

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

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

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

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

使用会谈明

  •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资源管理器正在隔绝。默认情况下此功能为空。

渝ICP备2025076537号-22