本文依据自己的理解和开发编写的流程中间可能有些逻辑问题欢迎大佬指出。
本文主要说的是沙箱接入,正式应用需要注册应用的步骤。如果你想接入正式应用建议先把沙箱搞通。原因其一正式应用就是换appid的事,其二正式应用搞坏了折的是真钱!!
调试支付宝支付需要先 在 支付宝开放平台 进行注册,入驻为 “自助研发者”;链接为 https://open.alipay.com/platform/home.htm
第一次进入需要填写详细信息 - 注意:切换为 自研开发者
完善个人信息后,在个人管理后台可看到 “沙箱” 服务
注:沙箱为支付宝提供的调试支付的测试环境,在该环境下,可模拟和调试支付流程
具体位置如下: 开发者中心 - 首页
点击 研发服务 - 进入沙箱后, 在沙箱应用选项中可以看到支付宝提供的测试应用
注:当您的网站上线运营时,需要在开放平台申请一个应用;并填写相关信息审核后,方可使用支付功能;沙箱应用为支付宝提供开发者测试用的应用
支付过程中涉及到请求和响应的签名校验;
在linux终端中 输入openssl 进入 交互环境
RSA 钥匙用途
公钥加密/私钥解密
私钥签名/公钥验签
点击 沙箱应用展示信息页中的 RSA2密钥 的 设置/查看
提交我方公钥后,弹框会显示 支付宝公钥;该公钥需要复制保存下来;
保存流程如下:
支付时序图
应用加壳(加密)
提交给Appstore发布的App,都经过官方保护而加密,这样可以保证机器上跑的应用是苹果审核过的,也可以管理软件授权。经过App Store加密的应用,我们无法通过Hopper等反编译静态分析,也无法Class-Dump,在逆向分析过程中需要对加密的二进制文件进行解密才可以进行静态分析,这一过程就是大家熟知的砸壳(脱壳)
应用砸壳(解密)
静态砸壳
静态砸壳就是在已经掌握和了解到了壳应用的加密算法和逻辑后在不运行壳应用程序的前提下将壳应用程序进行解密处理。静态脱壳的方法难度大,而且加密方发现应用被破解后就可能会改用更加高级和复杂的加密技术
动态砸壳
动态砸壳就是从运行在进程内存空间中的可执行程序映像(image)入手,来将内存中的内容进行转储(dump)处理来实现脱壳处理。这种方法实现起来相对简单,且不必关心使用的是何种加密技术。
Clutch是由KJCracks开发的一款开源砸壳工具。工具支持iPhone、iPod Touch、iPad,该工具需要使用iOS8.0以上的越狱手机应用。
otool -l QQ,查看可执行文件QQ结构
越狱插入,不污染三方应用的插件
非越狱的注入
Github开源工具。 dumpdecrypted这个工具就是通过建立一个名为dumpdecrypted.dylib的动态库,插入目标应用实现脱壳。
该工具基于frida提供的强大功能通过注入js实现内存dump然后通过python自动拷贝到电脑生成ipa文件。
解决办法
遇到警告,sudo后面加-H
进入/opt/MonkeyDev/bin目录执行frida-ps列出所有进程
frida-ps -U此时列出USB连接的进程
frida的作用:
/opt/MonkeyDev/bin下直接进入具体应用
frida -U 微信
报错是因为我的手机里面安装了一个正版微信,一个砸壳微信
frida -U 支付宝,前提是支付宝在前台运行,可正常进入,并能执行frida语句,语法见 官网 doc
解决办法是将dump.py中的python改为python3,python版本是2改为python2,是python3就改为python3,通过python --version查看当前版本
scp -P 12345 .inputrc root@localhost:/var/root/