一、目标

联手机签名是个比较取巧的方案,之前我们介绍过

android连真机签名公网ip更新方案

http://91fans.com.cn/post/androidipsend/

Sekiro + Xposed 签名解决方案

http://91fans.com.cn/post/sekiroone/

现在frida用的比较多,并且Sekiro也升级了新版本,我们今天就来手把手教你搭个 Frida + Sekiro Rpc框架。

二、步骤

我们以这个手机号加密算法为例

http://91fans.com.cn/post/smallvideosignthr/

先运行服务器端

官网在这里 https://github.com/virjar/sekiro

git clone下来;

在Linux或者mac上,执行脚本 build_demo_server.sh,之后得到发布压缩包:sekiro-service-demo/target/sekiro-release-demo.zip

如果是windows,或者不想自己构建,可以在这里直接下载

https://oss.virjar.com/sekiro/sekiro-demo

把zip包传到服务器上去解压

window下运行 sekiro.bat

Linux/mac下运行 sekiro.sh

这样服务器端就跑起来。

firda开发sekiro客户端

sekiro是个相当牛X的库,基本上就是开箱即用了。

// 在普通Android应用中使用sekiro
new SekiroClient("test-android", UUID.randomUUID().toString()).setupSekiroRequestInitializer(new SekiroRequestInitializer() {@Overridepublic void onSekiroRequest(SekiroRequest sekiroRequest, HandlerRegistry handlerRegistry) {handlerRegistry.registerSekiroHandler(new ClientTimeHandler());}}).start();

在Android代码里面这样一条api就可以了,然后在ClientTimeHandler类里面写逻辑

frida使用就稍稍有点复杂,复杂的点就在于要创建一个java类 ClientTimeHandler 来处理调用逻辑。

function initSekiro() {const SekiroClient = Java.use('com.virjar.sekiro.business.api.SekiroClient');const ActionHandler = Java.use('com.virjar.sekiro.business.api.interfaze.ActionHandler');const SekiroRequestInitializer = Java.use('com.virjar.sekiro.business.api.interfaze.SekiroRequestInitializer');//  注册一个ClientTimeHandler类,继承 ActionHandlerconst ClientTimeHandler = Java.registerClass({name: 'ClientTimeHandler',implements: [ActionHandler],methods: {action: function () {return 'mobile';},handleRequest: function (sekiroRequest, sekiroResponse) {const requestJsonData = sekiroRequest.getJsonModel();const requestData = JSON.parse(requestJsonData)['requestData'];if(!requestData){sekiroResponse.failed(JavaString.$new('requestData 不能为空'));}else{try{sekiroResponse.success(callMobile(requestData));}catch(error){sekiroResponse.failed(JavaString.$new(error.stack));throw error;}}}}})// 注册一个 SekiroRequestDefault类, 继承SekiroRequestInitializerconst SekiroRequestDefault = Java.registerClass({name: "SekiroRequestDefault",implements: [SekiroRequestInitializer],methods: {onSekiroRequest: function (sekiroRequest, handlerRegistry) {handlerRegistry.registerSekiroHandler(ClientTimeHandler.$new());}}});const clientID = guid();const group = 'fridaHook_atlasEncrypt';const ip = '110.42.246.110';// 服务端端口号 默认是 conf/config.properties 里面配置5620, 这里改成了 8989const sekiro = SekiroClient.$new(group, clientID, ip, 8989);sekiro.setupSekiroRequestInitializer(SekiroRequestDefault.$new());sekiro.start();
}

这就可以了,挂上frida跑起来

sekiro状态查看和访问服务

http://110.42.246.110:8989/business-demo/groupList 展示当前系统中注册过的所有 group

{"data":["fridaHook_atlasEncrypt"],"ok":true,"status":0}

http://110.42.246.110:8989/business-demo/clientQueue?group=fridaHook_atlasEncrypt 展示特定 group 下,注册过那些客户端/手机。

{"data":["65c8e8b5-1a67-2036-5b38-769cb670aeb3"],"ok":true,"status":0}

执行一下看看结果

# -*- coding: utf-8 -*-import requestsurl = 'http://110.42.246.110:8989/business-demo/invoke'mobileid = '18913872618'data = {'group': 'fridaHook_atlasEncrypt','action': 'mobile','requestData': mobileid}res = requests.post(url,json=data).json()
print(res['data'])

结果很完美

3sCt3iAAMzIwOTAxMjA4AM8HAO7Jtk8ia8xTExAAAACFS7z70nRA3Ppgtdz9Kefb

收工上鲜啤

三、总结

基本上java的库,frida都可以无缝利用。比Xposed玩起来方便多了。

有个小小的问题是 frida hook的app有崩溃的几率, 这个就需要搞个看门狗来实现了。

sekiro 官方文档

https://sekiro.virjar.com/sekiro-doc/index.html

frida 加载 sekiro dex 文件 实现与服务端交互

https://www.qinless.com/387

这才知道我全部的努力,不过是完成了普通的生活。

手把手教你搭个Frida + Sekiro Rpc框架相关推荐

  1. 如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表

    本文首发:<如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表> 使用 Chart.js 在 Vue 搭建的后台管理工具里添加炫酷的图表,是所有数据展示类后台必备的功 ...

  2. 数据库管理-第七十五期 手把手教你搭19c RAC(20230516)

    数据库管理 2023-05-16 第七十五期 手把手教你搭19c RAC 1 基础环境 2 操作系统配置 2.1 /etc/hosts 2.2 配置系统挂载 2.3 配置本地yum源 2.4 操作系统 ...

  3. 手把手教你搭建网盘系统,给小姐姐换个新家可好​?

    在数据时代,我们每天都在互联网上生成大量数据,同时也接收着大量数据.随着图片.音乐.影视.课程越来越多,不管是手机.iPad 还是电脑,空间根本不够用,所以很多人会把文件存在各种网盘里. 但近几年,网 ...

  4. 手把手教你封装一个自己的数据库框架~

    本教程将给大家深度剖析数据库框架底层实现的原理,然后采用泛型.反射.注解机制来教大家做一个自己的数据库框架. 前面学习了很多教程,我们转换了一下风格,开始从一个点切入,做更加深入的提升,这也是符合人的 ...

  5. 知识笔记 - sekiro RPC框架的安装与简单使用

    文章旨在学习和记录,若有侵权,请联系删除 文章目录 前言 一.sekiro是什么 1. 简介 2. 逻辑结构 3. 运行流程 4. 下载和部署 二.如何开发sekiro客户端 1.打开平头哥项目 2. ...

  6. 手把手教你搭APM之Skywalking搭建指南(支持Java/C#/Node.js)

    前言 什么是APM?全称:Application Performance Management 可以参考这里: 现代APM体系,基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)的体 ...

  7. 签名服务器维护中,Unidbg + Web = Unidbg-server 手把手教你搭个签名服务器

    一.目标 爆肝+熬夜,终于把so用unidbg跑起来了,总不能放在硬盘里发霉吧.我们得在生成环境下用起来. 最方便的方式就是租台云服务器,然后把Unidbg部署上去,就可以给我们的工作者程序提供云签名 ...

  8. 手把手教你通过vue-cli搭建手机端框架

    前言:欢迎前端的小伙伴们前来围观.学习借鉴,如果你是后端.测试和其他的小伙伴也没关系,如果自己也想玩一下前端,想搭建一个前端的框架,那么不妨静下心来看看这篇文章.如果你不是从事开发工作的人员,内容可能 ...

  9. Sekiro RPC框架部署使用

    相关链接 点击 进入Sekiro框架官网 点击 进入JsRpc 项目地址 点击 进入Sekiro下载地址 点击 进入Sekiro-Client.js源码 一,下载地址 下载地址(https://oss ...

最新文章

  1. SHARED POOL 原理
  2. mysql 查询 字段是否为空
  3. python 获取闭包函数的参数
  4. 北京/苏州内推 | 微软亚洲互联网工程院招聘算法工程师/应用科学家
  5. VTK:网格之ClipDataSetWithPolyData
  6. 单片机开发与Linux开发有何不同?
  7. 老李分享:接口测试之jmeter
  8. 监控——《微服务设计》读书笔记
  9. Android Studio中获取SHA1或MD5的方法
  10. Python学习笔记之字典(二)
  11. Google 又又又要“重回中国”了?
  12. angular cli中的--flat参数
  13. Bill Gates 2007年哈佛演讲(中/英文)
  14. Malmquist指数DEAP2.1应用
  15. VRRP协议 学习笔记
  16. 家用计算机常见故障及解决方式,计算机常见的五大故障及解决办法
  17. Android APK瘦身优化
  18. 大数据课程——Spark SQL
  19. ORA-01439: 要更改数据类型, 则要修改的列必须为空
  20. QuickIndex 通讯录快速检索

热门文章

  1. I want to go hone——变形的Dijkstra
  2. hone hone clock 人体时钟
  3. PCI网卡上扩展ROM编程 4.利用8139C网卡读写EPROM
  4. perplexity 衡量指标_怎样生成语言才能更自然,斯坦福提出超越Perplexity的评估新方法...
  5. linux安装软件时Stuck at 0% [waiting for headers]错误
  6. HTTP状态查询,HTTP状态码含义,HTTP头部信息查询,http状态码表
  7. 服务器远程连接控制以及在Linux环境下安装go编译环境
  8. Shader Forge 入门学习(一) 基础操作
  9. woc,把敏感文件上传到git了,咋整
  10. 【原创】植物大战僵尸全解密---存档篇