尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Android Studio_逆向

Android Studio_逆向 课时8虚拟环境-pycharm文件-新建项目装依赖pycharm右键-打开于-终端-例pip install resquests课时13win安装adb把adb的压缩包解压到D:\MysoftWare\az\SDK添加环境变量用户变量或系统变量path下新建D:\MysoftWare\az\SDK\platform-toolscmd-adb version-能看到adb的版本就是安装好了课时15环境变量作用#无论在mac还是win上都需要加环境变量#环境变量是什么?环境变量是操作系统中用于存储系统级别配置信息的一种机制可以为应用程序提供统一的配置和运行环境#环境变量有什么作用?-解压的压缩包中有 adb.exe 可执行文件想在任意路径下都能找到并且执行这个可执行文件-打开cmd默认路径是:c: users(Administrator-这个路径下没有adb.exe-在cmd窗口中﹐敲adb (adb.exe 后缀可以不写)正常来讲是没有任何返回会报错说命令找不到-但是敲I有反应原因就是: adb.exe所在的路径已经被我们加入到环境变量了它就能找到了-如果一个可执行文件的路径没有被加入到环境变量想执行这个可执行文件必须进入到这个可执行文件所在路径才能执行课时16用户环境变量和系统环境变#用户环境变量和系统环境变量-操作系统分用户可以多用户登录-如果把环境变量配置在当前用户下:只针对于当前用户生效-如果把它配置在系统环境变量下:所有用户都会生效#同学下载了: scrcpy-win64安卓投屏到电脑上的软件---》电脑操作手机---》需要adb--》这个软件中自带了adb不要把它混了--—-》把这个的环境变量往下放---》优先找上面的把这个软件中的adb改成别的名字--》就不冲突了课时18adb掌握的常用命令#至此,咱们就可以在cmd中通过adb命令操作手机了#知道的命令:#1开启和关闭adb服务可以不开启敲任意一个adb命令就会自动开启)adb start-server启动ADBadb kill-server关闭ADB#2列出电脑上链接的手机adb devices# List of devices attached#801KPUU1367574device#3上传下载文件了解)#把电脑文件传到手机上adb -s 设备id号 push c: \demo .txt/ sdcard/ downloadadb -s 801KPUU1367574 push电脑上文件的路径/手机上的路径adb push D:\爬虫逆向10期\day02\软件\apps\Magisk-v26.4.apk /sdcard/down1oad#把手机上文件下载到电脑上adb pull /sdcard / download/boot.img ./#4在手机上安装和卸载软件adb install软件路径#安装adb uninstall软件包名#不了解什么是包名先略过adb shell pm list packages# 查看手机上装的所有软件包名课时19adb其他命令#1.查看手机处理器平台adb -s 设备id号 getprop ro.product.cpu.abiadb shell getprop ro.product.cpu.abi#arm64-v8a后面给手机下软件需要知道这个型号#2.安卓手机,就是类_unix系统我们可以进入到手机执行 1inux命令―(创建删除文件。。。)-进入到手机adb shell #命令窗口就是进入到手机内了敲的命令就是操作手机了#taimen : / $-查看当前目录下有哪些文件和文件夹的命令ls-切换到某个目录下如果你不是root权限有的文件夹是进不去的退出手机命令exit#3.其它命令查看手机设备:adb devices查看手机处理器平台adb -s adb-10CE2N16GR000NC-LZbR6F._adb-tls-connect._tcp shell getprop ro.product.cpu.abi#arm64-v8a 后面给手机下软件需要知道这个型号查看设备型号:adb -s 192.168.0.101:40837 shell getprop ro.product.model查看电池信息: adb -s 192.168.0.101:40837 shell dumpsys battery查看设备ID: adb she11 settings get secure android_id查看设备IMEI: adb shell dumpsys iphonesubinfo查看Android版本: adb -s 192.168.0.101:40837 shell getprop ro.build.version.release查看手机网络信息:adb shell ifconfig查看设备日志: adb logcat重启手机设备: adb reboot安装一个apk: adb install /path/demo.apk卸载一个apk: adb uninstall package查看系统运行进程: adb she11 ps查看系统磁盘情况: adb she11 ls /path/手机设备截屏: adb shell screencap -p /sdcard/aa.png手机文件下载到电脑: adb pull /sdcard/ aa. png ./电脑文件上传到手机: adb push aa. png /data/loca1/手机设备录像: adb shell screenrecord / sdcard/ ab.mp4手机屏幕分辨率:adb -s 192.168.0.101:40837 shell wm size手机屏幕密度: adb shell wm density手机屏幕点击: adb shell input tap xvalue yvalue手机屏幕滑动: adb shell input swipe 1000 1500 200 200手机屏幕带时间滑动:adb shell input swipe 1000 1500 0 0 1000手机文本输入:adb shell input text xxxxx手机键盘事件: adb shell input keyevent xx豆包-ADB 连接安卓手机常用命令大全ADBAndroid Debug Bridge是安卓调试工具先开启手机的「开发者选项 USB 调试」才能使用以下命令连接手机。一、基础前提必须先做手机打开设置 → 关于手机 → 连续点击版本号 7 次开启开发者选项返回设置 → 开发者选项 → 打开USB 调试用数据线连接电脑和手机手机弹窗选择允许 USB 调试二、常用连接命令1. USB 有线连接最稳定bash运行# 查看已连接的设备核心命令 adb devices # 重启ADB服务连接异常时用 adb kill-server adb start-server输出device表示连接成功输出unauthorized表示手机未授权调试2. WIFI 无线连接无需数据线方法 1同一局域网下推荐手机和电脑连同一个 WIFI先用 USB 线连接执行命令查看手机 IPbash运行adb shell ifconfig | grep inet设置 TCP 端口默认 5555bash运行adb tcpip 5555无线连接替换为你的手机 IPbash运行adb connect 192.168.1.100:5555断开无线连接bash运行adb disconnect 192.168.1.100:5555方法 2无 USB 线直连部分手机支持手机开发者选项中打开网络调试直接用手机显示的 IP 端口连接bash运行adb connect 手机IP:端口三、常用 ADB 操作命令连接后使用bash运行# 安装APK adb install 安装包路径.apk # 覆盖安装保留数据 adb install -r 安装包路径.apk # 卸载应用 adb uninstall 包名 # 查看手机日志 adb logcat # 传输文件到手机 adb push 电脑文件路径 /sdcard/ # 从手机拉取文件到电脑 adb pull /sdcard/文件名 电脑保存路径 # 进入手机命令行 adb shell # 重启手机 adb reboot四、常见问题解决adb devices 无设备检查 USB 调试是否开启更换数据线 / USB 口重启 ADB 服务adb connect 连接失败确保电脑和手机在同一局域网防火墙关闭 5555 端口重新执行adb tcpip 5555总结有线连接adb devices查看设备无线连接先adb tcpip 5555再adb connect 手机IP连接异常adb kill-server adb start-server重启服务C:\Users\Administratoradb shell adb.exe: more than one device/emulator这个错误的意思是你的电脑同时连接了多台安卓设备 / 模拟器adb shell不知道要连哪一个所以报错了。解决方法很简单先查看设备列表再指定设备编号执行命令。一步一步解决1. 先查看所有连接的设备运行命令bash运行adb devices你会看到类似这样的结果plaintextList of devices attached 1234567890abcdef device emulator-5554 device左边那串字符 / 数字就是设备序列号。2. 指定设备执行 adb shell格式bash运行adb -s 设备序列号 shell例子bash运行adb -s 1234567890abcdef shell最常用的完整命令模板bash运行# 查看设备 adb devices # 进入指定设备的 shell adb -s 设备号 shell # 安装APK到指定设备 adb -s 设备号 install xxx.apk # 重启指定设备 adb -s 设备号 reboot如果你只想保留一个设备拔掉多余的 USB 手机关掉多余的模拟器重启 adb 服务bash运行adb kill-server adb start-server然后再用adb shell就正常了。总结报错原因同时连了多个设备解决adb devices查看编号 →adb -s 编号 shell偷懒只留一个设备重启 adb 服务课时27配置手机代理【电脑端】查看自己电脑的IP方法一Charles-Help-Local lP Addresses方法二CMD-ipconfig-无线局域网适配器 WLAN:IPv4 地址端口号Charles-Proxy-Proxy Settings-勾选SuportEnable。Port:8888Charles- 弹出对话框-Allow允许代理【手机端】开发者模式开启调试打开无线网-代理改手动-主机名电脑IP端口8888课时28抓包-模拟登录某app只抓取手机包取消Windows包Charles-Proxy-Windows Proxy取消勾选Filter过滤Raw二进制课时29配置模拟器抓取http包课时30手机安装用户证书#【charles上)打开char1es--》 help---》SSLProxying---》Insta11charles Root certificate on a#【手机上】-0之前代理已经配置好了才能干下面的事情-1 浏览器中打开一个网址----》下载证书chls.pro/ssl-2自动下载证书-3手动安装证书-设置--搜索--》搜索―证书--》ca证书--ca证书--》仍然安装--》选中刚刚下载的证书-4查看证书手机打开:安全--》加密与凭据---》信任的凭据-此时可以看到用户证书和系统证书课时31用户证书做成系统证书#1把老师给的: movecert-1.9-4.zip发送到手机上adb push ./movecert-1.9-4.zip / sdcard/Down1oad#2使用面具刷入打开面具--模块---》从本地安装--》找到zip---》确认安装---》重启就能看到装的movecert原来装的用户证书被移动走了#3重启手机--》证书就被移动到系统证书下了课时141第一个app之java编写-点击换图片(我是Kotlin编写)res/drawable 存放图片的地方?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:apphttp://schemas.android.com/apk/res-auto xmlns:toolshttp://schemas.android.com/tools android:idid/main android:layout_widthmatch_parent android:layout_heightmatch_parent tools:context.MainActivity LinearLayout android:layout_widthmatch_parent android:layout_heightmatch_parent android:backgroundcolor/light android:orientationvertical ImageView android:layout_widthmatch_parent android:layout_height300dp android:srccolor/green android:idid/image/ Button android:layout_widthmatch_parent android:layout_heightwrap_content android:textClick me android:layout_marginTop30dp android:idid/button01 / /LinearLayout /LinearLayoutpackage com.example.htp import android.os.Bundle import android.provider.ContactsContract import android.widget.ImageView import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import android.widget.Button//自己加上的 import android.widget.Toast//自己加上的 class MainActivity : AppCompatActivity() { //因为img 和button可能会在当前类的别的方法中使用所以这里定义为成员变量 private lateinit var image: ImageView private lateinit var button01: Button private var id R.drawable.a//拿到a这张图片的id // var可变变量可以多次修改赋值 //val只读变量只能赋值一次类似 Java 的final override fun onCreate(savedInstanceState: Bundle?) { //手机上来到这个页面就会执行这里的代码 super.onCreate(savedInstanceState) enableEdgeToEdge() //加载布局 R代表资源文件 setContentView(R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets - val systemBars insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } //从页面中找出 图片标签 和按钮标签 val image findViewByIdImageView(R.id.image) image.setImageResource(id)//放在图片标签中 val button01 findViewByIdButton(R.id.button01) //给按钮添加点击事件 button01.setOnClickListener { Toast.makeText(this, 点击了按钮, Toast.LENGTH_SHORT).show() if(idR.drawable.a){ idR.drawable.b } else if(idR.drawable.b){ idR.drawable.c } else if(idR.drawable.c){ idR.drawable.a } image.setImageResource(id) } } }课时35反编译工具和jdk介绍#反编译工具作用-安卓app---》需要进行反编译成java代码#反编译工具选择常见的反编译工具: jadx推荐)、jeb、GDA后面也会有)反编译工具依赖于java环境所以我们安装jdk-jdk:JDK Development Kitjava集成开发工具包--》做java开发需要用-内部包含: jre和jvm-jre: java runtime environment java运行环境--》运行java项目但不做开发-内部包含 jvm-jvm: java虚拟机java的字节码文件必须要运行在jvm上--》java项目运行必须有它课时36安装jdk#jdk有版本最新21#但是大部分公司的java开发还是在jdk8上开发#我们反编译回来的java代码,都是jdk8及之前的代码形式#咱们安装jdk 8需要去官网下载# java本身是sun公司推出的,后来被甲骨文收购了https://www.oracle.com/java/technologies/downloads/#你们不需要下载了,直接拿老师给的#win平台安装#1下载jdk-8u371-windows-x64.exe#2双击安装安装路径必须没有中文#3要不要装jre我们也装路径默认D:\Program Files\avaljdk-1.8 目录下既有jdk又有jre# mac平台安装#1下载jdk-8u371-macosx-x64.dmg#2双击安装###测试是否装成功cmd中输入java -version输出java version 1.8.0_371Java(TM) SE Runtime Environment (build 1.8.0_371-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)课时37jdax新旧版本安装#最新1.4.7 ---》我们用#还用个老版本:1.2.0#后面咱们破解的app---》用1.4.7会反编译不全---》用1.2.0反编译全#安装1.2.0-解压-copy到某个目录下:D:\soft\jadx-1.2.0\bin-win: jadx-gui.bat #双击运行-mac:jadx-gui#双击运行-发送到桌面快捷方式#安装1.4.7-解压:jadx-gui-1.4.7-with-jre-win.zip-copy到某个路径下-双击打开: jadx-gui-1.4.7.exe课时39抓包-反编译定位代码#1打开jadx把apk拖到到软件中#2通过搜索找到密码加密位置---按什么关键字搜很重要如果关键字不对位置就搜不到pwdpwdpwdput(pwd#3搜索url/login.ashx抓包抓到的请求登陆的链接地址#4找到后在变量上右键--》查找用例---》查找谁使用了这个变量#5点击跳到声明 --》java写的md5加密#6用python复现加密过程课时41hook和hook框架#hook是什么Hook框架是一种技术用于在运行时拦截和修改应用程序的行为。通过Hook你可以劫持应用程序的方法调用、修改参数、篡改返回值等以达到对应用程序的修改、增强或调试的目的#常见的hook框架有哪些xposed Framework: Xpqsed 是一个功能强大的开源Hook框架可以在不修改应用程序源代码的情况下对应用程序进行各种修改。它允许你编写模块来拦截和修改应用程序的方法调用修改应用程序的行为和逻辑。Frida: Frida 是一个跨平台的动态 Hook框架支持安卓和其他操作系统。它提供了一个强大的 avascriptAPI可以在运行时对应用程序进行Hook包括方法拦截、参数修改、调用注入等。Frida可以用于安全研究、逆向工.程和应用程序调试等方面。课时42frida手机和电脑端安装#注意1.电脑端需要安装python的解释器环境--》【3.9】--》安装frida模块2.手机端需要安装frida-server3.python解释器环境中的frida模块版本必须和手机端使用的frida-server版本要一一对应一.电脑端安装模块#1 python解释器环境安装好#2 下载frida相关模块有版本--》默认安装最新--》我虚拟环境下安装)pip install frida16.1.7pip install frida-tools12.3.0二.手机端安装frida-server#1下载地址: https://github.com/frida/frida/releases-有很多很多平台架构#2查看手机架构手机连接到电脑上)adb shell getprop ro.product.cpu.abi#arm64-v8a#3下载软件#4解压不要用压缩包放到手机上一定要解压开frida-server-16.1.7-android-arm64#5把frida-server-16.1.7-android-arm64推送到手机上 /data/local/tmpadb push ./frida-server-16.1.7-android-arm64 /data/local/tmp#6命令操作查看是否顺利上传)adb she1l#进入手机taimen: / $ su #申请获取超级用户权限手机端点允许不要点拒绝taimen:/ ##看到是#表示已经得到了超级用户权限﹐$表示不是超级用户taimen:/ # cd /data/1ocal/tmptaimen :/data/loca1/tmp # ls#能看到咱们推送上来的frida-server# frida-server-16.1.7-an#7赋予可执行权限win连接手机中来到相应目录下执行命令)chmod x frida-server-16.1.7-anls -al #会有x权限了#8运行frida-server如果不加执行权限运行不了)./frida-server-16.1.7-an #敲回车就可以执行了卡主表示启动了如果没启动会报错#9如果出现报错基本上重启手机就能解决adb shell setenforce 0 #在电脑上运行
返回列表