首页
社区
课程
招聘
[原创]Icelight驱动部分完整逆向(源代码)
发表于: 2009-1-1 20:26 13251

[原创]Icelight驱动部分完整逆向(源代码)

2009-1-1 20:26
13251

Icelight(一线光)是个安全小工具,整体功能比较一般,但自我保护还不错,比较全面吧.
前几天不能上网,无聊之中看到Icelight的驱动不大(14k),于是就把它给逆了一下,也是我第一次完整逆一个驱动.
驱动中Hook时用了两个反汇编引擎(搞不懂为什么用两个),其中一个是LDasm,就直接拿来用了.
另一个水平有限,还原成的C版不准确导致有时候结果不正确,无奈之下用了原版汇编~~

对应的程序版本:1.8.802
TimeDateStamp:4886978D

驱动源码编译通过,可以替换原驱动正常工作~~
里面用的相关技术没有很特别的,但是应该说比较实用,至少有以下看点:
1.SSDT Hook 保护进程(Hook函数写的很ws哈)
2.SSDT Shadow Hook(有8个相关函数,比较全了)
3.强制删除文件(这个作者也说了,是参考自网上一份代码)
4.一字节两次跳转法Hook PspTerminateThreadByPointer保护自己线程
5.直接投递Apc杀线程(为杀线程准备了两个ApcRoutine,获取PsExitSpecialApc失败就用自带的)
5.强制杀进程(自己遍历ThreadList然后逐个投递Apc杀之)
需要以上代码实例的尽可来A~~

不足之处:
1.有一个反汇编引擎没有还原成C(之前还原成C版的了,但是用的时候结果不完全正确,只好先用原版汇编的保证准确度)
2.程序退出后,驱动卸载之后会有一些遗留问题,进程无法打开,关于窗口的部分操作不正常,这个我找不出原因来,大牛帮解决下...

这个驱动的DeviceIoControl例程中对于用户层传入的参数不论是读还是写都不作任何检查,所以想搞个BSOD相当容易
大家写驱动时不要犯这样的错误了...
不说了,有兴趣的自己看代码吧


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (21)
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
这样的驱动没有逆的价值.

推荐逆向国内/国外著名安全软件.
2009-1-1 21:21
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
只是一时兴起练连手啊,这个驱动虽然不太难,对我来说还是学到不少东西
2009-1-1 21:40
0
雪    币: 27
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
很好 学习~~

不要被大米打击了
2009-1-1 21:44
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
5
我没有打击楼主啊.

我只是说出我个人的建设性意见~~~
2009-1-1 21:47
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
6
好东西!可以学习到很多逆向技术~~多谢楼主了~
2009-1-1 22:10
0
雪    币: 405
活跃值: (2285)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
期待谁把SOFTICE 给逆了,然后开源出来,我们就可以将其发扬光大了.
2009-1-1 22:12
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
MJ不是已经逆了吗?
2009-1-1 22:18
0
雪    币: 201
活跃值: (112)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢,呀,需要学习下
2009-1-1 22:48
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
RCT的牛人发帖了~~~支持支持~~~

好像炉子以前干过这种事情。

记不清了。
2009-1-2 00:07
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
Hook PspTerminateThreadByPointer 欢迎参考 http://www.vbgood.com/viewthread.php?tid=67645



所谓的“部分参考”其实就是大片的抄
2009-1-2 11:31
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
emc
12
mj正在逆?还是已经完成?
练习练习还是不错的.
2009-1-2 12:08
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
emc
13
To -> 教主
不错,不错,3000行是你的上限了吗?
没仔细看,就看到了你用#define来封装type.typedef不是更好啊
2009-1-2 12:25
0
雪    币: 230
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢分享,学习了
2009-1-2 22:22
0
雪    币: 206
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
15
呵呵,学习了
2009-1-2 22:52
0
雪    币: 178
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
16
很好的逆向学习材料!!谢谢了
2009-1-2 23:13
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
对我们菜鸟来说,是学到不少东西。不过sudami说得也挺对的。
2009-1-7 12:41
0
雪    币: 220
活跃值: (721)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我是小菜,请问使用什么工具逆向驱动比较方便?
2009-1-7 15:14
0
雪    币: 247
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
19
9494,事情就是这样的。
2009-1-7 15:21
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
20

大家都用强大的IDA和邪恶的F5
2009-1-7 15:25
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
今后一定多向achillis学习
2009-9-27 10:58
0
雪    币: 351
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
可以学习下。。。
2009-9-27 12:08
0
游客
登录 | 注册 方可回帖
返回
//