Pcap_DNSProxy 一个忽略 DNS 投毒污染的小工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
chengr28
V2EX    程序员

Pcap_DNSProxy 一个忽略 DNS 投毒污染的小工具

  •  6
     
  •   chengr28 2014-06-23 20:46:53 +08:00 44230 次点击
    这是一个创建于 4129 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/chengr28/pcap_dnsproxy

    自己的小工程(?)嘛用的是 C/C++(其实骨子里是用了Cpp语法的C)
    之前看到SS的大大发了一个工具被引来了这边……
    听说用Python写简单,大部分DNS本地代理都是Python写的,可惜完全不懂
    看到这几天这么多工具忽然都冒出来被吓了 =3=

    回归正题
    这工具用的是 Pcap 抓包,什么IP头啊UDP都能看到,过滤其实也不难
    支持正则表达式的Hosts
    当然也支持TCP请求,不过TCP有几个固定域名会被连接重置,而且考虑资源占用当然首选UDP
    也可以把域名重定向请求境内的DNS服务器提高速度,不过规则我看过长得无法直视……就不带了
    v0.4里开始支持DNSCrypt的协议
    Windows/Linux/Mac 三个版本,不过Linux/Mac可能更新得比较慢
    54 条回复    2020-01-21 09:48:33 +08:00
    LazyZhu
        1
    LazyZhu  
       2014-06-23 21:03:20 +08:00
    “把域名重定向请求境内的DNS服务器”这个功能需要啊,类似于Dnsmasq的server设置,可以基于gfwlist做dns请求重定向
    chengr28
        2
    chengr28  
    OP
       2014-06-23 21:07:37 +08:00
    @LazyZhu 哦哦可能是我的说法有问题……我的意思是规则太长项目没有自带,这个功能是有的,默认用的是114DNS: https://lh6.googleusercontent.com/-z1IfbCdAnJs/U6gj21OK4SI/AAAAAAABuJc/v_8IVkZ9pCk/w0/2014-06-23-RX-Hosts-Support.png
    jyzhengqian
        3
    jyzhengqian  
       2014-06-23 21:09:44 +08:00
    围观Twitter上著名的28小盆友
    LazyZhu
        4
    LazyZhu  
       2014-06-23 21:23:06 +08:00
    哦,你这个有点不一样,是白名单么?我可以改成黑名单来用么,就是把gfwlist加入Local Hosts,并把IPv4 Local DNS Address改成自己的可用dns可以么
    LazyZhu
        5
    LazyZhu  
       2014-06-23 21:29:54 +08:00
    @jyzhengqian 难怪,眨眼功夫他又发了个twitter -_-!
    xinhugo
        6
    xinhugo  
       2014-06-23 21:41:42 +08:00   1
    提供一份白名单(正则表达式),大部分以GitHub收集的域名列表转换而来。

    https://xinhugo-list.googlecode.com/svn/trunk/White_List.txt
    LazyZhu
        7
    LazyZhu  
       2014-06-23 21:53:57 +08:00
    @xinhugo 都是以b开始的?

    PS:白名单是无止境的,黑名单只有2000+
    streamgo
        8
    streamgo  
       2014-06-23 21:56:26 +08:00
    @chengr28 安装服务、启动程序,均报错。WIN7 64位系统。
    xinhugo
        9
    xinhugo  
       2014-06-23 22:06:54 +08:00
    @LazyZhu 白名单改成黑名单用?当然可以。

    编辑 Config.ini,「IPv4 DNS Address」、「IPv4 Alternate DNS Address」与「IPv4 Local DNS Address」、「IPv4 Local Alternate DNS Address」的地址互换即可。

    即:
    1.「IPv4 DNS Address」、「IPv4 Alternate DNS Address」填写境内DNS地址;
    2.「IPv4 Local DNS Address」、「IPv4 Local Alternate DNS Address」填写境外DNS地址。


    以上,可实现 Hosts.ini 的[Local Hosts]部分,所包含的正则表达式匹配的域名,由境外DNS地址解析。
    xinhugo
        10
    xinhugo  
       2014-06-23 22:17:21 +08:00   1
    @LazyZhu 建议提供报错信息,以便判断问题原因。

    猜测:
    1.WinPcap 没安装?
    2.127.0.0.1:53 被占用?


    @LazyZhu Pcap_DNSProxy 使用正则表达式匹配。例如,
    规则:「.*\b163\.com」
    匹配:「163.com」、「mail.163.com
    不匹配:「1163.com

    白名单,匹配中国境内有服务器的解析率高的域名就够了。只有一台服务器的域名,使用境外DNS服务器解析,也不会变慢。
    streamgo
        11
    streamgo  
       2014-06-23 22:25:09 +08:00   1
    一、
    [SC] ControlService 失败 1062:

    服务尚未启动。

    [SC] DeleteService 成功
    [SC] CreateService 成功
    操作成功完成。
    操作成功完成。
    [SC] ChangeServiceConfig2 成功
    [SC] StartService 失败 1053:

    服务没有及时响应启动或控制请求。


    Done. Please confirm the PcapDNSProxyService service had been installed.

    请按任意键继续. . .


    二、
    [SC] StartService 失败 1053:

    服务没有及时响应启动或控制请求。


    Done. Please confirm the PcapDNSProxyService service had been started.

    请按任意键继续. . .

    三、
    WinPcap 已安装。
    xinhugo
        12
    xinhugo  
       2014-06-23 22:50:04 +08:00
    @streamgo 作者已了解你的反馈,稍后在GitHub下载新版本试试。

    我具备客服的潜质?
    AstroProfundis
        13
    AstroProfundis  
       2014-06-23 23:28:16 +08:00
    www看到好久了,不过一直还没试过_(:з∠)_
    xinhugo
        14
    xinhugo  
       2014-06-24 00:13:25 +08:00
    @streamgo @AstroProfundis 新版本已上传到GitHub,欢迎使用以及反馈。

    https://github.com/chengr28/pcap_dnsproxy
    RIcter
        15
    RIcter  
       2014-06-24 01:04:41 +08:00
    28小朋友(`·ω·)
    streamgo
        16
    streamgo  
       2014-06-24 02:13:17 +08:00
    新版正常了。需要修改DNS为127.0.0.1吗?
    missdeer
        17
    missdeer  
       2014-06-24 09:29:35 +08:00
    我也是来围观推友作品的~
    dopcn
        18
    dopcn  
       2014-06-24 10:03:08 +08:00
    这个使用说明相当复杂,不明觉厉
    xinhugo
        19
    xinhugo  
       2014-06-24 13:39:06 +08:00
    @streamgo 当然需要设置当前网络连接的 DNS 服务器地址啦。

    chengr28 在 Wiki 清楚列出了安装方法,建议阅读。(拿到新产品,先看说明书,竟然不是习惯?)

    https://github.com/chengr28/pcap_dnsproxy/wiki/ReadMe


    @dopcn 清楚的使用说明,能有效降低使用新产品的时间成本。
    chengr28
        20
    chengr28  
    OP
       2014-06-24 16:01:37 +08:00
    @LazyZhu @xinhugo
    白名单其实有个更简单的方法……ReadMe里也有提到这个功能 -> https://github.com/chengr28/pcap_dnsproxy/wiki/ReadMe#whitelist---%E7%99%BD%E5%90%8D%E5%8D%95%E6%9D%A1%E7%9B%AE

    境内解析没有过滤伪包的能力,如果直接对换会被投毒污染的
    例如我想只有符合 *.google* 的域名才使用远程服务器,其它全部使用境内服务器解析

    [Local Hosts]
    NULL .*\.google.*
    .*\b
    chengr28
        21
    chengr28  
    OP
       2014-06-24 16:35:23 +08:00
    @streamgo 感谢反馈错误,问题已经修复。至于 127.0.0.1 这个是必须要设置的,这一步是让系统的解析发送到程序的监听端口,如果不设置等于没装 Pcap_DNSProxy ……

    顺便赞一下 @xinhugo 高级客服经理 =w=
    streamgo
        22
    streamgo  
       2014-06-24 18:32:04 +08:00
    @xinhugo
    @chengr28 万分感谢。多谢指教啦!
    LazyZhu
        23
    LazyZhu  
       2014-06-24 19:14:40 +08:00
    @chengr28 这个NULL好
    a1328788808
        24
    a1328788808  
       2014-06-25 19:16:04 +08:00 via Android
    @chengr28 首要dna填127.0.0.1 备用dns还用不用填什么呢?
    chengr28
        25
    chengr28  
    OP
       2014-06-26 09:52:11 +08:00
    @a1328788808 一般是不用填的,不过事实上填点其它貌似也无所谓,不知道Windows是什么切换算法……我自己用着就没有填
    qjhqxnne
        26
    qjhqxnne  
       2014-06-26 21:10:51 +08:00
    有没有android版?
    chengr28
        27
    chengr28  
    OP
       2014-06-27 17:51:16 +08:00
    Shared
        28
    Shared  
       2014-07-07 21:17:09 +08:00
    @chengr28 在 OSX 10.9.4 上设置完出现这个结果

    ; <<>> DiG 9.8.3-P1 <<>> www.google.com
    ;; global options: +cmd
    ;; connection timed out; no servers could be reached

    这是正常情况吗?没有日志生成。。
    chengr28
        29
    chengr28  
    OP
       2014-08-20 01:57:25 +08:00
    @Shared 不好意思现在才回复……因为比较少上来这边

    这个还真是不好判断呢……似乎所有超时拿不到解析结果都是这样的
    这样吧……先看一下 Pcap_DNSProxy 是不是在运行之中
    在终端输入 sudo launchctl list 看看列表里面有没有 PcapDNSProxyService
    如果没有那可能是运行出错或者部署不成功,建议看下程序目录里有没有 Error.log 之类的
    如果已经在运行中了,则建议修改 Hosts.conf 随便加一条例如 203.208.46.200 www\.google\.com 这样的条目保存等一会儿再 dig www.google.com 看看有没有结果(注意实验完记得删掉w)
    如果有的话,那可能就是因为最近GFW对境外DNS服务器干扰太严重导致解析失败,这个似乎是无解的……可能需要等到 v0.4 新版本升级后启用了新功能才会有所缓解(参见 v0.4 Beta 的Windows版)
    如果没有结果那可能是程序的问题……
    Shared
        30
    Shared  
       2014-08-20 12:06:46 +08:00
    @chengr28 谢谢,我晚上回去试试
    huangyedoushi
        31
    huangyedoushi  
       2015-04-09 14:41:06 +08:00
    [SC] ControlService 失败 1062:

    服务尚未启动。

    [SC] DeleteService 成功
    [SC] CreateService 成功
    操作成功完成。
    操作成功完成。
    'Pcap_DNSProxy_x86.exe' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    [SC] ChangeServiceConfig2 成功
    [SC] ChangeServiceConfig2 成功
    [SC] StartService 失败 2:

    系统找不到指定的文件。


    Windows IP 配置

    已成功刷新 DNS 解析缓存。

    Service start failed, please check the configurations.

    请按任意键继续. . .


    WinPcap 已安装
    请教如何解决?
    chengr28
        32
    chengr28  
    OP
       2015-04-20 22:16:29 +08:00
    @huangyedoushi 请问下载的是 Release 分支的 ZIP 吗?
    hcql
        33
    hcql  
       2015-06-01 10:12:48 +08:00
    升级后用不了了..白名单域名可以解析.非白名单解析都超时..
    服务器: pcap-dnsproxy.localhost.server
    Address: ::1

    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    DNS request timed out.
    timeout was 2 seconds.
    *** 请求 pcap-dnsproxy.localhost.server 超时
    chengr28
        34
    chengr28  
    OP
       2015-06-01 13:35:19 +08:00
    @hcql 希望能提供一下配置文件
    hcql
        35
    hcql  
       2015-06-01 16:54:16 +08:00
    @chengr28


    [Base]
    Version = 0.4
    File Refresh Time = 10
    Additional Path =
    Hosts File Name = Hosts.ini|Hosts.conf|Hosts|Hosts.txt|Hosts.csv|WhiteList.txt|White_List.txt
    IPFilter File Name = IPFilter.ini|IPFilter.conf|IPFilter.dat|IPFilter.csv|IPFilter|Guarding.p2p|Guarding|Routing.txt|chnrouting.txt|chnroute.txt

    [Log]
    Print Error = 1
    Log Maximum Size = 8MB

    [DNS]
    Protocol = TCP
    Hosts Only= 0
    Local Main = 0
    Local Hosts = 1
    Local Routing = 0
    Cache Type = Queue
    Cache Parameter = 256
    Default TTL = 900

    [Listen]
    Pcap Capture = 1
    Pcap Reading Timeout = 200
    Operation Mode = Private
    Listen Protocol = IPv6 + TCP + UDP
    Listen Port = 53
    IPFilter Type = Deny
    IPFilter Level <
    Accept Type =

    [Addresses]
    IPv4 Listen Address =
    IPv4 EDNS Client Subnet Address =
    IPv4 DNS Address = 208.67.220.220:443
    IPv4 Alternate DNS Address = 8.8.8.8:53|208.67.220.220:443|208.67.222.222:5353
    IPv4 Local DNS Address = 202.101.172.47:53
    IPv4 Local Alternate DNS Address = 223.6.6.6:53
    IPv6 Listen Address =
    IPv6 EDNS Client Subnet Address =
    IPv6 DNS Address = [2001:470:20::2]:53
    ## IPv6 DNS Address = [2001:4860:4860::8844]:53
    IPv6 Alternate DNS Address =
    ## IPv6 Alternate DNS Address = [2001:4860:4860::8888]:53
    IPv6 Local DNS Address =
    IPv6 Local Alternate DNS Address =

    [Values]
    EDNS Payload Size =
    IPv4 TTL = 0
    IPv6 Hop Limits = 0
    IPv4 Alternate TTL = 0
    IPv6 Alternate Hop Limits = 0
    Hop Limits Fluctuation = 2
    Reliable Socket Timeout = 5000
    Unreliable Socket Timeout = 3000
    Receive Waiting = 0
    ICMP Test = 900
    Domain Test = 900
    Alternate Times = 10
    Alternate Time Range = 60
    Alternate Reset Time = 300
    Multi Request Times = 0

    [Switches]
    Domain Case COnversion= 1
    Compression Pointer Mutation = 0
    EDNS Label = 0
    EDNS Client Subnet = 0
    DNSSEC Request = 0
    DNSSEC Validation = 0
    DNSSEC Force Validation = 0
    Alternate Multi Request = 0
    IPv4 Data Filter = 0
    TCP Data Filter = 1
    DNS Data Filter = 1
    Blacklist Filter = 1

    [Data]
    ICMP ID =
    ICMP Sequence =
    ICMP PaddingData =
    Domain Test ID =
    Domain Test Data =
    Localhost Server Name =

    [DNSCurve]
    DNSCurve = 0
    DNSCurve Protocol = UDP
    DNSCurve Payload Size =
    Encryption = 1
    Encryption Only= 0
    Key Recheck Time = 3600

    [DNSCurve Addresses]
    DNSCurve IPv4 DNS Address = 208.67.220.220:443
    DNSCurve IPv4 Alternate DNS Address = 208.67.222.222:443
    DNSCurve IPv6 DNS Address =
    ## DNSCurve IPv6 DNS Address = [2620:0:CCC::2]:443
    DNSCurve IPv6 Alternate DNS Address =
    ## DNSCurve IPv6 Alternate DNS Address = [2620:0:CCD::2]:443
    DNSCurve IPv4 Provider Name = 2.dnscrypt-cert.opendns.com
    DNSCurve IPv4 Alternate Provider Name = 2.dnscrypt-cert.opendns.com
    DNSCurve IPv6 Provider Name =
    ## DNSCurve IPv6 Provider Name = 2.dnscrypt-cert.opendns.com
    DNSCurve IPv6 Alternate Provider Name =
    ## DNSCurve IPv6 Alternate Provider Name = 2.dnscrypt-cert.opendns.com

    [DNSCurve Keys]
    Client Public Key =
    Client Secret Key =
    IPv4 DNS Public Key = B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
    IPv4 Alternate DNS Public Key = B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
    IPv6 DNS Public Key =
    ## IPv6 DNS Public Key = B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
    IPv6 Alternate DNS Public Key =
    ## IPv6 Alternate DNS Public Key = B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79
    IPv4 DNS Fingerprint =
    ## IPv4 DNS Fingerprint = 227C:86C7:7574:81AB:6AE2:402B:4627:6E18:CFBB:60FA:DF92:652F:D694:01E8:EBF2:B007
    IPv4 Alternate DNS Fingerprint =
    ## IPv4 Alternate DNS Fingerprint = 227C:86C7:7574:81AB:6AE2:402B:4627:6E18:CFBB:60FA:DF92:652F:D694:01E8:EBF2:B007
    IPv6 DNS Fingerprint =
    ## IPv6 DNS Fingerprint = 227C:86C7:7574:81AB:6AE2:402B:4627:6E18:CFBB:60FA:DF92:652F:D694:01E8:EBF2:B007
    IPv6 Alternate DNS Fingerprint =
    ## IPv6 Alternate DNS Fingerprint = 227C:86C7:7574:81AB:6AE2:402B:4627:6E18:CFBB:60FA:DF92:652F:D694:01E8:EBF2:B007

    [DNSCurve Magic Number]
    IPv4 Receive Magic Number =
    IPv4 Alternate Receive Magic Number =
    IPv6 Receive Magic Number =
    IPv6 Alternate Receive Magic Number =
    IPv4 DNS Magic Number =
    ## IPv4 DNS Magic Number = qe47QHHw
    IPv4 Alternate DNS Magic Number =
    ## IPv4 Alternate DNS Magic Number = qe47QHHw
    IPv6 DNS Magic Number =
    ## IPv6 DNS Magic Number = qe47QHHw
    IPv6 Alternate DNS Magic Number =
    ## IPv6 Alternate DNS Magic Number = qe47QHHw
    chengr28
        36
    chengr28  
    OP
       2015-06-01 23:21:55 +08:00   1
    @hcql 似乎是 IPv6 DNS Address = [2001:470:20::2]:53 这行的问题
    关于 IPv6 因为如果用的是隧道的话抓包是抓不到的,系统内没有可用于公共地址路由的 IPv6 网关或者网关不通的话,填入 IPv6 地址后会导致程序往 IPv6 发并一直等待而不会进行 IPv4 的请求,然后就一直超时了……
    hcql
        37
    hcql  
       2015-06-02 11:57:52 +08:00
    @chengr28 本月升级前的版本.我使用正常呢,升级后就用不来了.

    我是启用了IPV6 DNS 优先解析.用来免翻墙访问google什么的.
    不过用2001:470:20::2 这个DNS 解析淘宝等国内站都是美国地址.用了大神的软件感觉好爽. 现在没的用了.呜呜呜~~
    chengr28
        38
    chengr28  
    OP
       2015-06-02 21:20:38 +08:00
    @hcql 之前的是什么版本……0.4 正式版之前的版本,出口的选择是有问题的,也就是说有时就算填了 IPv6 地址,实际上走的也是 IPv4 的解析……不确定的话,可以抓个包看看具体是怎么发的
    chengr28
        39
    chengr28  
    OP
       2015-06-02 21:42:27 +08:00
    或者这样吧……可以在 GitHub 我的页面找到联系用的邮箱
    这样可以比较有针对性看看是什么问题
    muziling
        40
    muziling  
       2016-01-29 11:27:44 +08:00
    这个有包含 chinadns 的功能不, 如果不在国内列表里的域名,会不会丢失 CDN 加速?
    c0mmand
        41
    c0mmand  
       2016-07-28 09:36:57 +08:00
    [Imgur]( ) windows server 2003 sp2
    @chengr28
    c0mmand
        42
    c0mmand  
      nbsp;2016-07-28 09:53:11 +08:00
    @chengr28 全新安装同样报错
    [img][/img]
    chengr28
        43
    chengr28  
    OP
       2016-11-17 21:51:05 +08:00
    @muziling 默认配置就是和 ChinaDNS 一样用的是境内路由表
    mythhack
        44
    mythhack  
       2016-12-26 10:02:40 +08:00
    @wuxiao2522 你这明显是没权限。得用 admin 运行
    mythhack
        45
    mythhack  
       2016-12-26 10:03:49 +08:00
    @hcql ,。,我也是这个情况。作者的回复,我把 Listen Protocol = IPv4 + TCP + UDP 的 ipv6 删了。。好像是好了
    ying9y
        46
    ying9y  
       2017-01-17 18:48:12 +08:00
    交叉编译 Pcap_DNSProxy 到路由器运行,能运行,但是 dns leak 测试时,出现多个非指定的 dns 解析 ip ,是不是 dns 泄漏了?
    www.v2ex.com/t/335226
    chengr28
        47
    chengr28  
    OP
       2017-05-15 22:07:46 +08:00
    @ying9y 不清楚你说的 DNS 泄漏是什么意思
    artoostark
        48
    artoostark  
       2018-03-05 11:02:18 +08:00
    28 小朋友(`·ω·)
    peesefoo
        49
    peesefoo  
       2019-09-29 17:23:32 +08:00
    这个项目貌似今天删掉了。
    Nostopping
        50
    Nostopping  
       2019-09-29 22:27:02 +08:00
    @peesefoo 我也发现了.一直在用来着.咋突然没了
    ddzy
        51
    ddzy  
       2019-10-03 09:18:51 +08:00
    估计被招安了
    fawkex
        52
    fawkex  
       2019-10-29 18:07:37 +08:00 via Android   1
    R.I.P Pcap_DNSProxy
    helixcg
        53
    helixcg  
       2020-01-21 09:48:15 +08:00
    28 小朋友
    helixcg
        54
    helixcg  
       2020-01-21 09:48:33 +08:00
    28 小朋友 哎
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1361 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 16:45 PVG 00:45 LAX 09:45 JFK 12:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86