CFF Explorer 查看/修改PE文件资源

   CFF Explorer 查看/修改PE文件资源

         使用CFF Explorer可以查看和修改PE文件的资源,可以查看dll文件可供调用的函数,修改函数入口地址达到制造崩溃屏蔽功能的目的。CFF Explorer具有类似DEPENDS的依赖分析功能/hex编辑器/快速反汇编等功能,详见下图:


  PE(Portable Execute)文件被称为可移植的执行体,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)

  Windows 7下实现API HOOK的方法

  关于API HOOK,就是截获API调用的技术,在对一个API调用之前先执行自己设定的函数,根据需要可以再执行缺省的API或者进行其他处理,假设如果想截获一个进程对网络的访问,一般是几个socket api:recv,recvfrom, send, sendto等等,当然你可以用网络抓包工具,这里只介绍通过API HOOK的方式来实现,最基本的有两种方法:1.修改原函数的入口地址,就是修改PE文件输入函数地址表 2.不改变函数输入表,修改函数最开始的内存数据,增加JMP语句跳转到自己的函数,执行完后再恢复内存数据.

  使用JMP语句的方法是比较灵活的,所以通过API CreateRemoteThread 可以把自己的DLL注入到另一个进程,然后再使用JMP方法来实现API的截获,这种技术的另一个用处就是隐藏进程,很多病毒木马也是利用这个技术来隐藏自己,很难被发现和清除。

  但是通过 CreateRemoteThread 注入DLL的技术在Win7系统中已经不能简单的使用了,Win7系统在很多方面都加强了安全性,限制了很多的API的调用,那么如何简单的来做到DLL注入和API HOOK呢?这里就要介绍一个大名鼎鼎的工具:CFF Explorer,是Explorer Suite(http://www.ntcore.com/)中的一个工具 用于PE文件的修改,同时也可以对原PE文件增加函数输入表,我们只要写好一个DLL文件,然后实现一个导出函数,就可以用这个工具对PE文件增加对自己的DLL的加载,下面这个操作就是让notepad.exe加载rand.dll的操作:


  只要Rebuild Import Table,然后再Save/Save As就可以保存新的文件。这样你的dll就自动的被加载了,然后再DLL加载的时候实现API HOOK就在功告成了。

  使用这个技术可以做很多“坏事”,比如刚才提到的截获进程的网络收发数据,还有就是对软件的破解或者去时除限制,举例:假设一个软件是试用软件,试用7天,最笨的办法就是改本机时间,但如果用API HOOK技术就可以很容易做到,可以先用CFF Explorer或者Dependency查看一下该软件是调用 哪个函数来获取系统当前时间的,假如是GetLocalTime函数,那么我就可以截获GetLocalTime,返回一个永不过期的时间,然后利用CFF Explorer把自己的DLL增加到软件的函数导入表,这样不用改系统时间就去除了软件的试用期限。

  郑重提示:利用API HOOK可以做很多你想做的事情,但我觉得自己研究使用可以,千万不要去传播或者谋取利益,否则后果很严重的。

时间: 2024-10-27 23:40:40

CFF Explorer 查看/修改PE文件资源的相关文章

endupdateresource-updateresource修改pe文件版本信息时遇到问题,求大神解答

问题描述 updateresource修改pe文件版本信息时遇到问题,求大神解答 我用这里的方法修改文件版本信息:http://www.codeproject.com/Articles/6317/Updating-version-information-at-run-time 在endUpdateResource时会把PE文件损坏(几十M的东西变成几百K),何解?

查看PE文件内容的小工具——CliPeViewer

CliPeViewer是老刘编写的一个WinForm小程序,能够用来查看托管PE文件中的 各种结构.目前有很多能够查看PE信息的程序,支持.NET的也有.不过, CliPeViewer与他们的最大区别在于,这个小程序更在意原汁原味地暴露一个PE文 件中的内容,尤其是对于文件中的每个结构.每个字段,除了显示了它的值之外 ,还显示出了它在PE文件中的偏移量和原始数据. 坦率地说,CliPeViewer还没有写完.尚欠缺的功能包括:显示IL指令.托管 方法的定义(方法头.异常处理块等),以及对元数据签

读取PE文件的资源表

在上一篇文章里,已经讲解了加载PE文件的导入表.本篇简要介绍PE文件的资源表的结构和定位方式. 所谓资源表(resource table),就是通常在IDE的资源视图中所看到的那个Tree视图,因此资源表在PE文件中同样是这样的一种类似资源管理器一样的树状逻辑结构. 对树,我们不能想类似导入表那样当作线性表中的数组去比较简单直观的加载,而是要用递归函数去重建,这是因为树的定义就是用递归做的定义,所以对树的操作天生的就和递归函数分不开.看起来不可预判的复杂结构,递归函数的代码却非常简洁.   资源

修改 EXE 文件的图标

[关键字]VC++,修改EXE文件的图标 在很多年前很著名的熊猫烧香病毒,就有这样一个行为,是搜索硬盘上的可执行文件并感染它们,其典型外观症状就是程序的图标变成了熊猫烧香.本文讲解的是修改EXE文件(可执行文件)的图标,可以看做是我写PE文件的Directoried相关文章的一个后续应用,本文性质属于技术可行性研究.考察下windows系统上的文件可以发现下面的特征: (1)应用程序的可执行文件可以有自己定义的图标,通常位于其资源中,资源管理器使用资源中的图标显示它们,如果没有资源,就显示成系统

Android 修改现有ROM资源文件如何实现_Android

Android 修改现有ROM资源文件 一,准备工作 1.一台开发手机.     我推荐最好用G7,也是就HTC Desire那款(是不是有些广告嫌疑...),这台机各种ROM都很全,资料也多些,很容易刷到root,Android版本也是最新的2.3.3. 2.Auto-sign签名工具    这个是必备的,网上很多下载点,主要做ROM签名所用 3.apktool     打包解包apk工具 二,具体步骤 1.先将ROM包解压,比如我用的就是g7_3.3_hiapk_signed.zip,你就会

Microsoft图标显示错误,攻击者可任意隐藏恶意PE文件

本文讲的是Microsoft图标显示错误,攻击者可任意隐藏恶意PE文件, Windows中的图标显示错误允许攻击者使用特殊图标伪装PE文件,从本地设备自动"借用"其他常用图标,从而诱惑用户点击它们.这个漏洞目前已经根植在Windows的图像处理代码中了,根据我的分析,至少从Windows 7开始,该漏洞就已经出现,并且仍然存在于Windows 10的最新版本中. 我已经将该错误于2017年6月向微软正式报告了,而且本文对漏洞的分析也经过了微软的许可. 漏洞的发现 我在研究最近一批恶意P

为PE文件添加新节显示启动信息

病毒并不神秘,也不复杂.相当多的大侠已经在这方面作出了杰出的贡献,例如 29A 组织,我对他们的崇拜之情啊,真是--咳咳,先别扔鸡蛋.其实我想说的是:技术是一柄双刃剑,我们应该把它运用在对社会有益的事情上.所以请勿利用本文的代码进行违法违纪的活动,否则本人保留追究的权利. 本文的技术其实早已是老掉牙的东西了,so如果你已经懂得了编写病毒的方法,请跳过本文:如果你对病毒抱有好奇心,但是还没知道怎么编写,那么本文应该适合你.  :) 言归正传.在 Windows 环境下,所有的可执行文件都是 PE

读取PE文件的导入表

在上一篇文章里,我使用一个 TreeList 控件,展示了 PE 文件的内容.在那里可充分了解PE的文件头的信息,但是对 section(备注:常见译文为节,段,块)的一些信息我们还没有涉及.比如全局变量等数据,代码,资源,导入表等信息都位于相应的 section 中,有些 section 通常具有特定的名字,例如资源通常位于 .rsrc,代码通常位于 .text,导入表通常位于 .idata 段,等等.文本讲述的是把一个PE文件的导入表打印出来.我注意到 MS 提供了一个比较有用的函数,Ima

修改PE背景图的方法

  经常使用PE的话看到的都是一个桌面背景,想不想换一下品味呢?下面就来说说最简单的修改PE背景图的方法: 大部分PE的桌面壁纸都在OP.WIM里面的桌面背景目录下,就两个文件:pelogo.jpg和pewallpaper.jpg. 现以我的PE为例:说明如何替换PE的壁纸?其它PE可参照修改.首先找到配置文件,我的是WINPE.INI,里边有2句就是,一处是进系统欢迎使用的背景,另一处是进系统后桌面背景!你只需要把文件名字和路径修改为自己的路径或把你喜欢的背景文件保存为配置文件中的相同的文件名