首页
社区
课程
招聘
[原创]进程中dll模块的隐藏
发表于: 2008-2-20 17:28 102037

[原创]进程中dll模块的隐藏

2008-2-20 17:28
102037
收藏
免费 8
支持
分享
最新回复 (75)
雪    币: 359
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
51
隐藏DLL的还有一个方法就是把Dll真正卸载掉,需要准备几个步骤:
1、动态修改Dll入口代码,直接return 1
2、保证IAT所引用的DLL在本DLL卸载后依然存在
3、保证栈可执行
接下来只要VirtualAlloc一段与本DLL的Image大小相同的内存,将本DLL复制过去,然后在栈上面构造一段将内容复制回来的代码,push这段代码的入口,然后JMP到FreeLibrary执行,这样在DLL卸载后就会跳到栈上面执行,栈上面将会把DLL的内容复制回来。这样在DLL卸载后,DLL的代码大部分依然可以正常工作,可能取资源的代码会受到影响而不能正常工作。

示例如下,运行方式rundll32.exe DllLoader.dll, ProcMain
上传的附件:
2010-10-29 12:03
0
雪    币: 81
活跃值: (40)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
52
先占座,再慢慢欣赏
2010-10-30 18:18
0
雪    币: 213
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
53
收藏了,好好研究研究。
2010-11-10 09:31
0
雪    币: 203
活跃值: (189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
54
直接败给GetModuleHandle.
2011-4-28 19:37
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
55
哈哈,没关系,GetModuleHandle得知道名字才行呢。。。
2011-4-28 19:57
0
雪    币: 278
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
56
感谢各位大牛  拜读了
2012-1-17 18:32
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
57
单纯从ring0隐藏角度,断了四个链,修改了VAD,就差抹PE头了,因为Attach到进程空间
没法修改,会蓝屏,地址有效,结果xuetr可以检测到基地址和大小,看不到模块名,我已经把基地址和大小改成0了。。。。。
2012-1-28 21:16
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
58
好东东, 学习!。。。。。
2012-2-13 23:49
0
雪    币: 1737
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
59
强大~~~~
2012-4-21 22:11
0
雪    币: 297
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
60
标记大牛猛贴。
2012-10-15 14:27
0
雪    币: 48
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
61
我顶我顶我顶顶顶!
2012-10-16 09:47
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
62
各位大牛:打扰下,   你们这个是驱动代码吧    我试了在DLL中直接 调用上述代码 始终会出错

因为 在R3 有个指针的地址是 [1248] pstEntry=0xC0000000  可能是因为不能访问这个地址出的错吧

意思就是不能在R3断链了哦
2013-2-1 23:11
0
雪    币: 46
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
63
新手 看不懂 基础差 盼望高手们指教学习方向 该看哪些基础课程 最好能互加好友
2013-2-21 12:06
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
64
经典文章,楼主辛苦
2013-2-21 14:32
0
雪    币: 112
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
65
相当有用的内容
2013-4-10 18:21
0
雪    币: 549
活跃值: (42)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
66
高手过招,看得我是眼花缭乱,佩服中。。。
2013-4-11 11:18
0
雪    币: 9
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
67
不错  学习了
2013-4-11 16:00
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
68
收藏了..好帖子...
2013-7-7 22:39
0
雪    币: 16
活跃值: (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hcw
69
直接从内存中加载DLL,自己做重定位,也行的.
2013-8-27 14:48
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
70
mark
2014-3-6 18:55
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
71
很不错的帖子
2014-3-19 21:39
0
雪    币: 5
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
72
mark,正看到了这个技术。
2014-10-3 22:08
0
雪    币: 8
活跃值: (207)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
73
留名,存帖
2014-10-9 18:38
0
雪    币: 516
活跃值: (3146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem
74
2020-10-18 08:06
0
雪    币: 2674
活跃值: (2304)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
75

2008年的老贴了!不过还有个尾没有收完!只分析了EumProcessModules中读取到了:stProcessBasicInfo.PebBaseAddress->LDR,但凭什么说是枚举的是InMemoryOrderModuleList?
这里给你补上:
.text:76BC1F4E                 mov     eax, [ebp-24h]  ;stProcessBasicInfo.PebBaseAddress->LDR
.text:76BC1F51                 add     eax, 14h            ;&stProcessBasicInfo.PebBaseAddress->LDR->InMemoryOrderModuleList
.text:76BC1F54                 mov     [ebp-28h], eax 
.text:76BC1F57                 push    ebx      ;NULL
.text:76BC1F58                 push    4          ;Length
.text:76BC1F5A                 lea     ecx, [ebp-20h]
.text:76BC1F5D                 push    ecx        ;Buffer
.text:76BC1F5E                 push    eax         ;&stProcessBasicInfo.PebBaseAddress->LDR->InMemoryOrderModuleList
.text:76BC1F5F                 push    dword ptr [ebp+8] ;hProcess
.text:76BC1F62                 call    esi ; ReadProcessMemory

最后于 2020-10-28 21:04 被低调putchar编辑 ,原因:
2020-10-22 10:50
0
游客
登录 | 注册 方可回帖
返回
//