sone 发表于 2013-8-11 04:59:04

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

本帖最后由 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两种监听模式)。在使用过程中根据需要开一个就行,详情在配置文件中。

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

配种文件中的

SnifferListenIP=监听的所属网卡的IP
DestAddrIP=劫持数据包发回的路由IP(多数情况下写一个不同网段或者外网的不同网段的IP也可以,因为这样这个数据包会被发到下一个路由,这个路由必须接受伪装IP的包。)
debug=true~~~~调试模式(大量数据和生成环境中应该是false)

maxworkthread=30000
minworkthread=10000
maxiothread=100000
miniothread=30000

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)
            {
                fixed (byte* pB = &buffer)
                {
                  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环境中。
多的自己琢磨免费,要问我邮箱联系付费(如果你感觉两三千块钱你能拿出来的话。。。)

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

city2046 发表于 2013-9-4 11:30:22

楼主,太爱你了,你是真正的好人啊。代码下了,非常感谢,祝好人一生平安。

sone 发表于 2013-9-28 22:05:52

因为一些问题,暂停了共用svn账户,代码不再开放。
页: [1]
查看完整版本: 旁路劫持系统源代码免费开放公布!!!(GPL授权)付费技术支持!