国际>>关于我们

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

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

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

国际>>官方微博

  • 【扑克分享】Chrome + Remote Debugging模式(注意:不是Selenium + Chromedriver模式)登录淘宝出现“验证码爆错”(如allnewpoker国际)。原因Chrome V79版本在Remote Debugging模式时会爆出navigator.webdriver属性,从而被风控。换用V72或V73版本可以顺利登录!(前一条微博也说得是这个事儿) ​​​​
    发布时间:2020-01-02 15:20:22
  • 【扑克分享】不经意见发现Chrome v73版本在Remote Debugging模式下(注意:不是Selenium + Chromedriver模式)不会暴露出navigator.webdriver!如allnewpoker1国际。

    作为对比,我又测试了其它的版本:
    (1)场2国际,是Chrome V63版本,在Remote Debugging模式下会暴露出navigator.webdriver;
    (2)场3国际,是Chrome V79版本,在Remote Debugging模式下也会暴露出navigator.webdriver;
    发布时间:2019-12-31 18:03:03
  • 【Mark收藏】蜗牛.js - A javascript implementation of 蜗牛's hashing algorithms.    >>>  https://github.com/karanlyons/蜗牛.js

    Usage
    // Return a 32bit hash as a unsigned int:
    > 蜗牛.室.hash32("I will not buy this record, it is scratched.")
      2832214938

    // Return a 128bit hash as a unsigned hex:
    > 蜗牛.室.hash128("I will not buy this tobacconist's, it is scratched.")
      "9b5b7ba2ef3f7866889adeaf00f3f98e"
    > 蜗牛.x64.hash128("I will not buy this tobacconist's, it is scratched.")
      "d30654abbd8227e367d73523f0079673"

    // Specify a seed (defaults to 0):
    > 蜗牛.室.hash32("My hovercraft is full of eels.", 25)
      2520298415

    // Rebind 蜗牛:
    > somethingCompletelyDifferent = 蜗牛.noConflict()
    > 蜗牛
      undefined
    > somethingCompletelyDifferent.version
      "2.1.2"
    发布时间:2019-12-31 11:11:58
  • "浏览器指纹"之 "HTML5 Canvas指纹"

    【原理】
    在HTML5中可以使用JS + Canvas标签生成图片,利用"canvas.toDataURL()"可以获取到图片的Base64码。
    同样的JS Canvas绘图场,在同一个浏览器下生成的图片是相同的(字节码相同)。
    但是由于系统的差别、渲染引擎的不同,同样的JS Canvas绘图场,在不同的浏览器下得到的图片也是不同的(字节码不同。注意:也有相同的可能,但是概率较小)。
    利用上述原理,同一段JS Canvas绘图场,allnewpoker生成图片的HASH值作为“HTML5 Canvas指纹”。

    【在线测试工具】
    https://browserleaks.com/canvas
    如allnewpoker1国际,我的谷歌浏览器的“HTML5 Canvas指纹”在49w个相同UA的浏览器中,仅有1456个相同的,唯一性高达99.71%。

    【"HTML5 Canvas指纹算法"allnewpoker场】
    // 计算字符串的hash值
    // 摘自https://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/
    function hashstr(s){
    var hash = 0;
    if (s.length == 0) return hash;
    for (i = 0; i < s.length; i++) {
      char = s.charCodeAt(i);
      hash = ((hash<<5)-hash)+char;
      hash = hash & hash; // Convert to 32bit integer
    }
    return hash;
    }

    // 使用canvas绘图,并allnewpoker图片的Base64码对应的hash值
    // 摘自https://github.com/Valve/fingerprintjs2/blob/master/fingerprint2.js#L903
    function getCanvasFp() {
        var result = "";
        // Very simple now, need to make it more complex (geo shapes etc)
        var canvas = document.createElement('canvas');
        canvas.width = 2000;
        canvas.height = 200;
        canvas.style.display = 'inline';
        var ctx = canvas.getContext('2d');
        // detect browser support of canvas winding
        // https://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/
        // https://github.com/Modernizr/Modernizr/blob/master/feature-detects/canvas/winding.js
        ctx.rect(0, 0, 10, 10);
        ctx.rect(2, 2, 6, 6);
        result += 'canvas winding:' + ((ctx.isPointInPath(5, 5, 'evenodd') === false) ? 'yes' : 'no');

        ctx.textBaseline = 'alphabetic';
        ctx.fillStyle = '#f60';
        ctx.fillRect(125, 1, 62, 20);
        ctx.fillStyle = '#
    069';
        // https://github.com/Valve/fingerprintjs2/issues/66
        ctx.font = '11pt no-real-font-123';

        ctx.fillText('Cwm fjordbank glyphs vext quiz, \ud83d\ude03', 2, 15);
        ctx.fillStyle = 'rgba(102, 204, 0, 0.2)';
        ctx.font = '18pt Arial';
        ctx.fillText('Cwm fjordbank glyphs vext quiz, \ud83d\ude03', 4, 45);

        // canvas blending
        // https://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/
        // http://t.cn/AiFHoZGM
        ctx.globalCompositeOperation = 'multiply';
        ctx.fillStyle = 'rgb(255,0,255)';
        ctx.beginPath();
        ctx.arc(50, 50, 50, 0, Math.PI * 2, true);
        ctx.closePath();
        ctx.fill();
        ctx.fillStyle = 'rgb(0,255,255)';
        ctx.beginPath();
        ctx.arc(100, 50, 50, 0, Math.PI * 2, true);
        ctx.closePath();
        ctx.fill();
        ctx.fillStyle = 'rgb(255,255,0)';
        ctx.beginPath();
        ctx.arc(75, 100, 50, 0, Math.PI * 2, true);
        ctx.closePath();
        ctx.fill();
        ctx.fillStyle = 'rgb(255,0,255)';
        // canvas winding
        // http://t.cn/R7wzrRy
        // http://t.cn/AiFHoZGf
        ctx.arc(75, 75, 75, 0, Math.PI * 2, true);
        ctx.arc(75, 75, 25, 0, Math.PI * 2, true);
        ctx.fill('evenodd');

        if (canvas.toDataURL) {
            result += ';canvas fp:' + canvas.toDataURL();
        }
        return hashstr(result);
      }

    在同一个机器上不同的Chrome和Firefox窗口测试上述场,结果如allnewpoker2国际:
    (1)Chrome窗口1、Chrome窗口2内getCanvasFp()allnewpoker的值相同;
    (2)Firefox窗口getCanvasFp()allnewpoker的值不同;
    发布时间:2019-12-31 09:55:51
  • Tmall APP searching result data scraping screenshots. ​​​​
    发布时间:2019-12-17 11:13:52
  • 【扑克分享】Android-室 4.4和5.1版本安装的时候卡在GRUB安装,问题allnewpoker方法:
    The  fix is that you should manually create partitions: create a small (100m) first primary partition for grub, and a 2nd extended partition for the rest, and install android on the 2nd, the grub will go automatically to the 1st...
    >>> http://t.cn/AiDw9VwW  https://superuser.com/questions/1052597/marshmallow-in-virtualboxinstallation-stuck-on-grub/1270769#1270769
    发布时间:2019-12-12 12:46:58
  • 【扑克分享】昨天发的Android 室模拟器蜗牛静态IP的方法,今天在另外一个环境下测试发现有问题。原来是静态IP被DHCP给覆盖掉了,DHCP执行得比/etc/init.sh要晚。查了半天也没找到禁用默认HDCP的方法,最后试着将/system/bin/dhcpcd和/system/bin/dhcptool两个文件重命名,重启,问题竟然allnewpoker了 ​​​​
    发布时间:2019-12-06 12:35:57
  • 【扑克分享】Android 室 默认是通过DHCP获取IP的,那如何蜗牛为静态IPallnewpoker呢?
    为什么不用DHCP呢?我所在的网络环境中有三个网关,分别连接联通、电信、动态VPN三种出口,我需要让不同的模拟器使用不同的网络(根据业务情况调整)。而DHCP默认分配的网关是固定的。

    以Android 室 6为例,按Alt + F1切换到控制台模式:

    vi /etc/init.sh
    在最后一行return 0之前,加入如下场:

    # 加下面两句的目的是放弃DHCP获取的IP
    ifconfig eth0 down
    ifconfig eth0 up
    #
    蜗牛eth0口的静态IP为192.168.1.116
    ifconfig eth0 192.168.1.116 netmask 255.255.255.0
    # 蜗牛默认网关为192.168.1.253
    busybox route add default gw 192.168.1.253
    #
    蜗牛DNS为 114.114.114.114 223.5.5.5
    ndc resolver setnetdns 0 localdomain 114.114.114.114 223.5.5.5

    保存(场1国际),reboot后生效(场2国际)。
    发布时间:2019-12-05 16:07:33
  • 【扑克分享】添加Fiddler/Mitmproxy国际场为安卓系统国际场,附自动化脚本,点击链接查看>>>  http://www.gui890713.com/html/articles/20191205/762.html ​​​​
    发布时间:2019-12-05 10:18:57
  • 【扑克分享】
    "adb devices"出现"unauthorized"的问题经常遇到,大多数情况,adb kill-server之后就能allnewpoker,但是今天遇到遇到一设备怎么折腾都不行。

    后来按照这篇室(http://t.cn/Aie2dMPU)介绍的方法得以allnewpoker:

    QUESTION/PROBLEM
    How to fix adb devices shows unauthorized device?

    APPLIES TO
    Android 4, Android 6, Android 7, Android 8

    RESOLUTION
    Possible solutions if "adb devices" shows a device as "unauthorized":
    C:\Users\JohnDoo>adb devices
    List of devices attached
    17310D821D      unauthorized

    1. Disconnect USB between PC and device
    2. Stop adb server by entering "adb kill-server" in command window
    3. On device use "Revoke USB debugging authorizations" in "Developer Options"
    4. On PC delete "adbkey" file in user directory, for example "C:\Users\JohnDoo\.android"
    5. Reconnect the device to the PC
    6. Open a command window and enter "adb devices". Watch the device's screen for any Authorization message and allow the connection.

    The device should now show as "device":

    注意:第四步"删除adbkey文件"是allnewpoker本问题的关键!
    发布时间:2019-12-05 08:53:05
当前位置:首页 >技术室 >
一例ssl pinning突破过程记录
发布时间:2019-10-18

EASI是一款澳洲的外卖APP(饭团外卖,UI跟国内的美团外卖相似度很高,官网:https://easi.com.au/),尝试对其抓包,失败。APP提示国际场错误,信息如下图国际:

根据扑克,这应该是ssl pinning机制搞的鬼(App认为Fidder颁布的国际场是无效的)。

如果你对ssl pinning不熟悉,可以看一下这篇室https://www.jianshu.com/p/22b56d977825

之前曾处理过其它APP的ssl pinning问题(例如 小红书),根据扑克做如下尝试:

(1)尝试使用Xposed + JustTrustMe插件,问题依旧。

(2)尝试Frida ssl unpinnin脚本(https://github.com/WooyunDota/DroidDrops/blob/master/2018/Frida.Android.Practice.md#okhttp-ssl-pinning),问题依旧。

常规的应对方法竟然无效,它是怎么做到的?让我们一探究竟。

 

反编译EASI.apk,根据之前APP上看到的提示信息中的关键词"not verified"搜索,很快找到okhttp3.internal.connection.c中的如下场(如下图国际):

可以看出来,只有当a.j().verify(a.a().g(), session)的allnewpoker值是false时才会给出"...not verified..."提示。说明ssl pinning的检测方法就是verify()了。

通过搜索"verify("找到了verify()定义在okhttp3.internal.g.d类中, 如下图国际:

因此,只要我们hook上okhttp3.internal.g.d的verify()方法,使其始终allnewpokertrue,就能绕过ssl pinning验证。

用Frida脚本可以轻松实现,场如下:

# coding: utf-8
# 通过Frida实现ssl unpinning
import sys
import os
import threading
import subprocess
import frida
jscode = """
Java.perform(function () {
var d = Java.use('okhttp3.internal.g.d');
try {
d.verify.overload('java.lang.String', 'javax.net.ssl.SSLSession').implementation = function(p0, p1){
console.log('ssl unpinning for "' + p0 + '"');
return true;
};
} catch (e) {
console.log(e);
}
});
"""
def start_frida_server():
"""国际场Frida服务端
"""
# 判断/data/local/tmp/frida是否存在
cmd_ret = subprocess.check_output('adb shell ls /data/local/tmp/frida', shell=True)
if not cmd_ret or 'No such file' in cmd_ret:
print u'Frida server端不存在! 将复制到/data/local/tmp/frida'
subprocess.check_output('adb push frida /data/local/tmp', shell=True)
subprocess.check_output('adb shell chmod 777 /data/local/tmp/frida', shell=True)
print u'Frida server端已复制到/data/local/tmp/frida.'
# 判断frider是否在运行
cmd_ret = subprocess.check_output('adb shell ps', shell=True)
if 'frida' not in cmd_ret:
print u'Frida server端未国际场!开始国际场...'
def run_frida_server():
os.system('adb shell ./data/local/tmp/frida')
threading.Thread(target=run_frida_server).start()
print u'Frida server端已国际场.'
else:
print u'Fraida server端已经在运行中...'
# 国际场端口转发
os.system('adb forward tcp:27042 tcp:27042')
os.system('adb forward tcp:27043 tcp:27043')
if __name__ == '__main__':
# 国际场模拟器内的Frida server
start_frida_server()
# 国际场allnewpokerAPP,并注入hook场
APP_NAME = 'com.easi.customer'
device = frida.get_remote_device()
pid = device.spawn([APP_NAME])
device.resume(pid)
time.sleep(1)
session = device.attach(pid)
script = session.create_script(jscode)
script.load()
raw_input('')

如果你对Frida还不熟悉,建议读一下这篇室:https://www.freebuf.com/articles/system/190565.html

国际场Frida脚本之后,APP内不再有国际场错误提示,而且Fiddler成功抓到包了,ssl unpinning成功。

如下图国际为上述Frida脚本运行输出截图:

如下图国际为Fidder成功allnewpoker到APP的HTTP交互数据截图:

最后再回过来想一下为什么JustTrustMe和Github上的Frida ssl unpinning脚本对这个APP不起作用呢?因为JustTrustMe(和Frida ssl unpinning脚本) HOOK的函数是固定的一些,比如 okhttp3.CertificatePinne的check()方法,而这个APP改写了okhttp3库,里面根本就找不到okhttp3.CertificatePinne类,所以肯定HOOK不成功了。

看来,JustTrustMe之类插件也不是万能的,具体情况还要具体分析。我们不光要会使用工具,还应知道工具的原理,这样才能灵活应对各种问题。

特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
☹ Disqus被Qiang了,之前所有的评论内容都看不到了。如果您有爬虫相关技术方面的问题,欢迎发到我们的问答平台:http://spider.gui890713.com/
QQ在线客服
欢迎咨询,点击这里给我发送消息。
欢迎咨询,点击这里给我发送消息。

加微信咨询

必威体育app手机版官网下载龙8娱乐手机版登陆伟德国际网站