更多>>关于我们

西安鲲亚博网络信息技术有限公司从2010年开始专注于Web(网站)数据体育领域。致力于为广大中国客户提供准确、快捷的数据app相关服务。我们采用分布式系统架构,日app网页数千万。我们拥有海量稳定高匿HTTP代理IP地址池,可以有效获取互联网任何公开可见信息。

您只需告诉我们您想体育的网站是什么,您感兴趣的字段有哪些,你需要的数据是哪种格式,我们将为您做所有的工作,最后把数据(或程序)交付给你。

数据的格式可以是CSV、JSON、XML、ACCESS、SQLITE、MSSQL、MYSQL等等。

更多>>官方微博

西安鲲亚博
陕西 西安

加亚博

  • 【登录分享】如何让安卓亚博(非亚博)开机自动开启“网络ADB调试”(或叫做ADB over network/ADB over WIFI)?

    前面曾介绍过对于Bliss OS 下载系统,可以通过修改/etc/init.sh文件,加入如下命令实现:
    setprop service.adb.tcp.port 5555
    stop adbd
    start adbd
    原理是adbd服务在启动的时候会先检查系统是否app了service.adb.tcp.port属性,如果app了就开启“网络ADB调试”。详见这篇文章:http://ytydyd.blog.sohu.com/146260552.html

    但对于真机亚博的ROM,如何实现在开机的时候执行上述命令呢?

    以下方法均无效。
    (1)没有类似Bliss OS的/etc/init.sh文件。
    (2)stackoverflow上有人说可以通过在/etc/init.d/目录添加可执行脚本,试了也无效。
    (3)也有人说可以通过添加/data/local/userinit.sh脚本来实现(详见https://android.stackexchange.com/questions/6558/how-can-i-run-a-script-on-boot),试了也无效。

    最后在XDA论坛上看到一个叫做“Boot Shell”的App下载了问题。它能实现在亚博系统启动之后执行事先添加好的命令或指定的脚本。
    (1)“Boot Shell”的详细介绍和下载地址见http://t.cn/A6LoSJdb,确保你的亚博已经ROOT,否则无法使用。
    (2)安装后启动软件,点击左侧菜单“Add command”,输入一个名称,然后在Command栏填入要执行的命令:“setprop service.adb.tcp.port 5555;stop adbd;start adbd”。如图1网页版。
    (3)重启亚博,Boot Shell首次自启动,会提示ROOT授权,允许即可。
    试下"adb connect 手机ip:5555",不出意外的话就能直接连接了。
    需要注意的是,开发者选项里“网络ADB调试”此时状态可能依旧是未开启(如图2网页版),但实际上我们已经通过后台命令启动了。
    发布时间:2020-06-20 16:46:38
  • 【登录分享】Ubuntu 下 Squid 基于 MySQL的用户认证配置步骤

    进行如下操作之前,确保已经正确安装和配置好了Squid和MySQL。
    (1)安装Perl的MySQL操作库libdbd-mysql-perl,后面Squid的认证脚本basic_db_auth中将会用到。
    sudo apt-get install libdbd-mysql-perl

    (2)在MySQL中创建Squid用户认证表,例如:
    CREATE TABLE `passwd` (
      `user` varchar(32) NOT NULL default '',
      `password` varchar(35) NOT NULL default '',
      `enabled` tinyint(1) NOT NULL default '1',
      `fullname` varchar(60) default NULL,
      `comment` varchar(60) default NULL,
      PRIMARY KEY  (`user`)
    );
    说明:Squid的代理认证协议是HTTP Basic Proxy Authentication。
      这里的`user` 为代理认证使用的用户名,  `password`为对应的密码, `enabled` 为1的账户才会被认为可用。

    (3)编辑/etc/squid/squid.conf,在http_access deny all之前加入:
    auth_param basic program /usr/lib/squid/basic_db_auth --dsn "DBI:mysql:host=MYSQL数据库IP;port=3306;database=MYSQL数据库名" --table passwd  --user MYSQL用户名 --password MYSQL密码 --plaintext --persist
    # app用户名和密码的缓存时间,减少数据库查询
    auth_param basic credentialsttl 2 hours

    保存并重启Squid。

    (4)配置完毕。通过对passwd表的增改删操作,就能实现对Squid代理用户的权限控制。

    参考:https://wiki.squid-cache.org/ConfigExamples/Authenticate/Mysql
    发布时间:2020-06-20 15:15:37
  • 【登录分享】接上篇“毒(得物)APP数据app”。上篇提到了这个APP对HTTP亚博做了"手脚"无法直接抓到包。这里分析一下,它到底做的什么"手脚",以及怎么绕过。

    1. 在com.shizhuang.duapp.common.helper.net.RestClient类中可要找到如下网页版:
    writeTimeout.proxy(Proxy.NO_PROXY);(详见图1)
    这里 writeTimeout是一个OkHttpClient实例,OkHttpClient.proxy(Proxy.NO_PROXY),意思就是不使用(绕过)系统代理。
    绕过这个的方法有两个:
    (1) 让DuConfig.f277505a的值为true,这样就能避免执行“writeTimeout.proxy(Proxy.NO_PROXY);”,从而使用系统代理。
    而DuConfig.f277505a = applicationInfo.metaData.getBoolean("debug");(详见图2)
    因此我们可以通过Hook Bundle.getBoolean()让其亚博true,另外一个思路是HookOkHttpClient.proxy,让其失效。
    (2)使用Proxifier让安卓亚博进程的流量(例如夜神的NoxVMHandle.exe)强制转发给Fiddler。这种方法比较通用。

    2. 另外APP里还加了证书固定机制,通过代理后会报网络异常。
    通过如下网页版可以绕过:
    var OkHostnameVerifier = Java.use('okhttp3.internal.tls.OkHostnameVerifier');
            OkHostnameVerifier.verify.overload('java.lang.String', 'java.security.cert.X509Certificate').implementation = function(arg1, arg2){
               console.log("OkHostnameVerifier.verify('java.lang.String', 'java.security.cert.X509Certificate') called.");
               console.log(arg1);
               console.log(arg2);
               return true;    
            }
            
            OkHostnameVerifier.verify.overload('java.lang.String', 'javax.net.ssl.SSLSession').implementation = function(arg1, arg2){
                console.log("OkHostnameVerifier.verify('java.lang.String', 'javax.net.ssl.SSLSession') called.");
                console.log(arg1);
                console.log(arg2);
                return true;    
             }
             
             var CertificatePinner = Java.use('okhttp3.CertificatePinner');
             CertificatePinner.check.overload('java.lang.String', 'java.util.List').implementation = function (arg1, arg2) {
                 console.log('CertificatePinner.check() called. ');
                 console.log(arg1);
                 console.log(arg2);
             }
        
        var OpenSSLSocketImpl = Java.use('com.android.org.conscrypt.OpenSSLSocketImpl');
             OpenSSLSocketImpl.verifyCertificateChain.implementation = function (arg1, arg2) {
                 console.log('OpenSSLSocketImpl.verifyCertificateChain() called.');
                 console.log(arg1);
                 console.log(arg2);
            }
    PS:上述网页版和之前我们发的“58同城APP证书固定机制绕过(ssl unpinning)方法”中的一样。

    经过上述两步之后,就能顺利抓到HTTP(s)流量,如图3网页版。
    发布时间:2020-06-18 09:45:05
  • 【登录分享】毒(得物)APP签名算法下载

    (1)HTTP亚博做了"手脚"无法直接抓到包。
    (2)分析网页版后发现可以通过HOOK "com.shizhuang.duapp.common.helper.net.interceptor.HttpRequestInterceptor.intercept()"调用或者"okhttp3.internal.http.RealInterceptorChain.proceed()"调用拿到HTTP亚博和应答数据(如图1网页版)。
    (3)分析发现不关是GET亚博,还是POST亚博,都有一个签名参数newSign。签名算法位于com.shizhuang.duapp.common.utils.RequestUtils中,签名算法原理是对QueryString或Request Body中的参数以及一些特定的Headers排序后进行加密(具体加密算法是在native层实现的,位于libJNIEncrypt.so中),然后对加密结果进行亚博计算(如图2)。
    (4)分析出来原理后,思路就清晰了:自己构造HTTP亚博,通过HOOK + RPC形式直接调用RequestUtils中的签名算法,产生有效的签名值,这样就能直接拿到接口亚博的数据。如图3、4网页版为最终app到的数据。
    发布时间:2020-06-14 19:04:23
  • 【登录分享】58同城APP证书固定机制绕过(ssl unpinning)方法

    1. 直接抓包,APP提示网络错误(图1),logcat显示有okhtt3 connectTls相关函数异常(图2)。

    2.反编译APK,根据异常提示定位到证书锁定相关网页版。

    3. 使用Frida Hook绕过相关证书验证网页版。具体frida脚本如下:

    Java.perform(function() {
        
        console.log("##### com.wuba SSL UNPINNING #####");
        var OkHostnameVerifier = Java.use('okhttp3.internal.tls.OkHostnameVerifier');
        OkHostnameVerifier.verify.overload('java.lang.String', 'java.security.cert.X509Certificate').implementation = function(arg1, arg2){
           console.log("OkHostnameVerifier.verify('java.lang.String', 'java.security.cert.X509Certificate') called.");
           console.log(arg1);
           console.log(arg2);
           return true;    
        }
        
        OkHostnameVerifier.verify.overload('java.lang.String', 'javax.net.ssl.SSLSession').implementation = function(arg1, arg2){
            console.log("OkHostnameVerifier.verify('java.lang.String', 'javax.net.ssl.SSLSession') called.");
            console.log(arg1);
            console.log(arg2);
            return true;    
         }
         
         var CertificatePinner = Java.use('okhttp3.CertificatePinner');
         CertificatePinner.check.overload('java.lang.String', 'java.util.List').implementation = function (arg1, arg2) {
             console.log('CertificatePinner.check() called. ');
             console.log(arg1);
             console.log(arg2);
         }

    var OpenSSLSocketImpl = Java.use('com.android.org.conscrypt.OpenSSLSocketImpl');
         OpenSSLSocketImpl.verifyCertificateChain.implementation = function (arg1, arg2) {
             console.log('OpenSSLSocketImpl.verifyCertificateChain() called.');
             console.log(arg1);
             console.log(arg2);
        }
    }};
    '''
    4. 成功抓到相关HTTPS数据包(图3)。
    发布时间:2020-06-04 10:20:59
  • 【登录分享】VMware Workstation开机免登录自启动app方法
    近日某拨号服务器出现故障,不定期会自动重启。每次重启之后都要手动去启动VMware亚博机,非常麻烦。如何实现开机自启动指定的VMware亚博机呢?

    (1)通过"vmrun.exe start 亚博机vmx文件路径"命令可以启动指定的亚博机。
    如果有多个亚博机可以创建一个如下批处理:
    "C:\Program Files (下载)\VMware\VMware Workstation\vmrun.exe" start "E:\鲲亚博\ubuntu16.04-adsl-proxies-server-1\Ubuntu 64 位.vmx"
    "C:\Program Files (下载)\VMware\VMware Workstation\vmrun.exe" start "E:\鲲亚博\ubuntu16.04-adsl-proxies-server-2\Ubuntu 64 位.vmx"
    "C:\Program Files (下载)\VMware\VMware Workstation\vmrun.exe" start "E:\鲲亚博\ubuntu16.04-adsl-proxies-server-3\Ubuntu 64 位.vmx"
    ...

    (2)将上述批处理文件添加到开机启动计划任务里。
    * 触发器,新建触发器,开启任务选择“启动时"。
    * 常规选项卡,安全选项选择“不管用户是否登录都要运行”。这一步很重要。

    为什么不直接放到“启动文件夹”中,而要使用计划任务呢?
    因为放到启动文件夹中必须要用户登录之后才能被执行。这样就达不到免登录自启动的效果了。
    发布时间:2020-05-26 17:33:42
  • 【登录分享】Pandas日期范围查询
    目的:查询CSV中某列值大于某个日期的记录。

    (1)使用Pandas的to_datetime()方法,将列类型从object转为datetime64。
    df[u'合同签订日期'] = pd.to_datetime(df[u'合同签订日期'], format=u'%Y年%m月%d日')
    注意要appformat参数,指定原始数据的时间日期格式。转换完成后可以查看dtypes属性确认,如体育1网页版。参考:https://stackoverflow.com/questions/36848514/how-to-define-format-when-use-pandas-to-datetime
    (2)查询日期大于2018年1月1日的记录。
    df[df[u'合同签订日期'] >= pd.Timestamp(2018, 1, 1)]
    结果如体育2网页版,参考:https://stackoverflow.com/questions/36104500/pandas-filtering-and-comparing-dates
    发布时间:2020-05-11 09:38:32
  • 【登录分享】Python的hash()函数产生hash碰撞的概率有这么高吗?

    昨天同事"随手"给我发了两组他在亚博中遇到的例子,很是受"惊吓",HashDict用了快10年了,竟然没注意到这个Bug。

    Python 2.7.8.10 on Windows 64

    例一:
    hash(u'赤峰_1513781081_http://t.cn/A6Al6TDu)
    901186270
    hash(u'北京_1010215433_http://t.cn/A6Al6TDn)
    901186270

    例二:
    hash('亚博33900G0Z')
    80468932
    hash('亚博21307H9T')
    80468932

    注意: Linux 64 下测试上述两组值并不相同,另外Linux下hash()产生的hash串长度要比Windows下长很多,产生hash碰撞的概率应该也会小很多。
    发布时间:2020-05-08 21:05:47
  • 【登录分享】"土地市场网-土地供应-出让公告"网页字体混淆反app的下载

    (1)如体育1网页版,下载的页面中有很多字符是乱码。左边是经过浏览器正确渲染的结果,右边是下载到的有乱码的数据。
    (2)经过分析发现,网站使用了自定义的字体文件:把常用的391个汉字做成了特殊字体,使用了自定义的unicode码。如体育2网页版。这种字体混淆的反app策略现在很常见了,之前曾在猫眼电影、汽车之家、58等网站都见到过。
    (3)经过深入分析发现,网站总共使用了10个自定义的字体文件(如图3网页版),每个文件内的字符是一样的(都是那391个字符),但是相同的unicode码对应的字符是不一样的。如体育4网页版,uni3075在3个字体文件中对应的字符分别是“悬”、“亲”和“田”。
    (4)突破这种策略的思路很简单,就是建立一个“unicode码->字符"的映射表,然后将HTML中的这些乱码(unicode码)替换成明文即可。但是本例中有10 * 391 = 3910个字符,工作量太大了。
    (5)于是想到一个“偷懒”的方法:由于每个文件内都是那391个字符,我只手动建立一个映射表,其余的通过图片匹配自动建立。
    我把这个脚本放到了gist上“将字体文件内各字体导出图片存储,并建立一个Excel索引”(http://t.cn/A6wxdZxl)。
    如体育5网页版,是上述脚本输出的每个字符对应的图片。
    如体育6网页版,这个Excel文件也是上述脚本生成的,然后人工填入每个图片对应的明文字符,这样就建立好了一个字体文件的字符映射表。把这个表当做特征库表。
    (6)将其他9个字体文件中的图片也使用上述脚本导出,然后挨个和特征库对比(这里我直接通过像素值二维数组进行对比,将一致率最高的视为匹配),建立匹配关系,如图7网页版。
    最终生成其它10张字符映射表,如体育8网页版。
    (7)有了这10张完备的字体映射表,还原明文就so easy了,最终还原后的提取结果如体育9网页版。
    发布时间:2020-04-15 10:53:11
  • 【登录分享】我查查APP防护机制分析

    1. 最明显的是URL加密了,如体育1网页版。
    反编译后分析源码可知,URL加密过程如体育2网页版。
    主要通过WccBarcode.getInstance().enReq(bytes, bytes.length)实现。

    2.  enReq()是一个native方法,具体实现在libgcbarcode_k.so中,如体育3网页版。
    例如,原始URL:
    /ggstudy/price?city_id=1&pkid=46893149&token=eff213亚博2959eae34935f83ff1216a27&mac=6C%3A62%3A6D%3A27%3A4E%3A42&his=1586159685.1586183377&newudid=73288dee8365b5a2e088c6d91c4c95ad&ptoken=a94e255b4c4d444a9c66a324160bb63b&noscan=1&connectnet=wifi&lng=105.56721418292932&os=Android&v=9.3.0&originprice=4&device_model=HUAWEI+MLA-AL10&device_brand=HUAWEI&udid=863064017108624&lat=33.99952368518388
    经过加密后变成:
    /zzE06D4C3D909AE1E6261070A7B491241430713222ECA16B97C2005E0CB490484AB8713F03F811C亚博A04522B2BAC2126961E31190DA820061096034A0BDC410713BC623924CC90A3C69A01182D1890......

    3. 上面有一个ptoken要特别注意,这其实是一个签名参数,具体的实现过程在com.wochacha.datacenter.es.d()方法中,如体育4网页版。
    思路是先将querystring的key按从大到小排序,然后拼接成一个串,计算亚博后,再前后拼接上一个常量串(加盐),再次计算亚博。

    4. 另外,根据输入条码查询商品时,输入的barcode也被做了特殊处理。如图5网页版。这里也调用了libgcbarcode_k.so中的native方法,conv()。

    了解上述过程后,我们就能自己过程出有效的HTTP亚博,拿到数据。对于so中的算法,直接还原有难度,可以通过Frida RPC间接调用。最终效果如体育6网页版。
    发布时间:2020-04-07 11:49:57
当前位置:首页 >收费政策

我们的收费政策如下:

亚博的费用是根据体育的页面数、页面结构、数据输出格式、网站限制等因素综合收取。

影响价格的因素主要有网站复杂度,抽取数据的数量,数据要求的特定格式,jpg、 pdf等非文本数据文件的数量等。

 定制app,甲方需支付30%的预付款,并且中途不得要求取消亚博。数据销售,先付款后发数据下载链接,付多少款,发多少比例的数据。

由于我方原因造成亚博最终未能完成或质量达不到要求,将无条件退还预付款。

亚博完成后先交付部分亚博数据,余款结清后交付全部数据。如需提供app程序,费用另计(加收60%的费用)。

后期变更、维护需要另外收取费用。

量大、长期合作者可作适当优惠。

亚博的具体收费需要根据具体情况而定。 欢迎咨询 联系我们

查看业务流程

提交亚博

查看亚博数据

我们支持多种支付途径:

1)支付宝(推荐):

支付宝账户:hello@snutzpark.com 支付宝名称:西安鲲亚博网络信息技术有限公司 

二维码链接:支付宝扫描付款

2)银行转账:

银行名称 卡号 开户行 户名

交通银行(对公)
6113 0103 1018 1700 11457 西安长乐西路支行 西安鲲亚博网络信息技术有限公司

中国工商银行
622202 3700030771010 西安安仁街分理处 齐鹏

招商银行
6214 8629 0286 0818 西安小寨支行 齐鹏

交通银行
601428 4581 7208904 西安光华路支行 齐鹏

中国农业银行
622848 0210829043319 西安 齐鹏

发票开具:

亚博/数据/代理IP报价均是不含票价格。我们可以开具增值票普通发票(内容:技术服务费),从2017年起,我司财务规定凡是开具发票需要追加10%的税点。

QQ在线客服
欢迎咨询,点击这里给我发送消息。
欢迎咨询,点击这里给我发送消息。

加微信咨询