"小红书APP"商品数据采集,如附图所示 ​

8月10日 12:39转发|评论

【经验分享】adb启动“小红书”商城,打开指定关键词的搜索结果列表: adb shell "am start -n com.xingin.xhs/com.xingin.xhs.routers.RouterPage 'xhsdiscover://search/result?keyword=nike&mode=goods'" 效果如附图所示。 ​

8月9日 19:06转发|评论

【经验分享】“debian+随身WIFI”打造网关应对突发网络故障 今天突发网络故障(市政施工挖断了联通光纤),短期内还无法恢复。局域网内有数台采集器要工作,长期断网影响较大。 手上有一个随身WIFI,每月有900GB的电信流量(很久没用了,今天该它发光发热了)。另外还有一台装有Debian系统的笔记本。 ​

7月28日 11:00转发|评论

【经验分享】logcat是分析APP的利器之一。特别是大厂的APP,往往都有详尽的debug log,甚至详细到HTTP请求的参数,应答数据。但是在生产版本中他们一般会关掉调试日志,我们直接logcat是看不到任何敏感信息的。不过,开发者可能会留下一个开关,在必要的时候能够开启debug log。 以ctrip APP为例, ​

6月30日 12:05转发|评论

【经验分享】接上篇。发现一款名为ADB Manager的APP能够实现开机自动启动“ADB网络调试”,不需要像上篇那么复杂了。 ADB Manager (adbm)的项目主页:http://t.cn/A6LjJ2Zv,上面附有apk文件的下载地址。注意:使用该APP的前提是你的设备先要ROOT。 安装后点击“扳手”图标进入设置,勾选“Start on ​

6月23日 10:37转发|评论

【经验分享】如何让安卓设备(非模拟器)开机自动开启“网络ADB调试”(或叫做ADB over network/ADB over WIFI)? 前面曾介绍过对于Bliss OS X86系统,可以通过修改/etc/init.sh文件,加入如下命令实现: setprop service.adb.tcp.port 5555 stop adbd start adbd ​

6月20日 16:46转发|评论

【经验分享】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用户认证表 ​

6月20日 15:15转发|评论

【经验分享】接上篇“毒(得物)APP数据采集”。上篇提到了这个APP对HTTP请求做了"手脚"无法直接抓到包。这里分析一下,它到底做的什么"手脚",以及怎么绕过。 1. 在com.shizhuang.duapp.common.helper.net.RestClient类中可要找到如下代码: writeTimeout.proxy(Proxy.NO_PROXY);(详见图1) 这里 wri ​

6月18日 09:45转发|评论

【经验分享】毒(得物)APP签名算法解决 (1)HTTP请求做了"手脚"无法直接抓到包。 (2)分析代码后发现可以通过HOOK "com.shizhuang.duapp.common.helper.net.interceptor.HttpRequestInterceptor.intercept()"调用或者"okhttp3.internal.http.RealInterceptorChain.proceed()"调用拿到HTTP请求和应答 ​

6月14日 19:04转发|评论

【经验分享】58同城APP证书固定机制绕过(ssl unpinning)方法 1. 直接抓包,APP提示网络错误(图1),logcat显示有okhtt3 connectTls相关函数异常(图2)。 2.反编译APK,根据异常提示定位到证书锁定相关代码。 3. 使用Frida Hook绕过相关证书验证代码。具体frida脚本如下: ​

6月4日 10:20转发|评论

【经验分享】VMware Workstation开机免登录自启动设置方法 近日某拨号服务器出现故障,不定期会自动重启。每次重启之后都要手动去启动VMware虚拟机,非常麻烦。如何实现开机自启动指定的VMware虚拟机呢? (1)通过"vmrun.exe start 虚拟机vmx文件路径"命令可以启动指定的虚拟机。 如果有多个虚拟机可 ​

5月26日 17:33转发|评论

【经验分享】Pandas日期范围查询 目的:查询CSV中某列值大于某个日期的记录。 (1)使用Pandas的to_datetime()方法,将列类型从object转为datetime64。 df[u'合同签订日期'] = pd.to_datetime(df[u'合同签订日期'], format=u'%Y年%m月%d日') 注意要设置format参数,指定原始数据的时间日期格式。转换 ​

5月11日 09:38转发|评论

【经验分享】Python的hash()函数产生hash碰撞的概率有这么高吗? 昨天同事"随手"给我发了两组他在项目中遇到的例子,很是受"惊吓",HashDict用了快10年了,竟然没注意到这个Bug。 Python 2.7.8.10 on Windows 64 例一: hash(u'赤峰_1513781081_http://t.cn/A6Al6TDu) 901186270 hash(u'北京_101021 ​

5月8日 21:05转发|评论

【经验分享】"土地市场网-土地供应-出让公告"网页字体混淆反采集的解决 (1)如附图1所示,下载的页面中有很多字符是乱码。左边是经过浏览器正确渲染的结果,右边是下载到的有乱码的数据。 (2)经过分析发现,网站使用了自定义的字体文件:把常用的391个汉字做成了特殊字体,使用了自定义的unicode码 ​

4月15日 10:53转发|评论

【经验分享】我查查APP防护机制分析 1. 最明显的是URL加密了,如附图1所示。 反编译后分析源码可知,URL加密过程如附图2所示。 主要通过WccBarcode.getInstance().enReq(bytes, bytes.length)实现。 2. enReq()是一个native方法,具体实现在libgcbarcode_k.so中,如附图3所示。 例如,原始URL: /gg ​

4月7日 11:49转发|评论

【经验分享】终于搞定了百度指数PC版(2020最新版)加密算法,不用再模拟浏览器采集了 之前一直是使用"phantomjs + js脚本"模拟操作,从UI上获取百度指数值。 今天有客户让评估新的需求,之前模拟浏览器的方式不太适合了,决定试着分析下它的解密算法。 运气不错,没花多大功夫搞定了,以后可以直接通过H ​

3月30日 15:49转发|评论

【经验分享】记录使用"静态分析+动态插桩"还原“永辉超市某版本APP的HTTP签名算法”过程 背景:永辉超市某版本APP的HTTP请求使用了签名参数保护机制,下面是分析该签名算法的过程: 1. Jadx反编译APK,通过Java代码可以定位到加密函数位于cn.yonghui.hyd.lib.utils.http.httpmiddware.HttpSecurity类 ​

3月29日 16:29转发|评论

【经验分享】 背景: ESXi搭建的Ubuntu16.04虚拟机,添加了5块虚拟网卡,不同的网口桥接的不同的Bas。 问题是: 每次启动后某些网卡的名称(eth号)是随机变化的。 如图1和图2所示,同一块网卡"00:0c:29:b0:17:21",在第一张图中被命名为eth4,但重启后在第二张图中却被命名为eth3。 而拨号系统内不同的 ​

3月27日 23:09转发|评论

【经验分享】Nox(夜神模拟器)+ Android 4.4.2版本今天出现了一个很奇怪的问题,xposed-installer-2.6版本突然无法安装了(3月18日之前没有问题),提示信息如附图1所示(Xposed目前不兼容Android SDK版本19或者您的处理器架构)。更奇怪的是,我在其它6台机器上测试都是如此,绝不是个例。 1. 首先 ​

3月18日 18:48转发|评论

【经验分享】有客户反映使用我们的代理访问某个URL(www.zbfdc.com.cn:81)始终返回403错误,访问其它网站正常。我自己测了一下,的确如此(如附图1所示)。由于是动态IP代理,可以排除IP被封了的问题。 后来注意到,这个网站用了一个非常规的Web端口81,意识到了问题所在。 Squi默认定义了如下端口 ​

3月17日 11:45转发|评论