websocket 压力测试_打造最强移动测试平台

笔者今年换掉了服役N年的旧手机,新手机12G的RAM,比自用的本子内存都大,如果只是玩游戏感觉不能完全发挥出全部机能,但又因为怕影响日常使用没有进行root,经过一番折腾,发现即使不root也不影响把它变成一款测试利器,有同类需求的可以参考此文。

5ba3b13aad066b22623a4ea469e389e3.png

安卓虚拟机

移动应用测试肯定是需要一个root环境,很多人选择用安卓模拟器,笔者为了使用WSL2启用了Hyper-V,导致与绝大多数的安卓模拟器冲突,从此告别安卓模拟器。笔者也尝试用了VirtualXposed、太极等免root的Xposed框架,发现兼容性不是太好,app容易闪退崩溃。后来发现安卓平台也有虚拟机,目前共有VMOS、光速虚拟机、X8沙箱三款产品。其中VMOS分普通版和Pro版,Pro版非会员支持选择ROM,也可以导入网友提供的ROM,其他虚拟机皆内置ROM无法修改。

经过笔者一番测试,对比如下

VMOSVMOS PRO光速虚拟机X8沙箱
内存占用186MB233MB188MB181MB
提供root提供提供提供提供
提供XP提供提供不支持提供
提供Play提供提供提供
程序兼容
安卓版本5.1.15.1.1 / 7.1.27.1.25.1.1
是否含广告视频广告
权限要求电话、位置、相机、录音、存储电话、位置、存储、录音、存储

综合来说,光速虚拟机最快,干净无广告,遗憾的是目前版本不支持xposed框架,VMOS Pro自带rom兼容性比较差,使用酷安网友提供的ROM兼容性较好,而且关闭所有应用权限也不影响虚拟机使用,很不错。

想一下手机里跑个虚拟的安卓系统,带root环境且与本机隔离,简直是移动测试的最佳方式。

下图是笔者四个虚拟机同时小窗开启的,独立互不冲突,加起来内存占用可能还不到1G,毫无压力。

d4687dbd554b3568d702ac6b27366db7.png

Kali Nethunter

官方文档提供一种NetHunter Rootless的方式,即免root安装,同样也是支持KeX的,所以可以实现下图的效果,外接显示器获得完整的桌面体验。

9206fde55839106cfcd404b5c3d323a9.png

与其他版本的Nethunter差别参见下图,能够实现绝大部分功能。

FeatureNetHunter RootlessNetHunter LiteNetHunter
App StoreYesYesYes
Kali cliYesYesYes
All Kali packagesYesYesYes
KeXYesYesYes
Metasploit w/o DBYesYesYes
Metasploit with DBNoYesYes
NetHunter AppNoYesYes
Requires TWRPNoYesYes
Requires RootNoNoYes
WiFi InjectionNoNoYes
HID attacksNoNoYes

主要原理基于Termux+Kex实现的,Termux真的是一款神器,一款不需要Root的神器,具体介绍参见国光前辈的文章https://www.freebuf.com/geek/170510.html

NethunterRootless安装方法可以参考官方文档https://www.kali.org/docs/nethunter/nethunter-rootless/

建议termux通过f-droid下载https://f-droid.org/packages/com.termux/

实际效果如下图,具体就不展开讲了,国光大佬那篇文章写的很详细

ad9ff6461f1140fb6099beebc044a899.png

题外话,wsl2现在也支持kex了,效果如下图,美滋滋!https://www.kali.org/docs/wsl/win-kex/

ec6ca3f0541c0ea6c64852ced244d52e.png

Docker环境

虚拟的安卓有了,虚拟的kali有了,想搭靶机了,能不能有个Docker呢,答案是肯定的!

虽然Termux很强大,可以安装各种linux,但基于termux版linux还是不能运行Docker,需要Termux上装Qemu虚拟机,Qemu装alpine linux,这个时候才是原汁原味的x86 linux。

这种套娃的操作可能会劝退不少人,幸运的是有人把Termux+Qemu+Alpine整合好了,名为alpine-term,开箱即用,安装一个apk打开就是配置完全的alpine linux,项目地址为:https://github.com/xeffyr/alpine-term/releases

你需要做的只是手动装一个docker

#更新apk软件源apk update#安装dockerapk add docker#使docker开机启动rc-update add docker#开启docker服务service docker start#后台启动setsid containerdsetsid dockerd

内置用户alpine初始配置存在一些限制,可以使用sudo -s 切换root用户操作。

docker起来后还需要手动配置下Qemu的网络映射,在termux导航栏选择QEMU,执行以下操作添加端口映射。

#映射手机10022端口到虚拟机22端口(qemu)hostfwd_add tcp::10022-:22#删除到10022的端口映射(qemu)hostfwd_remove tcp::10022#查看端口映射和网络连接(qemu)info usernet

详细帮助文档参见https://xeffyr.github.io/alpine-term/docs/help.html

代理抓包

最后推荐一个移动端的抓包工具HttpCanary,支持HTTP、HTTPS、HTTP2和WebSocket等多种协议。基于NetBare框架的虚拟网关-拦截器设计,可以非常方便的对单个app进行抓包、修改、重放等操作。完全脱离电脑对某个app进行抓包分析。详细使用可参考作者写的系列文章https://juejin.im/post/6844903745562607624

结束

到这里本文就结束了,希望能起到抛砖引玉的效果,如果你还有更好用的移动平台安全工具,欢迎在评论区补充。

a64bc3446eea77ae4209e0d820a8604f.gif

精彩推荐

412e59731b059cba433ff1e9de2517fe.pnga6e8fc04925450fffdf103cdb984edae.pngea41e5514522ad499a4b886c28892ba9.png

e7619b2411ac685d94200e075a5daf23.png

fb0f25d7b152826dbaf31fe0df604c25.png3a8c04154cc508297dcc3942c1f26fe4.png

3ca86d87378777e71e1f5cc042b65a3e.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python银行系统模拟演练_python多线程实现代码(模拟银行服务操作流程)

1.模拟银行服务完成程序代码目前,在以银行营业大厅为代表的窗口行业中大量使用排队(叫号)系统,该系统完全模拟了人群排队全过程,通过取票进队、排队等待、叫号服务等功能,代替了人们站队的辛苦。排队叫号软件的具体操作流程为&…

字符串左侧补0_(48)C++面试之最长不含重复字符的子字符串(动态规划)

// 面试题48&#xff1a;最长不含重复字符的子字符串// 题目&#xff1a;请从字符串中找出一个最长的不包含重复字符的子字符串&#xff0c;计算该最长子// 字符串的长度。假设字符串中只包含从a到z的字符。#include <vector> #include <string> #include <iost…

jp摩根的人都在学python么_摩根大通已要求所有资管部门员工必须学习编程

当代最具竞争力的技能是什么&#xff1f;摩根大通CEO告诉你---编程。今年新加入摩根大通的全部资产管理分析师必须强制学习编程语言&#xff0c;Python。摩根大通资管经理Mary Callahan Erodes表示“现代资产管理的唯一语言是编程语言”。因为强制普及编程语言&#xff0c;现在…

java exec 关闭_如何正确关闭java ExecutorService

从ExecutorService的 Oracle API文档页面推荐的方法&#xff1a;void shutdownAndAwaitTermination(ExecutorService pool) {pool.shutdown(); // Disable new tasks from being submittedtry {// Wait a while for existing tasks to terminateif (!pool.awaitTermination(60,…

java udp 同一个端口实现收发_Java网络编程之UDP协议

伙伴们注意了&#xff01;小编在这里给大家送上关注福利&#xff1a;搜索微信公众号“速学Java”关注即可领取小编精心准备的资料一份&#xff01;今天我们来聊聊网络编程这部分的内容网络编程1)计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0…

iterate mysql_ITERATE

OutOfOrderScannerNextException: was there a rpc tiaused by: java.util.concurrent.ExecutionException: org.apache.phoenix.exception.PhoenixIOException: Failed after retry of OutOfOrderScannerNextExcept...文章余二五2017-11-222749浏览量Hibernate-ORM:05.Hiberna…

java 多态_Java面向对象 —— 多态

前两天已经相继介绍了Java面向对象的三大特性之中的封装、继承&#xff0c;所以今天就介绍Java面向对象的三大特性的最后一项&#xff0c;多态~首先讲一下什么是多态&#xff0c;以及多态需要注意的细节 什么是多态&#xff1a;一个对象具备多种形态&#xff0c;也可以理解为事…

2023年State-of-AI-Report阅读

文章目录 1、在研究进展方面2、在行业局势方面3、在现有政策方面4、在安全问题方面研究进展行业局势现有政策安全问题 State of AI Report系列至今已经是第六个年头了 也成为了人工智能领域的风向标 这个报告是由业界领先的AI从业者撰写 除了总结过去 也会对未来发展进行很…

java a星寻路算法_用简单直白的方式讲解A星寻路算法原理

很多游戏特别是rts&#xff0c;rpg类游戏&#xff0c;都需要用到寻路。寻路算法有深度优先搜索(DFS)&#xff0c;广度优先搜索(BFS)&#xff0c;A星算法等&#xff0c;而A星算法是一种具备启发性策略的算法&#xff0c;效率是几种算法中最高的&#xff0c;因此也成为游戏中最常…

vb6 方法‘ ’作用于对象 失败_JS基础入门-对象的使用

今日背诵小纸条对象是一组属性方法的组合&#xff0c;其中可包含基本值、对象和函数对象的定义1 对象字面量var hero{name: ‘产品小姐姐’&#xff0c;age: 16&#xff0c;weapon: [ ‘头盔’, ‘靴子’, ‘盔甲 ]&#xff0c;sayHi: function ( ) {console.log( this.name ’…

java接口中方法声明_java – 使用实现中声明的接口中未定义的方法

我有一个由接口定义的类public interface Test {void testMethod();}Test test new TestImpl();public class TestImpl implements Test {Overridepublic void testMethod() {//Nothing to do here}public void anotherMethod() {//I am adding this method in the implementa…

无法从套接字读取更多的数据 oracle_小伙面试时被追问数据库优化,面试前如何埋点反杀?

前言周五的早高峰, 各地软件园地铁站里中出现了不少穿着长袖加绒格子衫, 背双肩电脑包的年轻码农, 现在节气正值 [ 小雪 ] , 11月的全国性突然降温 , 让经历过996摧残的猿们一出地铁站就冻的打了个激灵 , 很庆幸的告诉大家距离放年假还剩不到 37 个工作日, 要买火车票的赶紧预约…

java随机数生成三位数_Java随机数总结

先放一道面试真题以下关于随机数的描述&#xff0c;正确的是&#xff1a;A. Matn.random() 可以生成 [ 0 , 1 ] 内的任意小数B. Random.next( 10 ) 可以生成 [ 0 , 10 ] 内的任意整数C. new java.util.Random().nextInt( 11 ) 可以生成 [ 0 , 10 ] 内的任意整数D. new java.uti…

python锁机制_python基础(锁机制,守护线程,线程队列,线程池)

一、 互斥锁(Lock)与递归锁(RLock)机制1.1 由互斥锁(Lock)产生的死锁现象&#xff1a;#互斥锁(死锁现象)&#xff1a;#死锁现象&#xff1a;from threading importLocklockLock()lock.acquire()print(123)lock.acquire()#等待获取锁(死锁状态)print(456)lock.release()#等待释放…

java包图标是文件_关于更换.jar文件默认图标

最近写了个java程序&#xff0c;导出.jar文件后觉得默认图标太寒酸&#xff0c;想换一个自个儿喜欢的。eclipse导出.jar文件网上提供了很多很正确的方法&#xff0c;我也不必赘述。至于更改默认图标&#xff0c;网上提供的一些方法真是让人不敢恭维。部分人提供的方法是“右击-…

qlineedit限制输入数字_Excel单元格限制录入,实用小技巧

在填写资料表格的时候&#xff0c;为了不防止出错&#xff0c;会在单元格中设置一些技巧&#xff0c;限制对方输入内容&#xff0c;这样可以更好的预防输入错误。那么单元格限制输入技巧是如何实现的呢&#xff1f;1、限制只能录入数字比如单元格是我们要用来填写年龄数据等数字…

java二维数组 内存分配_java中二维数组内存分配

区分三种初始化方式&#xff1a;格式一&#xff1a;数据类型[][] 数组名 new 数据类型[m][n];m:表示这个二维数组有多少个一维数组。n:表示每一个一维数组的元素有多少个。//例&#xff1a;int arr[][]new int[3][2];如下图格式二&#xff1a;数据类型[][] 数组名 new 数据类…

如何在python官网下载pip_[Python]Pip的安装以及简单的使用

Pip的安装安装python以后(我的python版本是32位&#xff0c;版本号2.7.10)&#xff0c;如果需要安装一些其他的库&#xff0c;一般有两种办法&#xff0c;一种是自己手动去各个库的官网下载&#xff0c;自己安装&#xff1b;另一种方法是安装pip&#xff0c;使用pip可以方便安装…

java造型_java造型_java向上造型有什么作用为什么要造型有什么效果_彩妆阁

1、java中造型与转型都什么意思&#xff0c;怎么用&#xff1f;我知道我知道 造型就是款式比如新款 爆款 秒杀款卖爆了等等这就是造型至于转型比如你之前写Java然后写.net 就叫转型了啦2、java中上溯造型是什么原理Upcasting&#xff0c;上溯造型&#xff0c;有的书译作“向上转…

word公式插件_如何快速输入复杂的数学公式?这里有 3 个实用技巧

不管你是不是科研狗&#xff0c;都可能遇到过在文章中插入公式。而我们最常用的就是使用 Word 自带的公式编辑器输入&#xff0c;Word 公式可以很好地匹配文章的格式&#xff0c;自然地插入文中。有时候处理一个公式简单&#xff0c;但如果你要输入大量公式&#xff0c;键盘、鼠…