首页
社区
课程
招聘
FileMoniotor1.0 for ring3
发表于: 2007-6-11 14:25 10050

FileMoniotor1.0 for ring3

2007-6-11 14:25
10050

纯汇编写的,主要拦截KERNEL32.DLL中的OpenFile、CreateFileA、CreateFileW、ReadFile、ReadFileEx、WriteFile、WriteFileEx、DeviceIoControl等函数,HOOK到的数据未做过滤处理。
其中MYDLL利用了skyer的HOOKAPI LIB,放出源码,主程序的过程是创建进程后挂起,注入MYDLL后恢复进程,拦截过程中的相关函数,汇编写的程序,反汇编后基本上可以理出代码,就不放源码了.


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (15)
雪    币: 268
活跃值: (40)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
怎么没有源码?
2007-6-11 16:26
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没有原码~~~~那我为什么不用filemon。。。。。。
2007-6-11 18:00
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不是发此板块的都要源码吗 怎么没有?
2007-6-11 18:29
0
雪    币: 260
活跃值: (102)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
忘了哪位大侠说的,搞逆向的人需要源码吗?
不过有源码可以粘贴复制,阅读方便!
2007-6-11 21:06
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
6
对成品没多大兴趣.....
2007-6-11 21:07
0
雪    币: 202
活跃值: (77)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
汇编写的程序,程序本身就是源码
2007-6-11 23:50
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
8
讲的非常正确,汇编写的程序,未做特殊处理,在IDA中反汇编后,结合一些API的调用,基本上可以还原代码.
2007-6-12 07:39
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
9
支持下!
思路讲的还是挺清楚的
2007-6-12 10:36
0
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
10
感谢老MM,
2007-6-12 12:58
0
雪    币: 228
活跃值: (85)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11


我那个 HookLib. 感觉还是有些问题
至少在 MultiThread 就会有问题.. 请楼主小心啊.. @@

之前当兵时有用 C++ 重写过一个支援多绪的 HookLib, 可惜当完兵时忘记带出来..
现在也没时间重写 XD
2007-6-12 14:42
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
12
deroko的那个可能比较完美:
http://bbs.pediy.com/showthread.php?t=45601&highlight=Ultimate

.386
.model flat, stdcall
option casemap: none

include windows.inc
include user32.inc
include kernel32.inc

includelib user32.lib
includelib kernel32.lib

public C                Detoured_MessageBoxA
public C                Detoured_GetModuleHandleA
                  
.data?
Detoured_MessageBoxA      dd      ?
Detoured_GetModuleHandleA dd      ?

.code

DllEntry proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD
        .if reason==DLL_PROCESS_ATTACH
                  mov  eax,TRUE
        .endif       
        ret
DllEntry Endp
HOOK_user32_MessageBoxA proc hwnd:DWORD, text:DWORD, about:DWORD, icon:DWORD

                        push icon
                        push about
                        push text
                        push hwnd
                        call Detoured_MessageBoxA
                        ret

HOOK_user32_MessageBoxA endp
                        
HOOK_kernel32_GetModuleHandleA proc modulename:dword
                        
                        push modulename
                        call Detoured_GetModuleHandleA
                        ret
                        
HOOK_kernel32_GetModuleHandleA  endp

HOOK_kernel32_ExitProcess proc exitcode:dword
                        
                        invoke    TerminateProcess, -1, exitcode
                        ret
                        
HOOK_kernel32_ExitProcess endp

End DllEntry

-----------------------mydll.Inc-------------
HOOK_kernel32_GetModuleHandleA proto
HOOK_user32_MessageBoxA proto
HOOK_kernel32_ExitProcess proto
Detoured_GetModuleHandleA proto
Detoured_MessageBoxA proto

------------------------mydll.Def-------------
EXPORTS
HOOK_user32_MessageBoxA
HOOK_kernel32_GetModuleHandleA
HOOK_kernel32_ExitProcess
Detoured_GetModuleHandleA
Detoured_MessageBoxA
2007-6-12 15:57
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
13
laomm你楼上用的detours库吧...
2007-6-13 09:36
0
雪    币: 560
活跃值: (359)
能力值: ( LV13,RANK:1370 )
在线值:
发帖
回帖
粉丝
14
此Detoured非彼detours库,
2007-6-13 10:43
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
15
下载收藏~~~
2007-6-13 13:11
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
16
目前个人认为最好的库还是detours 还提供了x64  IA32的支持 。哈
建议搂主采用
File 操作 不象一般的API 大量的多线程调用还有涉及到异步模式的问题。最好还是不要直接E8 xxxxxxxx,memcpy,Call Prev这种方法哈。
2007-6-15 00:12
0
游客
登录 | 注册 方可回帖
返回
//