找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 13133|回复: 2

旁路劫持系统源代码免费开放公布!!!(GPL授权)付费技术支持!

[复制链接]
发表于 2013-8-11 04:59:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 sone 于 2013-8-11 06:18 编辑

源帖子:http://www.routerclub.com/thread-70269-1-1.html 注意看里面给出的视频。

SVN源代码管理地址(使用SVN或者TSVN等工具Check out出来所有源码即可):https:\\svn.silmoon.com:8443/svn/hijackingServer/,用户名密码都是public。
项目使用.NET4.0,开发环境VS2012,项目有几个依赖库,比如Silmoon.dll,Silmoon的源代码在:https:\\code.google.com/p/silmoon-dotnet-library/source/checkout


开发支持和技术支持询问需要支付费用(三千+-,可刀),我不是为了赚那两个小钱,而是我真比较忙。不要钱和询问的人浪费时间我就属于赔钱。。。
我i的邮箱sone(at)silmoon.com
我这种授权费用模式和Linux一样。本身免费,打扰Linux基金会的事情就不免费了。

源代码支持ros的Packet Sniffer或者交换机和网络设备的镜像(支持原始Socket(RawSocket)和Winpcap两种监听模式)。在使用过程中根据需要开一个就行,详情在配置文件中。

模式是,将用户上网数据旁路镜像或者说复制一份给程序,程序根据设置的规则伪装一份真实服务器的数据传递给用户,而真实的数据回来的比假的晚,所以会被丢弃。

配种文件中的
[config]
SnifferListenIP=监听的所属网卡的IP
DestAddrIP=劫持数据包发回的路由IP(多数情况下写一个不同网段或者外网的不同网段的IP也可以,因为这样这个数据包会被发到下一个路由,这个路由必须接受伪装IP的包。)
debug=true~~~~调试模式(大量数据和生成环境中应该是false)
[thread]
maxworkthread=30000
minworkthread=10000
maxiothread=100000
miniothread=30000
[sniffer]
socket=true~~~~~原始Socket监听
tzsp=false~~~~~ROS的Packet Sniffer监听
winpcap=false~~~~~Winpcap库监听,需要安装Winpcap
winpcapbyteoffset=14~~~~~IP数据在Winpcap抓包帧中的偏移,默认是14,表示前14个字节是以太网部分数据,14之后是IP数据。
deviceindex=0~~~~~Winpcap监听的网卡,以数字表示,原本Device是一个数组,这个数字表示的是Device数组中的第几个元素,也就是第几个网卡。


IP包构造部分说明

            fixed (byte* pD = &hdrData[0])
            {
                fixed (byte* pB = &buffer[0])
                {
                    IP* ip0 = (IP*)pB;
                    Tcp* tcp0 = (Tcp*)(pB + 20);

                    IP* ip = (IP*)pD;
                    Tcp* tcp = (Tcp*)(pD + 20);

                    ip->ip_verlen = 0x45;
                    ///这个可以不设置,系统自动填充。
                    //ip->ip_totallength = (ushort)IPAddress.HostToNetworkOrder((short)(contentData.Length + 20));
                    ip->ip_id = (ushort)IPAddress.NetworkToHostOrder((short)(BitConverter.ToUInt16(buffer, 4) + 1));
                    ip->ip_flag_offset |= IPFlags.df;
                    ip->ip_ttl = (byte)128;
                    ip->ip_protocol = (byte)System.Net.Sockets.ProtocolType.Tcp;
                    ip->ip_srcaddr = ip0->ip_destaddr;
                    ip->ip_destaddr = ip0->ip_srcaddr;

                    tcp->source = tcp0->dest;
                    tcp->dest = tcp0->source;
                    tcp->seq = tcp0->ack_seq;

                    tcp->ack_seq = (uint)IPAddress.HostToNetworkOrder(IPAddress.NetworkToHostOrder(BitConverter.ToInt32(buffer, 24)) + (len - (tcp0->doff >> 2) - 20));
                    tcp->doff = 20 << 2;
                    tcp->flag |= TcpFlags.ack | TcpFlags.psh;
                    ///window is 5120
                    tcp->window = 20;
..........

可以看出,我大量的在C#里面使用了指针,有效的增加性能,但是如果二次开发的人员要小心,全部都在unsafe环境中。
多的自己琢磨免费,要问我邮箱联系付费(如果你感觉两三千块钱你能拿出来的话。。。)

本人熟知网络协议,可以做各种协议的网络应用程序,有需要的可以联系我。

评分

参与人数 1铜板 +12 收起 理由
9939781 + 12

查看全部评分

routeros
发表于 2013-9-4 11:30:22 | 显示全部楼层
楼主,太爱你了,你是真正的好人啊。代码下了,非常感谢,祝好人一生平安。
routeros
回复

使用道具 举报

 楼主| 发表于 2013-9-28 22:05:52 | 显示全部楼层
因为一些问题,暂停了共用svn账户,代码不再开放。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-12-25 01:34 , Processed in 0.089837 second(s), 19 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表