<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="美团支付通过生成机器指纹信息提交到支付宝的私有API完成手机支付操作" id="card1">
<p> 游客</p><p>
标题:美团支付通过生成机器指纹信息提交到支付宝的私有API完成手机支付操作<br/>
正文:<br/>
应用开发过程中要对接支付宝支付，简单体验下来，市面上有三种实现方式:    网页版    快捷支付服务插件版    美团版(姑且这么叫，由于先发现美团是这种实现，其实大众点评也是这种)前2种没什么疑问，应用广泛，实现上支付宝也都给出了SDK，第3种实现各种&amp;ldquo;诡异&amp;rdquo;：    完全是App原生的体验，没有发现支付宝有公开的支持方式    没有在应用数据包和SD卡上找到任何痕迹    美团退出登录再登录依然可用，卸载再安装依然可用(免登录列出支付信息，只需要输入支付密码)，美团登录一次，安装大众点评也直接可用。    手机恢复出厂设置依然可用，恐怖吧？探究竟验证查找下来觉得各种不可思议，找不到痕迹，最后只能放大招：重装系统。这招倒是有效了，但是信息存在哪里了呢？各种搜索无效。很恐怖，很费解，各种不舒服有木有？这问题不搞明白得一直不舒服下去。。。所以决定反编译看看美团到底搞了什么鬼（想当然的认为Mac下反编译不好处理，还拖了2天，真搞起来发现像linux下一样简单快捷。。）虽然反编译出来的代码有误差，但是还是很快定位到一切诡异的所在，实现是这样的：算是有一个内部的api吧，应用生成一个机器指纹（嗯，就这么叫吧，唯一的不变的机器相关的信息，由一些可获取的基本信息组合而来，即使机器恢复出厂设置这个信息也不会变），然后提交到支付宝的一个请求地址(这里不贴了，有兴趣的同学反编译下吧～～)，获取用户支付宝账号的信息。每次支付之前，用机器指纹查询支付信息，然后完成支付。所有的诡异都明了了：这是一个私有Api，少数App可用，登录状态存在服务器上，本地根本不会保存，由于不变的机器指纹，卸载重装或者其他应用来使用结果都一样，恢复出厂设置，也没有改变机器指纹。只要不重装，一次登录，时时可用，处处（有权使用Api的App）可用，目前尚不知道会不会有时间有效期，我表示只能呵呵了。。。问题搞清楚了，心里敞亮了，可是这做法也太狠了点吧？额外赠送拿到Url后，Google查询了一下，信息有限，不过发现这个Url，支付宝的客户端也在用。同时发现了一个非常不错的服务：Mobile Sandbox。分析APK文件，生成分析报告，支持静态分析和动态分析，可以获得很多信息：    是否有恶意病毒功能    可能的危险调用    有那些资源文件    使用的硬件特性，使用的权限，调用的系统<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2106&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2106&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2106&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=2106&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=2106">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=2106">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>