CFF Explorer 查看/修改PE文件资源
cff explorer是一款优秀的pe资源工具,使用cff explorer可以方便地查看和编辑pe(exe/dll)资源,类似pe资源工具有exescope、reshacker等。
使用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可以做很多你想做的事情,但我觉得自己研究使用可以,千万不要去传播或者谋取利益,否则后果很严重的。