逆向fuck.sys--编译通过--源码

本文介绍了作者在逆向工程过程中分析fuck.sys驱动的过程,包括驱动去花、加载DLL资源的方法和插APC加载DLL的实现。作者通过调试和学习,实现了驱动的基本功能,并分享了遇到的问题及解决方案,旨在交流学习经验。
摘要由CSDN通过智能技术生成
信息来源:邪恶八进制信息安全团队( www.eviloctal.com
文章作者:sudami

前言:
一直很向往进入Debugman论坛的RCT这个核心团队,但自己水平有限,最后没有过关.

呵呵,不过俺从中学到了很多东西,于是发此帖分享一下学习成果;也顺便请教各位大牛,希望您有时间的话,逆一份更加好的code.
偶逆的这份code虽然大致实现了原来驱动的功能,但写的毕竟很粗糙,希望有逆向经验的同学能给予部分提示和指导,偶也能从中总结经验和教训,争取在短时间内提高自己,以便下次再申请加入RCT.


正文:

/*********************************************************************************************************
* AUTHOR : sudami [sudami@163.com]
* TIME : 2008/06/05
*
* Command:
*
* 这份code是完成XIKUG给的题目:“逆向fuck.sys,给出源码,编译成功,替换原驱动的功能”
* code已经基本实现了原驱动的功能,部分瑕疵有:
*
* 1. 驱动卸载时候会BSOD, 和加进来的DLL资源有关. 不加DLL资源,则可正常加载卸载.
* 2. 驱动中包含的DLL未用XOR加密,故释放DLL时不用解密.但解密部分的code保留
* 3. DLL加载后,偶没有调用DeleteFileW来删除这个DLL,保留这个功能; 调用LoadLirary
* 经过长久思考,换回原来的硬编码. 动态获取其地址的code保留.可运行.
*
*
* Description:
*
* ------ 原驱动的功能 ------
* 1. 驱动入口; 解密出“ImagePath”;在注册表得到自身的全路径;读取自身文件;定位到SYS最后一个节的
* 结束处;获取一个DOWRD的DLL文件大小,偏移后开始解密DLL,将获取的数据存放的申请的非分页内存中;
* 写DLL到/SYSTEMROOT/SYSTEM32/winlib .dll.
* [sudami注:这里有个小技巧,为防止同名不可删除文件干扰DLL的释放,作者进行了判断,winlib0.dll ~ winlib10.dll]
*
* 2. 映射kernel32.dll到内存,搜索EAT得到个函数的地址-
* LoadLibraryA 、GetSystemDirectoryW 、lstrcatW 、DeleteFileA
*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值