[Android移动安全渗透基础教程] 工具篇

news2024/11/17 2:38:19

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大

少走了弯路,也就错过了风景,无论如何,感谢经历


0x01 从 Play Store中提取 .apk 文件

1.1 问题的来源

当想要从 Play Store获取 apk 文件时,我们可以将应用程序提取出来,而无需先将其安装到 Android 上,然后再将其从设备中提取为 apk。 为了缩短应用程序的分发时间,用于测试或逆向工程和打补丁

1.2 故障排除步骤

  • 转到网页:https://apkcombo.com/apk-downloader/
  • 并从 Play Store 中搜索能要下载的应用程序

在这里插入图片描述

  • 在上图中,按 “meatballs” 按钮 3 个点,然后按分享按钮

在这里插入图片描述

  • 然后,按复制到剪贴板按钮,将其粘贴到 APK 下载器网页上

在这里插入图片描述

  • 按Generate Download Link按钮,它将是apk的Download按钮

在这里插入图片描述

  • 你可以安装应用程序,并将其安装在模拟器或其它设备上

在这里插入图片描述

0x02 如何安装Android LSPosed 框架(Android 8.1 ~ 12)?

本文将介绍如何安装Android LSPosed 框架,以帮助测试人员修改安装在手机上的应用程序的工作方式。 不需修改应用程序,我们将在程序启动时进行修改(Android Runtime – ART)

在这里插入图片描述

2.1 设备准备步骤总结

  • 请将设备Root成功,测试人员使用红米Note8 MIUI 11.0.1 Android版本9PKQ1.1906.001
  • 使用上述版本的 Magisk 为 root 测试人员安装了 Magisk v23+
  • 从 Magisk repo中安装 Riru v25+
  • 从 Magisk repo中安装 LSPosed

2.2 安装示例

  • 安装 Magisk v23+,测试人员在设备root后安装了它

在这里插入图片描述

  • 转到 Magisk 程序,并选择如图所示的图标

  • 按放大镜的图标

在这里插入图片描述

  • 如图所示,找到 Riru 并按下载

在这里插入图片描述

  • 按允许

  • 当下载完成后,按安装按钮进行安装

  • 安装完成后,按下Reboot按钮

  • 回去再看一下Module,你会看到Installed成功的状态

  • 然后,再重复一次安装 LSPosed

  • 按Install进行安装

  • 安装完成后按重启按钮

  • 将出现一个 LSPosed 图标,按下它

  • 你会发现 Modules 为 0,还没有安装任何模块

  • 试了一下,找不到任何模块

  • LSPosed 安装完成

0x03 如何使用 SSH 服务器通过 SSH 访问 Android

3.1 简介(概述)

目的是能够通过 “Wifi” 网络访问 “Android”,通过 “FTP” 管理各种 “文件”,例如在 “电脑” 和 “Android” 手机之间传输文件,或通过 “Telnet” 等命令进行管理

3.2 步骤

  • 在 “Android” 设备上,通过 “Google Play” 下载并安装 “SSH Server” 程序

在这里插入图片描述

  • 然后选择

在这里插入图片描述

  • 命名要使用的 “配置文件” 和 “端口”。 然后按 “Android”上的 “返回” 按钮“保存”

在这里插入图片描述

  • 然后创建一个 “用户” 和 “密码”,按 "Android"上的 “返回” 按钮来 “保存”

在这里插入图片描述

  • 在 “计算机” 中,我们可以通过设置“IP地址”、“端口”、“用户名”和“密码”来使用支持“SSH”的程序,例如“WinSCP”或“Putty”

在这里插入图片描述

0x04 如何获取设备安装的.apk文件(app应用路径)

4.1 简介(概述)

需要一个已经 "安装 "在 “Android” 设备上的 “.apk” 文件,该文件可以从 “Google Play” 或 “未知来源” 获得,以便在 “模拟器” 或 “逆向工程” 中进行测试

4.2 步骤

  • “Android”设备必须先“Root”
  • 然后使用“文件管理器”(例如“根浏览器”)或使用有线连接或通过 FTP 访问 “Android” 文件系统
  • 切换道 /data/app/路径,选择需要的.apk

在这里插入图片描述

  • 通过 “FTP”、有线或 “电子邮件” 将其 “复制” 到你的计算机

0x05 如何设置 Drozer

Drozer是MWR Labs开发的一款Android安全测试框架。是目前最好的Android安全测试工具之一

Drozer官方文档说道:“Drozer允许你一一个普通android应用的身份与其他应用和操作系统交互。”在Web世界已经有了许多安全测试工具了,我们只需要给出一个目标,这些工具就会自动为我们安全测试报告。但Drozer与这样的自动化扫描器不同,Drozer是一种交互式的安全测试工具。使用Drozer进行安全测试,用户在自己的工作站上输入命令,Drozer会将命令发送到Android设备上的代理程序执行。其官方文档说道:“Drozer允许你一一个普通android应用的身份与其他应用和操作系统交互。

5.1 Drozer下载与环境配置

Drozer下载地址:

  • https://labs.f-secure.com/tools/drozer/

需要下载一个Windows客户端和一个安卓客户端:

  • 【windows客户端】下载drozer (msi)安装包,或者下载python的whl格式安装包drozer (Python.whl)

在这里插入图片描述

  • 【安卓客户端】drozer (Agent .apk only)

https://github.com/FSecureLABS/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk

在这里插入图片描述

  • drozer使用指南

https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf

在这里插入图片描述

5.2 Python环境安装

https://www.python.org/downloads/release/python-2718

在这里插入图片描述
在这里插入图片描述

因为Drozer 需要Python环境,但只能选择Python2.7或Python3.6

在这里插入图片描述

PS:注意,要把Python的PYTHON_HOME和PYTHON_HOME\Scripts加入到环境变量,如下:

在这里插入图片描述

5.3 模拟器安装drozer Agent App

有夜神、网易MuMu等Android模拟器,依据个人情况自主选择,此处选择网易MuMu模拟器

https://mumu.163.com/

在这里插入图片描述

在逍遥安卓模拟器中安装运行drozer Agent App,并打开Embbdded Server:

在这里插入图片描述

PS:安装好后打开 drozerAgent应用,点击右下角的开启按钮

打开命令行工具,并cd切换到安卓模拟器的安装路径,运行adb devices命令,查看是否能看到模拟器。如果看不到,重启模拟器试试

在这里插入图片描述

切换到drozer安装目录,其实也可以不用切入,因为我们已经加入了环境变量

在这里插入图片描述

使用 adb 进行端口转发,转发到上边Drozer使用的端口 31415,并进入Drozer 控制台:

adb.exe forward tcp:31415 tcp:31415
drozer console connect

在这里插入图片描述

用list命令列出Drozer所有功能模块,如能正常显示,则说明Drozer已正确安装

dz> list

在这里插入图片描述

5.4 Drozer启动报错解决方法

执行报错解决方案:

问题:ImportError: No module named google.protobuf
解决方法:pip install protobuf

问题:ImportError: No module named OpenSSL
解决方法:pip install pyOpenSSL

问题:drozer Server requires Twisted to run.
     Run 'pip install twisted' to fetch this dependency.
解决方法:pip install twisted

问题:UserWarning: You do not have a working installation of the service_identity module: 'No module named service_identity'. Please install it from https://pypi.python.org/pypi/service_identity and make sure all of its dependencies are satisfied.
解决方法:pip install service_identity

0x06 如何通过ADB检索软件包信息

6.1 简介(概述)

本文将介绍一种检索安装在我们 “Android” 设备上的各种 “Package” 信息的方法,我们通常可以检查这些信息。当设备通过 "Root “完成后。并进入”/data/data"文件夹,会有一个所有 “Package” 的列表,但这次我们将通过ADB使用该命令

6.2 步骤

  • 连接 Android 设备或模拟器。您可以从以下位置获取更多信息
    • 如何通过 Appie2 使用 ADB
    • 如何在移动设备上连接 ADB shell
  • 使用以下命令
adb shell "pm list packages"|cut -f 2 -d ":"

0x07 如何通过Drozer检索软件包信息

7.1 简介(概述)

在这篇文章中,我们将介绍一种方法来检索安装在我们“Android”设备上的各种“Package”信息,通常我们可以检查这些信息。 当设备通过 "Root “完成后。并进入”/data/data"文件夹,会有一个所有 “Package” 的列表,但这次我们将通过 “Drozer” 命令来使用

步骤(步骤)

安装“Drozer”可以从 (https://www.mwrinfosecurity.com/products/drozer/)
“Drozer”可以通过“Appie2”运行,可以从以下网址下载 (http://sourceforge.net/projects/appiefiles/files/Appie2.zip/download)
打开程序“Drozer”并按“OFF”按钮为“ON”(如何设置 Drozer)。
然后使用连接命令如下

7.2 步骤

  • 安装 “Drozer” 可以从(https://www.mwrinfosecurity.com/products/drozer/)下载
  • “Drozer” 可以通过 “Appie2” 运行,可以从(http://sourceforge.net/projects/appiefiles/files/Appie2.zip/download)下载
  • 打开 “Drozer” 程序,将 “OFF” 按钮按成 “ON”(如何设置Drozer)
  • 然后使用下面命令连接,如下:
C:\Users\wsunpachit\Desktop
λ adb forward tcp:31415 tcp:31415
 
C:\Users\wsunpachit\Desktop
λ drozer console connect
  • 在 “Drozer控制台” 使用以下命令
dz>  run app.package.list
android (Android System)
com.android.SSLTrustKiller (Android SSL TrustKiller)
com.android.backupconfirm (com.android.backupconfirm
com.android.browser (Browser)
com.android.certinstaller (Certificate Installer)
com.android.contacts (Contacts)
com.android.defcontainer (Package Access Helper)
com.android.gallery (Camera)
com.android.htmlviewer (HTML Viewer)
com.android.inputdevices (Input Devices)
com.android.inputmethod.latin (Android keyboard (AOS)
com.android.keychain (Key Chain)
com.android.launcher (Launcher)
com.android.location.fused (Fused Location)
com.android.magicsmoke (Magic Smoke Wallpaper)
com.android.musicvis (Music Visualisation Wallpaper)
com.android.noisefield (Bubbles)
com.android.packageinstaller (Package installer)
com.android.phasebeam (Phase Beam)
com.android.phone (Phone)
com.android.providers.applications (Search Applicatis Provider)
com.android.providers.contacts (Contacts Storage)
com.android.providers.downloads (Download Manager)
com.android.providers.downloads.ui (Downloads)
com.android.providers.drm (DRM-Protected Content Stoge)
com.android.providers.media (Media Storage)
com.android.providers.settings (Settings Storage)
com.android.providers.telephony (Phone/Messaging Stoge)
com.android.providers.userdictionary (User Dictionar
com.android.provision (com.android.provision)
com.android.settings (Settings)
com.android.sharedstoragebackup (com.android.sharedsragebackup)
com.android.smspush (com.android.smspush)
com.android.soundrecorder (Sound Recorder)
com.android.systemui (System UI)
com.android.vending (Google Play Store)
com.android.vpndialogs (VpnDialogs)
com.android.wallpaper (Android Live Wallpaper)
com.android.wallpaper.holospiral (com.android.wallpar.holospiral)
com.android.wallpaper.livepicker (Live Wallpaper Picr)
com.cyanogenmod.filemanager (File Manager)
com.example.android.livecubes (Example Wallpapers)
com.example.android.softkeyboard (Droid4X IM)
com.google.android.gms (Google Play services)
com.google.android.gsf (Google Services Framework)
com.google.android.gsf.login (Google Account Manager
com.google.android.location (Network Location)
com.google.android.syncadapters.contacts (Google Concts Sync)
com.haimawan.push (ๆตท้ฉฌ็Žฉ)
com.mwr.dz (drozer Agent)
com.saurik.substrate (Cydia Substrate)
com.svox.pico (Pico TTS)
eu.chainfire.supersu (SuperSU)
me.haima.androidassist (ๅบ”็”จไธญๅฟƒ)
me.haima.helpcenter (HelpCenter)
  • 上面的输出会看到安装在 “Android” 设备上的所有 “Package” 信息

0x08 如何通过 Drozer 检索每个包的信息

8.1 简介(概述)

在本文我们将通过 “Drozer” 命令来检查每个 “应用程序” 的 “软件包” 信息,这使我们能够看到文件中包含的基本信息,包括文件中的 “使用许可”

8.2 步骤

  • 安装 “Drozer” 可以从(https://www.mwrinfosecurity.com/products/drozer/)下载
  • “Drozer” 可以通过 “Appie2” 运行,可以从(http://sourceforge.net/projects/appiefiles/files/Appie2.zip/download)下载
  • 打开 “Drozer” 程序,将 “OFF” 按钮按成 “ON”(如何设置Drozer)
  • 然后使用下面命令连接,如下:
C:\Users\wsunpachit\Desktop
λ adb forward tcp:31415 tcp:31415
  
C:\Users\wsunpachit\Desktop
λ drozer console connect
  • 在 “Drozer Console” 中使用命令列出 “Android” 上安装的所有软件包
dz> run app.package.list
org.owasp.goatdroid.fourgoats (FourGoats)
  • 通过使用命令来检查每个 “Package” 的信息
dz> run app.package.info -f org.owasp.goatdroid.fourgoats
Package: org.owasp.goatdroid.fourgoats
  Application Label: FourGoats
  Process Name: org.owasp.goatdroid.fourgoats
  Version: 1.0
  Data Directory: /data/data/org.owasp.goatdroid.fourgoats
  APK Path: /data/app/org.owasp.goatdroid.fourgoats-1.apk
  UID: 10040
  GID: [3003]
  Shared Libraries: null
  Shared User ID: null
  Uses Permissions:
  - android.permission.SEND_SMS
  - android.permission.CALL_PHONE
  - android.permission.ACCESS_COARSE_LOCATION
  - android.permission.ACCESS_FINE_LOCATION
  - android.permission.INTERNET
  Defines Permissions:
  - None
  • 从上面的结果来看,“Uses Permissions” 部分的结果与如何通过 Drozer 访问 “AndroidMenifest.xml” 的结果相同

0x09 如何读取Android应用程序权限

9.1 简介(概述)

AAPT(Android Asset Packaging Tool)程序是随我们所安装的Android SDK 一起提供的。通常情况下,AAPT 负责将属于资源的文件合并成一个APK文件中,然后将其与 .dex 文件通过 javac 编译成 .class,然后再转换为 .dex,如下图所示

在这里插入图片描述
另外,它可以用来从APK中提取各种重要数据,例如:检查应用程序要求许可权限的Android权限信息

9.x2 步骤(步骤)

  • 安装 Appie 或 Android Studio
  • 将检查文件复制到桌面
  • 使用以下命令
//aapt d permission followed by application
aapt d permissions diva.apk
  • 将得到以下结果

在这里插入图片描述

0x10 如何安装移动安全框架-MobSF

10.1 简介(概述)

本文介绍安装程序。“Mobile-Security-Framework-MobSF”,帮助 “Android”(.apk)和 “iOS”(.ipa)的 "二进制 "检查,以减少漏洞测试的时间。其中可以为 "Windows "和 "Linux "安装,具体步骤如下

10.2 步骤

卡利Linux

下载“MobSF”
提取“Zip”文件。

步骤(Steps)

1)Kali Linux

  • 下载 “MobSF”:https://github.com/MobSF/Mobile-Security-Framework-MobSF
  • 解压 “zip” 文件

在这里插入图片描述- 使用命令激活 “MobSF 服务器”

python manage.py runserver

在这里插入图片描述- 如果出现如图所示的问题,请使用以下命令:

pip install -r requirements.txt --user

在这里插入图片描述

  • 然后转到我们可以调用的“Web Browser”( http://localhost:8000/ 如下),它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议

在这里插入图片描述

0x11如何安装移动安全框架-MobSF (Docker)

11.1 简介(概述)

在 Mac OS 上使用 Docker 安装 "Mobile-Security-Framework-MobSF"可以下载pdf

11.2 步骤

1)安装Docker

  • 下载 Docker for MacOs 安装:https://docs.docker.com/docker-for-mac/install/#download-docker-for-mac

在这里插入图片描述

  • 双击 Docker.dmg 文件并将其拖入应用程序,来安装该文件
  • 去注册:https://cloud.docker.com

在这里插入图片描述

  • 你会收到一封确认的电子邮件。要注册,请按 “OK” 按钮

在这里插入图片描述

  • 转到右上角,点击登录

在这里插入图片描述

  • 使用,我们已经注册的用户账户

在这里插入图片描述
2)安装和使用 “移动安全框架-MobSF”

  • 使用以下命令
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

在这里插入图片描述

  • 转到 Web 浏览器,并进入URL:http://0.0.0.0:8000/

在这里插入图片描述3)参考

  • https://github.com/MobSF/Mobile-Security-Framework-MobSF

0x12 如何使用 QARK (Quick Android Review Kit) ?

12.1 简介(概述)

QARK是一个免费的Android安全测试工具。它也很方便,缩短了测试时间。包括拥有一个帮助创建 .apk的工具,它可以帮助制作 POC 来理解应用程序攻击

在这里插入图片描述

12.2 步骤

  • 从 https://github.com/linkedin/qark 下载
  • 在使用 MAC 的示例中,进入到 qark 文件夹中,并使用以下命令运行它
python qarkMain.py
  • 该程序会要求安装Android SDK,选择Y,并稍等片刻。从再次询问在哪里测试,我们通常会得到 .apk文件进行测试,或者安装在Android设备上,选择数字 1

在这里插入图片描述

  • 在第一种方法中,需要花时间点我们的 .apk程序,把你要测试的文件复制粘贴到想要的文件夹中,然后填上数字1和你要测试的 .apk文件的目录,如下所示:

在这里插入图片描述- 完成后,等待处理

在这里插入图片描述

  • 完成后,我们可以去Report文件夹中查看报告,如下:

在这里插入图片描述

  • 另一种方式,可以通过选择如图所示的菜单,从我们已经安装的设备中拉取程序。最初,我们必须将Android设备的信号线插入到运行QARK的计算机中

在这里插入图片描述

  • 然后,程序将显示一个已安装程序的列表,让我们输入要查看的程序编号

在这里插入图片描述

  • 等到它完成,QARK将询问它是否会创建一个程序,来展示如何攻击该漏洞(POC),我们可以这样做

在这里插入图片描述

  • 该程序将自动通过网络安装

在这里插入图片描述

  • 从检查结果来看,有一个有趣的菜单,就是Exploit,即不同的Android组件的导出部分。你可以,从下面的文章中了解更多信息:

    • 如何理解Intents
    • 如何通过不受信任的输入来测试安全决策 - Android
  • 尝试运行导出的Activity

在这里插入图片描述

  • QARK 漏洞利用程序,可以调用易受攻击的程序页面

在这里插入图片描述

0x13 如何为越狱设备设置 Frida

13.1 简介(概述)

本文讨论如何在已root的Android设备上安装Frida

在这里插入图片描述

13.1 步骤

1)设备已经被ROOT
2)安装Android Studio程序

  • 在MacOS上使用时,adb程序位于以下文件夹中
//adb folder
cd /Users/root/Library/Android/sdk/platform-tools/
 
// can be run using the command
./adb
  • 或通过Appie程序在Windows上使用

3)使用以下命令安装 Frida

// install pip
sudo easy_install pip
which pip
pip --version
 
//install Frida
pip install frida
frida --version

在这里插入图片描述

  • 要通过数据线或 Wifi 在 Android 设备或模拟器上使用 adb 程序,必须先进行设置
// connect to adb via network
adb connect 127.0.0.1:5555
 
//check if you can connect to the device
adb devices -l

在这里插入图片描述- 从 https://github.com/frida/frida/releases 下载 Frida 服务器

在这里插入图片描述

  • 然后使用以下命令安装Frida服务器,如下:
//frida-server is the location of the program on the desktop
adb push frida-server /data/local/tmp/
adb shell
chmod 755 /data/local/tmp/frida-server
su
/data/local/tmp/frida-server &
  • 使用命令验证我们的 Mac OS 是否可以连接到 Frida 服务器,并且 Android 软件包必须如图所示可见:
frida-ps -aU

在这里插入图片描述- 如果,在下面的示例中看不到上述 Android 软件包,请重新启动设备,并再次执行上述步骤

在这里插入图片描述

0x14 如何为模拟器(Genymotion)设置Frida?

在这里插入图片描述
解释如何,在 Android 模拟器上安装Frida服务器,在MacOS上测试连接

安装Genymotion Emulator 好了后,再安装Android Studio运行ADB How to install Android Studio

将模拟器连接到ADB,访问模拟器目录,如下所示

cd /Users/root/Library/Android/sdk/platform-tools/
./adb connect 127.0.0.1
./adb devices 
./adb shell
cd data/local/tmp

安装 Busy box 程序以便能够使用来自 https://busybox.th.uptodown.com/android/download 的 wget 命令

要在 MacOS 上安装 Frida 客户端,请参阅文章如何在 MacOS 上安装 Frida。

首先尝试检查版本 frida,如果是旧版本,则可能有问题。 要连接我们将在模拟器中安装的 Frida 服务器,可以从命令中检查版本

安装Busy box程序,以便能够从https://busybox.th.uptodown.com/android/download,使用wget命令

安装Frida客户端成功后,尝试检查一下frida的版本,如果是旧版本,可能会有问题。要连接我们将安装在模拟器上的Frida-Server,可以通过以下命令来检查版本:

frida --version

在这里插入图片描述
然后通过检查 Frida 服务器的版本下载到模拟器,如下所示 https://github.com/frida/frida/releases ,对于 Android 来说,选择 Android x86 ,并尝试先安装与客户端相同的版本。使用不断更新的下一个版本

在这里插入图片描述

wget https://github.com/frida/frida/releases/download/12.8.0/frida-server-12.8.0-android-x86.xz
unxz frida-server-12.8.0-android-x86.xz   
chmod 777 frida-server-12.8.0-android-x86
mv frida-server-12.8.0-android-x86 frida-server
su
/data/local/tmp/frida &

然后切换到Mac OS机器上,使用Frida客户端命令连接,查看Android Emulator上是否有进程

在这里插入图片描述

frida-ps -aU

如果在模拟器中安装frida服务器无法运行或无法连接,请删除我们下载的文件夹中的文件,这里是cd data/local/tmp,此外,frida服务器会创建一个文件夹来跟踪并删除所有文件

在这里插入图片描述

rm frida-server
rm -r re.frida.server

参考链接

https://blog.itselectlab.com/?p=14313

https://blog.itselectlab.com/?p=13756

http://blog.itselectlab.com/?p=1449

http://blog.itselectlab.com/?p=1475

http://blog.itselectlab.com/?p=7565

http://blog.itselectlab.com/?p=10052

http://blog.itselectlab.com/?p=5019

http://blog.itselectlab.com/?p=5032

http://blog.itselectlab.com/?p=10060

http://blog.itselectlab.com/?p=9059

http://blog.itselectlab.com/?p=11688

http://blog.itselectlab.com/?p=10179

http://blog.itselectlab.com/?p=10725

http://blog.itselectlab.com/?p=13059


你以为你有很多路可以选择,其实你只有一条路可以走


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

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

相关文章

ComponentOne Studio WPF部署功能完全兼容

ComponentOne Studio WPF部署功能完全兼容 ComponentOne WPF Edition是一组易于使用的WPF组件,包括.NET应用程序的高级网格、图表、报告和调度控件。ComponentOne WPF控件使用XAML构建,以促进团队协作,并与Windows Presentation Foundation的…

ChatGPT ,能替代程序员吗?

最近朋友圈都在聊一个ai,知乎甚至一度上了热榜,现在已经有540个回答了 好嘛,既然咱也是个程序员,这不得体验一波? 当我火急火燎的点开时 乳化,赤裸裸的乳化! 体验 问题不大,还有闲…

Nacos的服务心跳

nacos的实例分为临时实例和永久实例两种,相应的不同的实例会用有不同的心跳机制. 临时实例基于心跳方式做健康检测,永久实例是有Nacos主动探测实例状态. 可以通过在yaml文件配置. spring:application:name: order-servicecloud:nacos:discovery:ephemeral: false # 设置实例为…

举个栗子~Minitab 技巧(6):使用 T 检验 分析产品质量

在企业生产过程中,我们往往需要对产品质量负责。最常见的场景是,如何判断生产线中的产品,是否满足质量标准?比如,某工厂现有一批产品,目标生产重量是 20g,通过随机抽取不同的产品,如…

springsecurity

目录 一、权限管理简介 1、什么是权限管理 2、认证 2、基于资源的访问控制 三、Spring Security概述 1,Spring Security简介 2、Spring Security快速入门 2.1、引入依赖 2.2、创建一个控制器 2.3、启动项目 四、Spring Security 认证配置 1、WebSecurity…

公司自研组件库打包之后chunk.css文件25W行代码

项目场景: 基于Antd开发的UI组件库,主要分为两部分。 一部分是基础组件,直接在Antd的基础上包了一层,然后根据自身需求拓展了新的功能。如: input的状态除了本身支持的error和warning两种,额外增加了成功的…

手写JS—深拷贝

什么是深拷贝 一个引用对象一般来说由两个部分组成:一个具名的Handle,也就是我们所说的声明(如变量)和一个内部(不具名)的对象,也就是具名Handle的内部对象。它在Manged Heap(托管堆…

Real diff算法是怎么运作的?

React 的 Reconciliation 算法原理 React 的渲染机制 Reconciliation 过程 React 采用的是虚拟 DOM (即 VDOM ),每次属性 (props) 和状态 (state) 发生变化的时候,render 函数返回不同的元素树,React 会检测当前返回的元素树和上次渲染的元素…

论文阅读笔记 | 三维目标检测——PV-RCNN算法

如有错误,恳请指出。 文章目录1. 背景2. 网络结构2.1 Feature Encoder and Proposal Generation2.2 voxel-to-keypoint scene encoding2.3 Keypoint-to-grid RoI Feature Abstraction3. 实验部分paper:《PV-RCNN: Point-Voxel Feature Set Abstraction f…

JavaScript -- DOM事件总结

文章目录事件1 事件对象简介2 Event对象3 冒泡4 事件的委派5 事件的捕获事件 1 事件对象简介 事件对象是由浏览器在事件触发时所创建的对象,这个对象中封装了事件相关的各种信息通过事件对象可以获取到事件的详细信息比如:鼠标的坐标、键盘的按键…浏览…

单频信号的相位谱计算与误差修正-附Matlab代码

一、问题描述 我们在实际处理时经常遇到只有一个正弦信号的情况,其频率为 f0{{f}_{0}}f0​,在谱分析以后,除了在频率为 f0{{f}_{0}}f0​处有相位数值外,其他频率处都有相位数值,分析其他频谱出现相位值的原因。 例如…

外部tomcat资源整合

Spring Boot应用默认是以jar包方式运行的,Springboot默认有内置的tomcat,在启动的时候会自动的将项目发布,这样各有利弊。 优点:简单,便携 缺点:不支持jsp, 定制优化比较麻烦,需要自己编写ser…

如何开发一个婚恋交友系统?开发功能特点有什么?

婚恋平台为年轻人开启了一个交流恋爱的方式,一方面为的是适龄的年轻单身人士,另一方面为一部分大龄单身人士,解决单很多身人 士的需求,婚恋平台的开发,跟随着互联网的发展,抢占了小程序的热门市场&#xf…

Java线程实现

内容引用自《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明》 线程的实现 我们知道,线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和 执行调度分开,各个…

React框架入门

React是用于构建用户界面的JavaScript库, 起源于Facebook的内部项目,该公司对市场上所有 JavaScript MVC框架都不满意,决定自行开发一套,用于架设Instagram的网站。于2013年5月开源 一、React简介 React以声明式编写 UI&a…

0119 动态规划 Day8

剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1…

计算机的硬件系统和软件系统的关系

计算机的硬件系统和软件系统的关系是缺一不可。 硬件它是所有软件运行的物质基础。 与硬件直接接触的是操作系统,它处在硬件和其他软件之间,表示它向下控制硬件,向上支持其他软件。 在操作系统之外的各层分别是各种语言处理程序、数据库管理…

CleanMyMacX4.12.1Crack版本频繁弹密码 菜单浮窗无法显示显示空白解决办法

你们有没有出现过在使用 CleanMyMac 清理系统垃圾文件的时候会频繁弹出输入开机密码?那么该如何解决这个问题呢?跟着小编来看看解决方法吧! 频繁输入密码 更新CleanMyMacX到4.12.1的Crack版本之后,发现做一些操作要一直输入密码&…

科技云报道:PingCAP黄东旭:Serverless是数据库的未来形态

科技云报道原创。 30年前,程序员要想写代码,必须使用复杂的汇编语言。 但在今天,几乎没有程序员知道如何使用汇编语言,更加简易的高级语言如C,C#,JAVA,Rust,Go已成为开发主流。 随…

分布式文件存储系统FastDFS[3]-通过Docker安装并且从客户端进行上传下载测试

一、FastDFS安装 FastDFS的安装我们还是通过Docker来安装实现吧,直接在Linux上还装还是比较繁琐的,但就学习而言Docker安装还是非常高效的。Docker环境请自行安装哦,不清楚的可以看看我的Docker专题的内容。https://blog.csdn.net/qq_3852657…