如何将手机变成一个(Linux)服务器_手机做服务器-程序员宅基地

技术标签: 服务器集群  android  linux镜像文件  Android  


前言

总所周知,我们的安卓手机操作系统本身就是基于linux进行开发的,我们只要获取到root权限,理论上就可以将我们的手机当做服务器来使用。道路千千万,有的是方法去实现,本篇文章博主将带大家感受一下我去年接手的一个项目用的一系列操作以及相关的app,硬生生把手机变成我们的服务器。不要觉得不敢相信,会有人用手机当服务器?有些东西还真没办法用我们常规得方式去实现,我接手得项目是某知名社交app的逆向采集,必须借助安卓手机的环境。好开始进入正文。。。。。。
在这里插入图片描述


一、业务描述

指令1:adb forward tcp:27042 tcp:27042

这个项目的采集方式是通过frida动态插桩的方式,给app开个口,让数据从这个口留出来,说白了就是植入js脚本,通过修改进程的方式得到数据。那正常的hook流程就是手机usb连接电脑,通过 指令1 将手机上的frida端口映射到电脑上,这样相当于你电脑上的某个端口可以直接访问app的进程了,再通过python将js脚本植入到app的进程中,当app去调用我们插桩的点时,数据将会被frida拦截,这样就拿到数据啦。

到这里就有一个问题了:如果我们对数据需求量不多的时候,比如app的签名或者token之类有时效性的东西我们不会一直去拿,采用手机usb连接电脑的形式可行,那对数据的需求量比较大呢?明显满足不了我们的(对了,这里得提醒一下我逆向的app必须要账号登录、借助安卓环境、还有风控之类的一系列因素,无法像正常的爬虫一样直接做一个接口的形式)。

前辈的解决方案就是:把手机变成服务器的骚操作,就是把手机usb连接电脑的形式变成一个整体,后续我们就可以再 “电脑” 上通过接口、队列等消息中间件把数据传出去了。

二、手机上用到的app

1.Linux Deploy

下载地址:https://github.com/meefik/linuxdeploy/releases
作用:它其实就是一个容器,这样就支持在手机上运行linux了,虽然手机原本就支持linux,但是有些操作啥的还是不方便或者不支持。在这里我们可以把它直接看成正常的电脑或者服务器,只要安装一下adb工具后,就可以连接到手机了,这就是上面提到的 “手机usb连接电脑” 中的电脑了。具体可以看README.md的介绍

2.Busybox

下载地址:https://github.com/meefik/busybox/releases
作用:它的作用比较简单,它集成了众多最常用Linux命令和工具,在这里就是扩展linux指令。具体可以看README.md的介绍

3.ADB工具安装器

下载地址:https://www.coolapk.com/apk/crixec.adbtoolkitsinstall
辅助作用:它的作用是进行网络ADB调试,在这里就是打开手机的 tcp 5555 端口,这个端口是adb不需要验证就可以连接上你手机的,有风险。那这里为什么要这样用呢?正常我们手机用usb连接电脑会弹出验证,是否同意电脑连接的提示,过一段时间后过期了你还是要去验证,这个地方相当于做一个简化人为去确认

4.JuiceSSH

下载地址:http://www.2265.com/soft/253746.html
辅助作用:它其实就是一个控制台,我们输入指令的app,没啥实质性的用途。

三、Linux Deploy安装

这里不贴图文了,现在项目没这样部署了,因为太垃圾了(手动滑稽),这里就用之前做的笔记说明吧,感兴趣可以去网上找找更详细的安装方法。

a.左上角三横–>设置–>PATH变量 设置为/system/xbin–>锁定wifi–>CPU唤醒–>开机自动启动

b.右下角属性–>发行版本 CentOS–>架构 aarch64–>发行版GUN/Linux版本 7–>启用SSH–>源地址 http://mirrors.aliyun.com/centos/(没有使用本地镜像可以使用源地址)

c.右上角三点–>安装

d.ftp://ftpuser:[email protected]下载linux.img镜像放到SDK中,安装类型为镜像文件,安装路径为${WXTERNAL_STORAGE}/linxu.img

安装成功:看下图,都是done,否则就有问题,具体的问题我之前也忘记收集了,可以自行网上查阅
在这里插入图片描述
测试:我们用ssh进行连接测试
在这里插入图片描述


总结

以上就是某流量最大的社交App逆向采集的前期部署方案了,总得来说就解决了一个问题:把手机usb连接电脑变成一个整体得服务器。我文章中有吐槽垃圾,我可不是否定前辈的工作成果,我之前接盘的时候那是真的搞吐了,知识点、东西不多,但是真的耗人力,不是很稳定。然后你看看部署过程,每台手机都得这样,首先要刷手机安装app,然后去Linux Deploy容器里面部署环境、拉代码等一系列操作,最后还要各种测试环境,正常部署一台设备到有数据被hook差不多要2-3个小时吧,然后我之前运维天天往机房跑,就是老是宕机,所以我说他垃圾。

后续会这个我是优化和自己搭的一个框架,这个框架是基于frida,pc 和 phone 的逆向采集模式都可以兼容
来瞧瞧吧

最后最后,文章中用到的一些技术在我主页都可以学到。分享不易,希望各位看官动动手指点个赞和关注吧,我会为大家带来一些有趣和有技术的分享,谢谢~~~
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaoxin_OK/article/details/124359973

智能推荐

apache php html页面不显示内容,apache服务器下.htaccess控制文件列表、目录显示,不显示的方法...-程序员宅基地

文章浏览阅读348次。.htaccess文件不仅能控制伪静态、防盗链等等,它还具备控制项目文件在index.html或者index.php文件缺失时是否线上其他一些目录文件。我们经常能看到"forbidden You don't have permission to access / on this server" 这样的报错提示,那是因为我们关闭了服务器的目录索引。如果我们不关闭目录索引,那么基本上就把我们项目目录结..._阿帕奇已经把文件放在html文件夹里了但是就是看不到

线性回归原理----简单线性回归、多元线性回归_多元线性回归原理-程序员宅基地

文章浏览阅读6.5k次,点赞3次,收藏38次。回归分析是用来评估变量之间关系的统计过程。用来解释自变量X与因变量Y的关系。即当自变量X发生改变时,因变量Y会如何发生改变。线性回归是回归分析的一种,评估的自变量X与因变量Y之间是一种线性关系,当只有一个自变量时,成为简单线性回归,当具有多个变量时,称为多元线性回归。线性关系的理解:>画出来的图像是直的(简单线性回归是直线,多元线性回归是超平面)>每个自变量的最高次项为1拟合是指构建一种算法,使得该算法能够符合真实的数据。从机器学习角度讲,线性回归就是要构建一个线性函_多元线性回归原理

linux查看历史挂载饿磁盘,Linux 查看、挂载磁盘-程序员宅基地

文章浏览阅读636次。参考链接:https://www.cnblogs.com/youbiyoufang/p/7607174.htmldf -T 查看已挂载的分区和文件类型df 命令用于显示磁盘分区上的可使用的磁盘空间,-T 表示显示文件类型fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型移动硬盘一般是/dev/sdX1的形式,比如/dev/sdc1。这里需要了解sdX1的含义,sd表示可移..._linux查看历史硬盘

php 老版本 下载地址,常用官方php版本下载链接-程序员宅基地

文章浏览阅读264次。【如何快速的开发一个完整的iOS直播app】(美颜篇)原文转自:袁峥Seemygo 感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,美颜功能是很重 ...cordova插件iOS平台实战开发注意点cordova插件是其设计理念的精髓部分,创建并使用自定义插..._php旧版本官方下载地址

【Java】HashMap 和 HashTable 的区别到底是什么?_java中hashmap和hashtable的区别-程序员宅基地

文章浏览阅读2.7w次,点赞21次,收藏48次。第一、继承不同第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。public class HashMap extends AbstractMap implements Cloneable, Serializable {...}public class Hashtable_java中hashmap和hashtable的区别

Openwrt下jshn.sh用法解析_json_get_vars-程序员宅基地

文章浏览阅读4.8k次,点赞3次,收藏11次。一、示例用到的json数据{ "up": true, "uptime": 18804, "l3_device": "eth0.2", "proto": "dhcp", "device": "eth0.2", "ipv4-address": [ { "address": "192.168.5.102", _json_get_vars

随便推点

Tips展开关闭问答代码_js tips 取消-程序员宅基地

文章浏览阅读351次。http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/1999/xhtml">无标题文档function show(c_Str,imgg){if(document.all(c_Str).style.display=='none'){document.all(c_Str)._js tips 取消

[Linux]grep指令加参数_grep 结果作为参数-程序员宅基地

文章浏览阅读2.2k次。1.grep指令的用途grep是我们常用的一个指令,经常与管道符“|”搭配,对上一操作的结果进行筛选通常我们是直接grep 内容例如:检查opt目录在不在 ll | grep opt查看tty相关进程ps -ef|grep tty检查22端口netstat -tunlp|grep 222.使用参数筛选在上面的操作中,可以看到查看进程和端口时,结果中多出了一些无关的东西在gr..._grep 结果作为参数

使用mycat搭建实现mysql数据库集群管理_mycat mysql集群-程序员宅基地

文章浏览阅读4.6k次,点赞4次,收藏18次。今天来使用mycat管理mysql集群, 随着数据量的提升, 我们如果把所有数据存储在一个数据库中, 对数据的各种操作就会变得非常的困难. 自然我们又想到了数据库也进行集群部署, 将一个数据库的数据分散到不同的数据库中存储, 进而提升数据操作的性能.本文的定义是简洁快速的使用mycat, 让读者可以快速的入门mycat, 因此本文聚焦于mycat的安装, 使用, 简易配置, 常用配置文件和标签的..._mycat mysql集群

python turtle画房子代码里面的窗子,如何用python画房子_用python画一个小房子-程序员宅基地

文章浏览阅读2.7k次。如何用python画一个小房子?效果图如下:代码如下:import turtle# 前置p = turtle.Pen()# 作者要说的话for i in range(6):print('请把画板最大化,否则会影响画面效果!')# 设置笔的速度p.speed(10)# 开始画画p.pencolor("#F4A460")p.penup()p.goto((-240), (-200))p.pendown(..._turtle 房子

linux 硬盘品牌,CentOS如何查看硬盘品牌型号等具体信息-程序员宅基地

文章浏览阅读3.5k次。首先使用smartctl --all /dev/sda指令来检查硬盘信息,该指令CentOS自带,得到的结果可能如下:smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-358.el6.x86_64] (local build)Copyright (C) 2002-12 by Bruce Allen, http://smartmontools...._centos查看物理机磁盘型号

腾讯计费平台部PHP,企业级正规php第三方api第四方支付平台程序源码完整开源全套 - A保站...-程序员宅基地

文章浏览阅读388次。程序名称:企业级PHP第三方支付平台(云计费聚合支付)程序语言:PHP+mysql程序大小:约180MB程序已集成支付宝PC、支付宝WAP、微信扫码、微信WAP、财付通PC、财付通WAP、QQ钱包扫码、QQ钱包WAP、银联在线、京东支付、环迅支付、易宝支付等等20多个接口。此套程序开发成本3万多,全站兼容手机HTML5页面,仅售2000元全套源码+数据库(包安装,,需要安装的联系卖家洽谈)官网演示..._api收费平台源码

推荐文章

热门文章

相关标签