![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android
Android相关的开发、安全等方面的内容。android逆向相关:EdXposed、Frida、Magisk面具、IDA等
小龙在山东
本博客为个人整理的技术笔记,仅用于学习。
展开
-
adb查看当前窗口包名和主活动界面信息
查看当前窗口包名和主活动界面。查看当前活动界面信息。原创 2022-09-09 12:01:45 · 2462 阅读 · 0 评论 -
关闭小米手机的adb安装提示
小米手机机每次adb安装apk都会弹安装提示,为了自动化测试,需要分两步两步来关闭adb安装apk提示。原创 2022-08-17 21:30:00 · 2006 阅读 · 0 评论 -
小米9线刷ROM
下载地址:http://bigota.d.miui.com/tools/MiFlash2018-5-28-0.zip执行运行后,点击左上角Driver,再点击安装即可。请检查文件后缀名是否为".tgz",如果为".gz" 请重新命名后缀为".tgz"。小米9的下载地址:https://xiaomirom.com/rom/redmi-note-9-pro-5g-mi-10t-lite-gauguin-china-fastboot-recovery-rom/线刷包下载完成后解压,打开线刷包文件夹,复制地址原创 2022-06-09 23:45:00 · 3843 阅读 · 0 评论 -
unidbg模拟执行so文件并调用解密函数
引入jar包com.github.zhkl0228:unidbg-android:0.9.6测试用例import com.github.unidbg.AndroidEmulator;import com.github.unidbg.Module;import com.github.unidbg.linux.android.AndroidEmulatorBuilder;import com.github.unidbg.linux.android.AndroidResolver;import c原创 2022-05-17 10:35:42 · 1510 阅读 · 0 评论 -
Frida hook 构造函数
package com.github.androiddemo.Activity;import android.content.Intent;public class FridaActivity7 extends BaseFridaActivity { private boolean next; @Override // com.github.androiddemo.Activity.BaseFridaActivity public String getNextCheckTi原创 2021-12-29 13:35:47 · 1396 阅读 · 0 评论 -
小米9刷twrp并安装Magisk(面具)
小米9刷Magisk手机必须先解锁BL锁才能继续:小米官方BL解锁教程:查看链接解完锁后开始操作:1.手机下载magisk面具包备用:链接: https://pan.baidu.com/s/12-hSjDpeXKbG9b5gS8N2lw 提取码: g85p2.电脑端下载第三方W大的REC一键刷入线刷工具包链接: https://pan.baidu.com/s/14rxiSnWURrTDiukpViYO3Q 提取码: 9gc4电脑端下载REC一键刷入工具包3.解压电脑下载的工具包.7z4.原创 2020-06-18 20:46:48 · 22964 阅读 · 0 评论 -
Androi逆向:动态调试smali代码
安装smalideaAndroid Studio需要安装smalidea。下载地址:https://bitbucket.org/JesusFreke/smali/downloads/Git地址:https://github.com/JesusFreke/smalideaAndroid Studio安装插件方式:找到APK包名和入口Activity用AK打开此篇所打包的APK,找到入口和Activity,并开启调试debuggable:查看端口在Android SDK安装目录下\tools原创 2020-12-03 11:15:32 · 330 阅读 · 0 评论 -
adb device no permisions (missing udev rules?)
使用Ubuntu查看安卓设备,会报错:$ adb device xxx no permisions (missing udev rules? user is in the pulugdev group); see [http://developer.android.com/tools/device.html]原因是系统安全设置,禁用了。方法一:切换到root权限sudo adb kill-server # 关掉adbsudo adb devices # 用root权限打开adb只是暂时解原创 2021-01-27 19:03:40 · 1480 阅读 · 0 评论 -
androidx.recyclerview:recyclerview的使用
添加扩展或手动修改app/build.gradle:在dependencies里添加implementation 'androidx.recyclerview:recyclerview:1.0.0'新建布局layoutitem布局fruit_item.xml:<?xml version="1.0" encoding="utf-8"?><LinearLayout ...原创 2019-06-10 18:18:12 · 54314 阅读 · 8 评论 -
qpython3:安卓上运行Python
简介QPython3是一个在Android上运行Python3脚本引擎,它整合了Python3解释器、Console、编辑器和SL4A库。可以让你在Android设备上运行Python语言开发的程序。它就是Android上的Python!此外,它提供了开发工具能让你在Android设备上方便地开发Python项目。还有另外一个版本QPython,支持Python2.7。【主要功能】支持A...原创 2018-11-07 16:24:29 · 19290 阅读 · 4 评论 -
Android逆向:编写第一个Android程序
使用Android Studio 新建一个空白项目拖进去两个文本提示(TextView)、两个文本框(Plain Text、Password)一个按钮(Button)MainActivity.javapackage com.lilongsy;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.原创 2020-11-30 15:31:08 · 368 阅读 · 0 评论 -
Android逆向:Frida Hook基础
安装实验环境:python3.7小米5(已ROOT)Windows10frida安装pip install fridapip install frida-toolsfrida-server 安装运行查看CPU架构adb shell getprop ro.product.cpu.abi在这里下载对应架构的frida-server。启动frida-server# 从本地推送到手机adb push frida-server /data/local/tmp# 端口转发ad原创 2020-12-21 18:42:03 · 1208 阅读 · 0 评论 -
Frida 主动设置静态成员变量和非静态成员变量的值
package com.github.androiddemo.Activity;import android.content.Intent;import android.util.Log;public class FridaActivity3 extends BaseFridaActivity { private static boolean static_bool_var = false; private boolean bool_var = false; private原创 2021-12-31 18:37:41 · 3100 阅读 · 0 评论 -
OLLVM两种混淆方式:初始化解密和运行时解密
OLLVM混淆函数名:std::string_查找JNI_OnLoad加载Android ARM库:修改类型:双击查看v6 = off_33D60里的off_33D60:print_dex(0x37070)是sign1。查看交叉引用:是std::string_::形式的函数,改了函数的名字,这是OLLVM的另一种加密函数,在.init_array段里面:OLLVM字符串使用前混淆:运行时解密Ctrl+S打开.init_array:查看sub_6CEC函数:都赋值原创 2022-01-12 18:47:08 · 1190 阅读 · 0 评论 -
Android逆向:编写第一个exposed模块
简介EdXposed框架是对Xposed的扩展,兼容Xposed接口,支持安卓新版本8.0 ~ 11,是Riru的一个模块。安装安装Magisk v19+在Magisk管理器模块里安装Riru-Core V19+在Magisk管理器或Recovery模式下安装EdXposed安装你开发的应用或第三方应用重启新建空白项目添加xposed扩展库在app > build.gradle文件的dependencies下加入:compileOnly 'de.robv.android.x原创 2020-12-14 10:29:24 · 901 阅读 · 0 评论 -
Android逆向:反编译工具JEB
下载安装下载地址:https://www.pnfsoftware.com/下载的是一个zip压缩包,绿色安装,解压到相应的目录就算是安装好了。双击目录下的对应系统的shell/bat可执行文件,打开JEB:使用打开APK,可以查看树状图:可以看到smali代码。在MainActivity上,右键解析,可以看到Java代码:双击Manifest即可查看AndroidManifest.xml:...原创 2020-12-08 10:07:10 · 1554 阅读 · 0 评论 -
Python requests.exceptions.ProxyError: HTTPConnectionPool [WinError 10061] 由于目标计算机积极拒绝,无法连接。
Traceback (most recent call last): File &quot;D:\Anaconda3\lib\site-packages\urllib3\connectionpool.py&quot;, line 601, in urlopen chunked=chunked) File &quot;D:\Anaconda3\lib\site-packages\urllib3\connectio...原创 2018-10-12 09:43:21 · 10274 阅读 · 12 评论 -
adb install APK报错Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
报错$ adb install app-debug_killer.apkPerforming Streamed Installadb: failed to install app-debug_killer.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]原因INSTALL_FAILED_TEST_ONLY 调用者不被允许测试的测试程序解决办法加一个参数-t:adb install -t app-debug_killer.ap原创 2020-11-30 22:48:15 · 4164 阅读 · 0 评论 -
Frida动态加载Dex
Frida加载Dex用Java.openClassFile方法。使用dex方法之前,需要加载一下:load()。创建实例($new()),需要在主线程里运行:Java.scheduleOnMainThread。function load_dex() { var DecodeUtilsDex = Java.openClassFile("/data/local/tmp/DecodeUtils.dex"); console.log("DecodeUtilsDex:", DecodeUtils原创 2021-12-29 11:13:46 · 1061 阅读 · 0 评论 -
Android逆向:AndroidKiller破解Android程序
安装AndroidKiller前提:安装好JDK和Android Studio。AndroidKiller下载地址:链接:https://pan.baidu.com/s/1VBlB6-i33Gw48Bscruo4BA 提取码:2bytAndroidKiller的反编译是基于Apktool,一般需要更新到最新的Apktool。Apktool下载地址:https://github.com/iBotPeaches/Apktool/releases把下载的jar包放到AndroidKiller安装目录\b原创 2020-11-30 23:32:31 · 1928 阅读 · 1 评论 -
adb查看已安装的apk版本号
windows系统下,使用adb查看微信版本号:com.tencent.mm是package。adb shell dumpsys package com.tencent.mm | findstr versionName输出结果: versionName=7.0.4原创 2019-04-28 10:27:14 · 21618 阅读 · 3 评论 -
Frida两种操作模式和操作APP的两种方式
Frida两种操作模式操作模式说明CLI命令行Javascript脚本注入进程RPCPython进行Javascript脚本注入Frida操作APP的两种方式方式名称方式说明CLI下启动方式spwan将启动APP的权利交由Frida来控制。不管APP是否启动,都会重新启动APP。-f参数指定包名attach建立在目标APP已经启动的情况下,Frida通过ptrace注入程序从而执行Hook的操作不加-f参数...原创 2021-09-01 17:38:35 · 2369 阅读 · 0 评论 -
Ubuntu adb devices 第8台手机通过MTP无法调试和打开设备
Ubuntu adb devices 第8台手机通过MTP无法调试和打开设备原创 2021-04-16 18:39:28 · 496 阅读 · 0 评论 -
反编译 APK
apktool 获取资源文件资源文件获取,可以提取出图片文件和布局文件进行使用查看。下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/APK文件无非就是一个zip压缩包,但是直接用unzip命令解压,会增大编译源,从而无法进行下一步的查看或反编译。apktool就是扮演这么一个角色,可以加压缩,并且可以正常解码文件。apkt...原创 2018-10-17 16:26:29 · 3228 阅读 · 0 评论 -
Android通知
通知能提醒我们。Android提供了强大的通知功能,现在创建一个简单的通知测试项目:NotificationTest添加依赖通知需要依赖support-compat,以后可能更多的使用AndroidX。dependencies { implementation "com.android.support:support-compat:28.0.0"}创建活动要创建两个活动,一...原创 2019-06-21 10:30:39 · 510 阅读 · 5 评论 -
Android逆向:AndroidStudio JNI编写SO
本文是在这篇博客的基础上开发的so。另外,也可以自己从头开发Native C++应该更简单一些,不会有这么多坑。JNI(Java Native Interface),他是java平台的特性,不是安卓系统提供的。他定义了一些JNI函数,来让开发者可以通过调用这些函数来实现java代码调用C/C++代码。C++实现用Java实现逻辑package com.lilongsy;public class TestJNI { static { System.loadLibrary(原创 2020-12-04 11:43:12 · 485 阅读 · 0 评论 -
Android文件存储
AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.filepersistencetest"> <appl...原创 2019-06-12 17:54:29 · 240 阅读 · 0 评论 -
Frida调用静态函数和非静态函数
调用静态函数可以直接调用,不用`implementation`再去定义。调用非静态函数需要用`choose`去搜索实例,再从结果实例里调用非静态函数,无需手动触发了。原创 2021-12-31 18:25:40 · 4136 阅读 · 0 评论 -
通用的使用Frida绕过Android SSL
/* Android SSL Re-pinning frida script v0.2 030417-pier $ adb push burpca-cert-der.crt /data/local/tmp/cert-der.crt $ frida -U -f it.app.mobile -l frida-android-repinning.js --no-pause ...原创 2019-09-18 15:59:16 · 1940 阅读 · 0 评论 -
adb连接夜神模拟器
1、安装android-sdk,并加入PATH。2、安装夜神模拟器。3、连接adb connect 127.0.0.1:620014、查看adb devices原创 2018-10-16 17:56:23 · 2193 阅读 · 0 评论 -
Riru core is not installed
今天更新twrp和Magisk到最新版本,安装EdXposed时,报错提示需要安装Riru - core,但是在Magisk资源库里没有找到Riru - core,原因是手机不支持最新版的Riru,需要安装magisk-riru-v21.3这个版本,下载地址:https://github.com/RikkaApps/Riru/releases/download/v21.3/magisk-riru-v21.3.zip,通过MagiskManager的本地安装,选中magisk-riru-v21.3.zip原创 2020-12-09 18:32:31 · 5036 阅读 · 1 评论 -
frida.InvalidOperationError: script has been destroyed
环境$ pip list | findstr fridafrida 15.1.14frida-tools 10.4.1# adb shell# su# cd cd /data/local/tmp/# ./frida-server-15.1.14-android-arm64 --version15.1.14报错C:\Users\xx>objection -g com.xx.xx原创 2021-12-20 17:03:24 · 5832 阅读 · 0 评论 -
Android adb push后相册没有立马更新,需要刷新media库
移动端的Android测试总是少不了一些adb命令的操作,稍微总结一下自己经常用到的命令。例如:adb无法安装debug包,提示Failure [INSTALL_FAILED_TEST_ONLY],怎么办?莫慌,加个-t参数即可$ adb install -t debug.apk这一点在adb的说明中有明确的提示, -t 即表示允许test package$ adb......app...原创 2018-10-12 17:36:56 · 5225 阅读 · 1 评论 -
Frida调用系统的类和函数
如果要打开一个Activity,可以用系统自带的startActivity。具体如何调用,可以去http://aospxref.com/查看具体的Android源码。调用方法跟普通的方法一样。function call_startActivity() { Java.perform(function() { var ActivityThread = Java.use("android.app.ActivityThread"); var application原创 2021-12-29 11:47:13 · 1193 阅读 · 0 评论 -
Appium服务器初始化参数(Capability)
键描述值automationName自动化测试的引擎Appium (默认)或者 SelendroidplatformName使用的手机操作系统iOS, Android, 或者 FirefoxOSplatformVersion手机操作系统的版本例如 7.1, 4.4deviceName使用的手机或模拟器类型iPhone Simulator, i...原创 2018-10-11 11:34:30 · 2918 阅读 · 0 评论 -
objection常见用法
objection在Frida的基础上实现了很多具体功能,包括重打包、交互等,支持Android和IOS两大平台,可以快速完成内存搜索、类和模块的搜索、方法Hook以及打印参数、返回值、调用栈等常见功能,从海量代码中定位关键函数。原创 2021-09-05 13:09:31 · 1880 阅读 · 0 评论 -
adb命令详解
一、如何找到adb?安装夜神安卓模拟器后,电脑桌面会有“夜神模拟器”的启动图标,鼠标右键–打开文件所在的位置,就会进入***\Nox\bin,比如小编的路径是C:\Program Files (x86)\Nox\bin,然后可以在该路径下找到nox_adb.exe二、如何连接设备?首先需要进入\Nox\bin路径的cmd窗口,如何进入?方式一:继续上述的步骤,进入\Nox\bin目录,然后...原创 2018-10-25 11:15:03 · 838 阅读 · 0 评论 -
adb获取当前页面的UI布局层次结构
获取当前应用的activity屏幕上所有控件的UI布局层次关系并保存在xml文件里面,可以执行下面命令:adb shell uiautomator dump /sdcard/ui.xml实质是调用了Android系统下的/system/bin/uiautomator.jar的dumpWindowHierarchy方法。参考:http://android-doc.github.io/tools/help/uiautomator/index.htmlhttp://android-doc.github原创 2021-06-12 16:11:19 · 5448 阅读 · 1 评论 -
OLLVM指令替换和虚假控制流程
OLLVM指令替换常见的替换方式:a = b - (-c)a = -(-b + (-c))r = rand (); a = b + r; a = a + c; a = a - rr = rand (); a = b - r; a = a + b; a = a + rOLLVM虚假控制流程IDA分析特征:x、y开头的全局变量,未初始化(一般是LDR加载),但被IDA识别成可能有值。IDA查看Exports导出函数时,会看到很多x、y开头的全局变量,可以帮助我们分析。参考https://原创 2022-01-15 11:37:33 · 421 阅读 · 0 评论 -
Android内容提供器-读取通讯录
要访问安卓手机里的通讯录、短信、媒体库等,要用内容提供器,要用到ContentResolver类,通过Context的getContentResolver()就可以获取到该实例,该实例可以增删查改。测试小实例:AndroidManifest.xml 配置用到的权限<?xml version="1.0" encoding="utf-8"?><manifest xmlns:a...原创 2019-06-14 16:35:38 · 787 阅读 · 0 评论