抖音数据采集教程,Android群控黑盒调用,Sekiro使用手册

0x0 前言

之前尝试用过virjar大佬的hermesagent, 后来大佬又迭代出新的基于长链接的Sekiro, 一直想看都被耽搁了, 今天正好抽空尝试一下, 顺便写篇笔记, 有错误的地方大佬们请指正哈

0x1 Sekiro介绍

SEKIRO 是一个android下的API服务暴露框架,可以用在app逆向、app数据抓取、android群控等场景

和其他群控框架相比的特点如下:对网络环境要求低,sekiro使用长链接管理服务,使得Android手机可以分布于全国各地,甚至全球各地。手机掺合在普通用户群体,方便实现反抓突破,更加适合获取下沉数据。

不依赖hook框架,就曾经的Hermes系统来说,和xposed框架深度集成,在当今hook框架遍地开花的环境下,框架无法方便迁移。所以在Sekiro的设计中,只提供了RPC功能了。

纯异步调用,在Hermes和其他曾经出现过的框架中,基本都是同步调用。虽然说签名计算可以达到上百QPS,但是如果用来做业务方法调用的话,由于调用过程穿透到目标app的服务器,会有大量请求占用线程。系统吞吐存在上线(hermes系统达到2000QPS的时候,基本无法横向扩容和性能优化了)。但是Sekiro全程使用NIO,理论上其吞吐可以把资源占满。

client实时状态,在Hermes系统我使用http进行调用转发,通过手机上报心跳感知手机存活状态。心跳时间至少20s,这导致服务器调度层面对手机在线状态感知不及时,请求过大的时候大量转发调用由于client掉线timeout。在Sekiro长链接管理下,手机掉线可以实时感知。不再出现由于框架层面机制导致timeout

Sekiro架构server:

暴露一个TCP端口和两个HTTP端口

管理通过TCP连接的client和user发来的http 请求

client:

通过TCP和server连接,响应server发来的请求

工作流程是这样的:

1. client通过TCP和server建立长连接

2. user发送http请求给server

3. server根据用户发来的http请求的参数,通过TCP将请求转发给client

4. client收到请求并响应server

5. server将从client收到的请求返回给user

详细的可以去看项目的readme, 说的非常详细: 项目传送门

0x2 服务端部署克隆项目: git clone [https://github.com/virjar/sekiro.git](https://github.com/virjar/sekiro.git)

修改settings.gradle的内容为: include ':sekiro-server', ':sekiro-lib' ,删掉appdemo防止编译它

启动服务器前注意事项server端在`sekiro-server/src/main/resources/appliation.properties`中可以配置三个服务端端口, 主要服务端安全策略的出入口需要开放这个三个端口

#tomcat 占用端口

server.port=5602

#长链接服务占用端口

natServerPort=5600

# 异步http占用端口

natHttpServerPort=5601

# websocket占用端口

webSocketServerPort=5603

如果自定义端口,client需要调用SekiroClient.start(String serverHost, int serverPort, final String clientID, String group)中去连接server

执行命令:./gradlew sekiro-server:bootJar 即可在 sekiro-server/build/libs/sekiro-server-0.0.1-SNAPSHOT.jar找到all-in-one的jar包通过nohup java -jar sekiro-server/build/libs/sekiro-server-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &启动server

0x3 客户端先准备一个测试的Demo, 很简单就是个加法, 注意Demo必须有加android.permission.INTERNET权限public class MainActivity extends AppCompatActivity {

public static int Add(int n1, int n2)

{

return n1 + n2;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Toast.makeText(MainActivity.this, "3 + 2 = " + Add(3, 2), Toast.LENGTH_LONG).show();

}

}再准备的一个Xposed的项目, 不会的可以先看我之前写的一篇笔记: AndroidStudio使用Xposed

在app的build.gradle添加依赖 implementation 'com.virjar:sekiro-api:1.0.1'

在Xposed的handleLoadPackage中启动client链接server,并添加处理事件的handler, 用于调用Add函数Log.i(TAG, "connect server....");

//服务端host

String testHost = "your_host";

//客户端标识

String clientId = UUID.randomUUID().toString();

//接口组名称

String groupName = "addDemoTest2";

//暴露的接口名称

String actionName = "myAdd";

//拿classloader

clzLoader = lpparam.classLoader;

//连接服务端并且注册处理的handler

SekiroClient.start(testHost, clientId, groupName)

.registerHandler(actionName, new SekiroRequestHandler(){

@Override

public void handleRequest(SekiroRequest sekiroRequest, SekiroResponse sekiroResponse){

//当服务端分配任务时, 这里处理逻辑, 并把结果返回给服务端, 服务端再返回给调用者

Class> clz = XposedHelpers.findClass("com.example.administrator.adddemo.MainActivity", clzLoader);

int arg1  = sekiroRequest.getInt("arg1");

int arg2  = sekiroRequest.getInt("arg2");

Log.i(TAG, String.format("arg1 : %d, arg2 : %d", arg1, arg2));

Object result = XposedHelpers.callStaticMethod(clz, "Add", arg1, arg2);

Log.i(TAG, "result : " + result);

sekiroResponse.success(result);

}

});编译错误More than one file was found with OS independent path解决//build.gradle里android{}添加错误的path

packagingOptions {

exclude 'META-INF/DEPENDENCIES'

exclude 'META-INF/INDEX.LIST'

exclude ('META-INF/io.netty.versions.properties')

}

0x4 尝试调用打开app后, 使用浏览器查看group列表是否注册成功:

[your_server_ip]:[server.port]/groupList

调用接口查看结果:格式: your_server_ip:[natHttpServerPort]/[invoke_type]?group=[group_id]&action=[action_name]&param1=[arg]

例子: https://x.x.x.x:5602/asyncInvoke?group=addDemoTest2&action=myAdd&arg1=300&arg2=300

client的调用日志

android获取ro._抖音数据采集教程,Android群控黑盒调用,Sekiro使用手册相关推荐

  1. android获取ro._Android群控黑盒调用 - Sekiro食用手册

    0x0 前言 之前尝试用过virjar大佬的hermesagent, 后来大佬又迭代出新的基于长链接的Sekiro, 一直想看都被耽搁了, 今天正好抽空尝试一下, 顺便写篇笔记, 有错误的地方大佬们请 ...

  2. android黑盒子调用,[原创]Android群控黑盒调用 - Sekiro食用手册

    0x0 前言 之前尝试用过virjar大佬的hermesagent, 后来大佬又迭代出新的基于长链接的Sekiro, 一直想看都被耽搁了, 今天正好抽空尝试一下, 顺便写篇笔记, 有错误的地方大佬们请 ...

  3. android 编译之后黑屏_抖音BoostMultiDex:Android低版本上首次启动时间减少80%(一)...

    我们知道,Android 低版本(4.X 及以下,SDK < 21)的设备,采用的 Java 运行环境是 Dalvik 虚拟机.它相比于高版本,最大的问题就是在安装或者升级更新之后,首次冷启动的 ...

  4. android获取ro._怎么去获取现成机器的ro.hardware值

    硬件抽象层模块文件的命名规范定义在hardware/libhardware/hardware.c文件中,如下所示. hardware/libhardware/hardware.c 01 /** 02  ...

  5. 抖音android x86,抖音数据采集教程,详解Hook框架frida,让你在逆向工作中效率成倍提升!...

    免责声明:本文档仅供学习与参考,请勿用于非法用途!否则一切后果自负. 一.frida简介frida是一款基于python + java 的hook框架,可运行在androidioslinuxwinos ...

  6. android so库支持虚拟机,抖音数据采集教程,跨平台模拟执行AndroidNativeEmu手册

    安装 AndroidNativeEmu有什么用? AndroidNativeEmu是基于Unicron实现的一个指令解析器, 让您能够跨平台模拟Android Native库函数,例如JNI_OnLo ...

  7. android获取ro._修改Android序列号(Serial Number)

    文档说明 本文档以SC806-CN-00-71(msm8909平台 Android7系统)为例,描述如何修改Android Serial Number. Serial Number说明 菜单 Abou ...

  8. python采集抖音数据_抖音数据采集,最全python库selenium自动化使用!

    driver = webdriver.Chrome() driver.maximize_window() 四.访问页面 from selenium import webdriver driver = ...

  9. Android逆向之旅---抖音短视频的Native注册混淆函数获取方法

    一.静态分析 最近在小密圈中有很多同学都在咨询有时候有些应用的动态注册Native函数,在分析so之后发现找不到真的实现函数功能地方,我们知道有时候为了安全考虑会动态注册Native函数,但是如果只是 ...

最新文章

  1. g++编译c++11特性 的.cc文件
  2. 活动报名 | PaddlePaddle Hackathon飞桨黑客马拉松邀你参加
  3. C++自学24:唯一智能指针(make_unique/unique_ptr/reset/release/get/13.1)
  4. flash 定义主舞台窗口大小
  5. Mac电脑使用svn下载版本
  6. Win7安装驱动提示“无法验驱动程序数字签名”怎么办?
  7. 转载:Arcgis 地理配准步骤(底图校正)
  8. SD卡无法格式化方法介绍
  9. 戴尔笔记本一键重装win7系统教程
  10. Java服务端和客户端开发辅助工具Utils
  11. 深度学习项目实践——制作一个能一键更换证件照背景的软件
  12. SQL查询结果加序列号
  13. ansible一键部署脚本
  14. 中专计算机毕业生登记表自我鉴定,中专毕业生登记表自我鉴定范文(精选5篇)...
  15. Cuckoo Sandbox
  16. NUC-lib资源学习
  17. XML学习笔记3——XSD简述
  18. u盘正常接入后计算机无法看到,能识别U盘但显示不出来的解决办法【详解】
  19. 超越BERT、GPT------屏蔽序列到序列预训练MASS(原理篇)
  20. Android WebView显示广告

热门文章

  1. 五、软考·系统架构师——系统分析
  2. html 安装字体无效果,如何在HTML网站上安装自定义字体
  3. IDEA使用Maven常见的问题及快捷键使用
  4. 论文投稿指南——中文核心期刊推荐(管理学)
  5. IT外包服务主要会面临什么样的困难或者难题
  6. 麦克风阵列之声源定位
  7. 《LoadRunner 12七天速成宝典》—第1章 1.4节下载LoadRunner 12.5
  8. python:中文词法分析(LAC)
  9. 【无标题】内部表和外部表的区别
  10. 【校招】面试_字节跳动_客户端开发工程师_一面