能力值:
( LV2,RANK:10 )
|
-
-
2 楼
用LSP过滤的话,如果只是判明是否http包并快速取出host以及target,不做其他什么工作的话,应该不怎么影响网速的
另外,还可以考虑获取加载dll的进程名,只关注几个特定的进程:iexplorer.exe,chrome.exe,firefox.exe,其他的进程,就不做过滤了,这样至少不会影响其他程序
不过LSP还要分别做x86,x64版
取浏览器记录的话,有些浏览器不好取,还有的浏览器不保留历史记录,这个是个问题呢
|
能力值:
(RANK:20 )
|
-
-
3 楼
LSP里怎么判断是否是 HTTP包 IE进程呢?
|
能力值:
(RANK:20 )
|
-
-
4 楼
另外 HTTPS怎么拦截,这个我始终拦截不到。
|
能力值:
(RANK:20 )
|
-
-
5 楼
LSP和客户端代码包 以上传,对网速还是有点影响的,我过滤了WWW的顶级域名,和不带WWW的顶级域名,现在似乎有点卡,大家看下。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
HTTPS 要用中间人。 假证书的。
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
你是想说 CustomProtocol://1 这样么
是的话,注册一个URL协议就行
|
能力值:
( LV6,RANK:90 )
|
-
-
8 楼
用浏览器已有的机制,比如ie的bho,lsp 驱动是不是重了点
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
ndis dns包+http包可以还原出来完整链接的
|
能力值:
(RANK:20 )
|
-
-
10 楼
LSP不重啊,关键是二级域名没办法过滤。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
---判断是否IE进程---
比如制作了一个lsp的dll:net.dll,注册之后,ie、chrome等程序加载winsock时会把这个net.dll也加载进来,这时在DllMain里面获取下当前模块名称就可以拿到进程名了。
如果发现当前进程不是目标程序,可以不做处理,直接转发,或者放弃挂钩(这个没试过)
BOOL APIENTRY DllMain(_In_ HANDLE hDllHandle, _In_ DWORD dwReason, _In_opt_ LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
{
TCHAR appname[MAX_PATH] = {0};
::GetModuleFileName(NULL, appname, MAX_PATH);
InitHookers(appname);
break;
}
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
---判断是否http---
可以考虑截取发送或接收包的头N个字符,参考http协议对于包头的要求,我之前的做法就是检查http包头的第一行是否符合要求,比如:是否POST GET 等等
仅供参考
|
能力值:
( LV15,RANK:520 )
|
-
-
12 楼
楼主还在做聊天啊.
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
楼主,我觉得你这样做太过麻烦。lsp拦截不是很好的方法。因为你自己也要处理http。
我觉得用Fiddler core 来捕获最好不过方法。简单,而且得到信息足够多。
你在他发送请求之前获取对应的网址,就Ok了。应该这样就能够捕获到https.
至于二级域名的话我不知道他自己处理没有,不好说。
你自己看看了解一下,估计没有问题。
|
能力值:
(RANK:20 )
|
-
-
14 楼
问题是,我不想用驱动,因为现在网吧都限制驱动,我的软件没那么出名,如果用了驱动,网吧基本就放弃了。
|
能力值:
(RANK:20 )
|
-
-
15 楼
Fiddler core
这个东西不知道需要驱动不 ?
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
不需要,只是dll. 但只能使用c# 开发。
但c++ 可以调用c#代码。
检测是不是在输入框里面连接估计不好弄。。
因为fillder原理设置代理,所有数据包都通过它,所以他应该也不知道哪些是用户输入,还是多级链接。
|
能力值:
(RANK:20 )
|
-
-
17 楼
设置代理,这个方法不错,是在本地设置代理吗?我也这么搞个DLL。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
mark
|
|
|