小龙在山东
本博客为个人整理的技术笔记,仅用于学习。
展开
-
基于VEH的无痕HOOK
这里的无痕HOOK指的是不破坏程序机器码,这样就可以绕过CRC或MD5的校验。VEH利用了Windows的调试机制和异常处理,人为抛出异常,从异常的上下文中获取寄存器信息。原创 2024-08-09 23:00:00 · 323 阅读 · 0 评论 -
基于minhook的Windows HOOK
MinHook是一个基于微软Detours技术的可移植Hook库,它允许开发者在运行时更改函数定义,而无需修改原始函数代码。原创 2024-06-18 23:00:00 · 536 阅读 · 0 评论 -
基于detours的Windows Hook
Detours是一个用于在Windows上监视和检测API调用的软件包。Detours 是一个由 Microsoft Research 开发的库,它允许开发人员在运行时动态地拦截(或“钩子”)Windows API 函数调用。这对于诸如调试、日志记录、模拟、扩展或修改应用程序行为等任务特别有用。通过使用 Detours,开发者可以透明地替换任何已存在的函数,同时保持其原始功能(如果需要)的可用性。原创 2024-06-19 23:45:00 · 493 阅读 · 0 评论 -
Frida查看运行环境、进程、线程、模块、内存、拦截器、汇编代码
这里以winmine扫雷程序为例,加载的文件是info.js,运行环境从默认的QJS改为了V8。原创 2024-07-19 19:36:05 · 373 阅读 · 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 · 1434 阅读 · 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 · 23523 阅读 · 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 · 349 阅读 · 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 · 1544 阅读 · 0 评论 -
qpython3:安卓上运行Python
简介QPython3是一个在Android上运行Python3脚本引擎,它整合了Python3解释器、Console、编辑器和SL4A库。可以让你在Android设备上运行Python语言开发的程序。它就是Android上的Python!此外,它提供了开发工具能让你在Android设备上方便地开发Python项目。还有另外一个版本QPython,支持Python2.7。【主要功能】支持A...原创 2018-11-07 16:24:29 · 19346 阅读 · 4 评论 -
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 · 3386 阅读 · 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 · 1405 阅读 · 0 评论 -
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 · 386 阅读 · 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 · 1261 阅读 · 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 · 930 阅读 · 0 评论 -
Android逆向:反编译工具JEB
下载安装下载地址:https://www.pnfsoftware.com/下载的是一个zip压缩包,绿色安装,解压到相应的目录就算是安装好了。双击目录下的对应系统的shell/bat可执行文件,打开JEB:使用打开APK,可以查看树状图:可以看到smali代码。在MainActivity上,右键解析,可以看到Java代码:双击Manifest即可查看AndroidManifest.xml:...原创 2020-12-08 10:07:10 · 1677 阅读 · 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 · 1166 阅读 · 0 评论 -
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 · 4267 阅读 · 0 评论 -
Python requests.exceptions.ProxyError: HTTPConnectionPool [WinError 10061] 由于目标计算机积极拒绝,无法连接。
Traceback (most recent call last): File "D:\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen chunked=chunked) File "D:\Anaconda3\lib\site-packages\urllib3\connectio...原创 2018-10-12 09:43:21 · 10322 阅读 · 12 评论 -
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 · 2032 阅读 · 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 · 21892 阅读 · 3 评论 -
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 · 1635 阅读 · 0 评论 -
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 · 2719 阅读 · 0 评论 -
Ubuntu adb devices 第8台手机通过MTP无法调试和打开设备
Ubuntu adb devices 第8台手机通过MTP无法调试和打开设备原创 2021-04-16 18:39:28 · 551 阅读 · 0 评论 -
反编译 APK
apktool 获取资源文件资源文件获取,可以提取出图片文件和布局文件进行使用查看。下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/APK文件无非就是一个zip压缩包,但是直接用unzip命令解压,会增大编译源,从而无法进行下一步的查看或反编译。apktool就是扮演这么一个角色,可以加压缩,并且可以正常解码文件。apkt...原创 2018-10-17 16:26:29 · 3246 阅读 · 0 评论 -
PC浏览器Devtools调试安卓WebView网页
DevTools 是Chrome内置的 Web 开发工具。DevTools 是一组 Web 开发工具,显示在浏览器中呈现的网页旁边。DevTools 提供了一种用于检查和调试网页和 Web 应用的强大方法。甚至可以在 DevTools 环境中编辑源文件和创建网站项目。原创 2024-07-12 23:45:00 · 395 阅读 · 0 评论 -
关闭小米手机的adb安装提示
小米手机机每次adb安装apk都会弹安装提示,为了自动化测试,需要分两步两步来关闭adb安装apk提示。原创 2022-08-17 21:30:00 · 2205 阅读 · 0 评论 -
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 · 505 阅读 · 0 评论 -
Android通知
通知能提醒我们。Android提供了强大的通知功能,现在创建一个简单的通知测试项目:NotificationTest添加依赖通知需要依赖support-compat,以后可能更多的使用AndroidX。dependencies { implementation "com.android.support:support-compat:28.0.0"}创建活动要创建两个活动,一...原创 2019-06-21 10:30:39 · 530 阅读 · 5 评论 -
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 · 247 阅读 · 0 评论 -
Frida调用静态函数和非静态函数
调用静态函数可以直接调用,不用`implementation`再去定义。调用非静态函数需要用`choose`去搜索实例,再从结果实例里调用非静态函数,无需手动触发了。原创 2021-12-31 18:25:40 · 4324 阅读 · 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 · 1982 阅读 · 0 评论 -
adb连接夜神模拟器
1、安装android-sdk,并加入PATH。2、安装夜神模拟器。3、连接adb connect 127.0.0.1:620014、查看adb devices原创 2018-10-16 17:56:23 · 2218 阅读 · 0 评论 -
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 · 6268 阅读 · 1 评论 -
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 · 5100 阅读 · 1 评论 -
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 · 5387 阅读 · 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 · 1250 阅读 · 0 评论 -
Appium服务器初始化参数(Capability)
键描述值automationName自动化测试的引擎Appium (默认)或者 SelendroidplatformName使用的手机操作系统iOS, Android, 或者 FirefoxOSplatformVersion手机操作系统的版本例如 7.1, 4.4deviceName使用的手机或模拟器类型iPhone Simulator, i...原创 2018-10-11 11:34:30 · 2944 阅读 · 0 评论 -
objection常见用法
objection在Frida的基础上实现了很多具体功能,包括重打包、交互等,支持Android和IOS两大平台,可以快速完成内存搜索、类和模块的搜索、方法Hook以及打印参数、返回值、调用栈等常见功能,从海量代码中定位关键函数。原创 2021-09-05 13:09:31 · 2026 阅读 · 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 · 5811 阅读 · 1 评论 -
adb命令详解
一、如何找到adb?安装夜神安卓模拟器后,电脑桌面会有“夜神模拟器”的启动图标,鼠标右键–打开文件所在的位置,就会进入***\Nox\bin,比如小编的路径是C:\Program Files (x86)\Nox\bin,然后可以在该路径下找到nox_adb.exe二、如何连接设备?首先需要进入\Nox\bin路径的cmd窗口,如何进入?方式一:继续上述的步骤,进入\Nox\bin目录,然后...原创 2018-10-25 11:15:03 · 933 阅读 · 1 评论