- 博客(311)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 Android 常用API自查表(一)
LIstViewpublic View getView(int position, View convertView, ViewGroup parent) { Holder holder; if (convertView == null) { holder = new Holder();··· convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); }}static c
2020-08-17 10:57:45
2821
1
原创 adb常用命令自查表
windows上面打印日志 一行命令就够了adb logcat | grep Wifi ;更多参考细节https://blog.csdn.net/tscying/article/details/79317537
2018-08-16 10:26:09
3607
1
原创 CarService的创建与signal的传递三(数据模拟)
本文记录了在Android Automotive系统中配置OEM Vehicle HAL(VHAL)服务时遇到的问题及解决过程。主要包含以下内容: 服务启动报错分析:日志显示IVehicle服务未能正常启动,提示可能未安装或配置错误。 SE Linux权限配置:需要在file_contexts中正确设置hal_vehicle_default_exec的标签,并注意格式要求。 关键配置项: 在car.mk中添加VHAL服务包和配置文件 确保vehicle_props_oem.json文件路径与代码中的调用路径
2026-07-30 18:12:04
75
原创 CarService的创建与signal的传递二
本文主要分析了Android汽车服务(CarService)的实现架构。文章指出CarServiceImpl是服务的真正启动者,而ICarImpl是核心实现类。重点分析了VehicleHal的初始化过程,包括遍历注册的服务和Vehicle属性配置。同时介绍了HAL层的实现位置(VehicleService.cpp)和关键方法getAllPropConfigs的具体实现。最后提到可以通过CarServiceTest进行应用层测试。整体展现了从服务层到HAL层的汽车服务调用链路。
2026-07-29 17:56:03
257
原创 CarService的创建与signal的传递
本文梳理了Android汽车服务(CarService)的启动流程:1) 由init.rc触发Zygote进程初始化;2) Zygote通过反射机制启动SystemServer;3) SystemServer检测到automotive系统特性后,通过SystemServiceManager启动CarServiceHelperService;4) 最终通过Intent启动com.android.car包中的CarServiceImpl。整个过程涉及多次跨进程通信和反射调用,关键节点通过boot.car_ser
2026-07-29 00:10:05
213
原创 OWASP 移动应用安全之授权(MASTG-DEMO-0090)
文章摘要: OWASP MASTG(移动应用安全测试指南)为移动应用安全提供系统化指导,涵盖MASVS(安全标准)、MASTG(测试手册)和MASWE(漏洞枚举)。以指纹认证漏洞(MASVS-AUTH/MASTG-DEMO-0090)为例,通过Frida脚本伪造BiometricPrompt的认证结果,绕过未绑定硬件的软认证,暴露了仅依赖软件验证的风险。漏洞复现步骤包括:注入脚本、触发验证、成功绕过。同时,使用Semgrep静态扫描工具可检测此类问题,验证了MASTG方法论在移动安全领域的实用性。 (字数:
2026-07-23 16:02:45
80
原创 模型咋微调?零成本教你玩转大模型微调
本文介绍了如何在资源有限的情况下微调Qwen2.5-3B模型。主要内容包括: 环境准备:使用Unsloth和vLLM工具,通过4bit量化技术将3B模型内存需求降至2GB,适合Colab免费版运行。 模型加载:从HuggingFace获取预训练模型,配置LoRA适配器进行高效微调,支持梯度检查点优化。 训练流程:使用GSM8K数据集,定义5种奖励机制(正确性、格式等),通过GRPO强化学习优化模型推理能力。 部署应用:最后将微调后的模型转换为GGUF格式,支持本地部署测试。 全文提供了详细的代码示例,包括环
2026-06-30 15:47:55
291
原创 什么?手机没声音咋听音乐?
事出有因,项目上一个没有喇叭得主机需要测试声音爆破音得问题,故出此下策,你还别说很好用。下载谷歌paly上的APP 推荐地址https://apkcombo.com说明:这个界面很好理解 ,这个应用既可以做 服务器也可做客户端,即播放器,怕你不理解 特点改成播放器
2026-06-29 15:03:48
188
原创 0代码实现ESP32远程开关灯泡
本文介绍了在WSL的Ubuntu 24.04系统中安装ESPHome的完整步骤指南。主要内容包括:创建Python虚拟环境,安装ESPHome依赖包,验证安装版本,启动dashboard服务(localhost:6052),以及通过YAML配置文件部署固件到ESP8266设备。文章还提供了代理环境配置方法(设置http_proxy等变量)和无线OTA升级指令(--device参数)。最后展示了ESPHome dashboard界面、设备配置页面和日志输出效果图。所有操作均在WSL的Ubuntu 24.04发
2026-06-28 01:58:36
85
原创 黑苹果26.5.1安装到IOS开发,轻松上手,低成本方案
本文分享了使用Opcore-Simplify工具简化黑苹果安装过程的经验。作者曾花费一天时间在不兼容的固态硬盘上安装失败,后通过GitHub的Opcore-Simplify项目(参考B站司波图教程视频)成功安装。安装后需使用Heliport解决WiFi连接问题。作者在机械硬盘上运行流畅,体验远优于VM虚拟机,并附带了相关工具网盘下载链接(提取码:qbwy)。整个安装过程验证了该方法的有效性,适合开发者尝试。
2026-06-28 01:00:11
832
原创 IOS + QT + Purple Pi OH RK3566 实现远程开关灯泡功能
本文展示了一个基于UDP通信的嵌入式系统实现方案,采用Qt5框架开发,工具链包含Xcode、VSCode、Hermes和QtCreator,支持通过MobaXTerm进行Qt应用投屏。系统实现了GPIO控制(引脚15设置为输出模式)和UDP服务端(监听端口10001),运行日志显示存在OpenGL驱动加载问题。项目提供了硬件规格书(附PDF链接)和实现效果图,作者表示可协助完成毕设开发。方案适用于需要远程设备控制和数据传输的嵌入式应用场景。
2026-06-23 18:34:57
157
原创 Hermes+(Cloudflare OR VPS )+pantherx2 100块搭建个人AI助理
褒贬不一,不一定非要买这个,个人买了一个高性能的,感觉还有很大利用空间。,选择对应系统,一键执行,非常简单,缺点是经常502,哈哈。主要是 frps config。主要是frpc config。frps 服务端下载。
2026-06-16 10:39:50
275
原创 andoird13 + bazel 编译 Linux kernel
本文介绍了如何为Android 13模拟器编译和替换Linux内核的完整流程。主要内容包括: 确定当前模拟器内核版本(5.15.41-android13) 从Google官方仓库下载对应内核源码(common-android13-5.15分支) 修改内核配置,将virtio_blk和virtio_scsi驱动改为模块化编译 使用Bazel工具编译x86_64架构内核 替换Android源码中的预编译内核(prebuilts/qemu-kernel/x86_64/kernel-qemu) 启动模拟器验证新内核
2026-06-15 22:01:07
456
原创 BootAnimation+SE+开机MP4动画播放
本文记录了Android系统开机动画(bootanimation)的相关调试过程。主要内容包括:1)编译bootanimation模块;2)验证视频编码器可用性,通过adb推送并播放测试视频;3)修改系统属性service.bootanim.exit控制动画退出;4)手动启动bootanimation可执行文件并观察日志输出;5)获取系统属性状态;6)检查生成的libbootanimation.so文件时间戳。调试过程涉及adb命令、属性设置、日志分析等多种技术手段,为Android开机动画的定制和调试提供
2026-06-10 16:42:38
315
原创 白帽子之逆向Crackme2.apk - 反调试(二)
这篇文章摘要了反调试技术的精妙实现,重点分析了三个核心防御机制: 双重陷阱设计 通过校验 unlock 函数前4字节的校验和(对调试断点极为敏感) 校验失败会修改关键状态标志(g_status_key),导致后续流程产生连锁错误 时间干扰防御 利用 nanosleep 系统调用制造时间差,干扰调试器的时间检测 形成逻辑死循环,阻止正常附加调试进程 自毁式加密 g_status_key 参与类名/方法名的动态解密流程 采用Fisher-Yates洗牌算法和NEON指令集混淆关键字符串 任何调试修改都会导致后续
2026-06-05 19:29:45
675
原创 白帽子之逆向Crackme2.apk - 反调试(一)
这篇文章分析了一个名为"igio90.crackme2"的Android应用的反调试技术。该应用采用双进程设计(main和launcher进程),通过native层重启自身来防止Java层Hook和动态调试。作者通过以下步骤破解了这种保护: 使用Frida拦截MainActivity的init方法,阻止应用自毁重启 通过jdwp调试launcher进程(PID:10780) 使用IDA附加到目标进程进行动态分析 最终目标是Hook MainActivity的unlock方法 关键点包括:识别双进程机制、修复
2026-06-05 15:58:01
936
原创 IDA Pro AliCrackme SO动态调试夺旗
本文介绍了对Android应用com.yaotong.crackme进行逆向分析的详细过程。通过静态分析发现关键字符串g_strRightKey,并尝试使用动态调试工具IDA和jdb进行调试,但遭遇反调试机制导致应用闪退。文章探讨了多种反调试手段,包括修改调试器名称/端口、检查TracerPid状态以及使用Frida工具失败的经历。最后尝试通过CeServer和内存映射分析来绕过反调试,获取关键模块libcrackme.so的地址信息。整个分析过程展现了Android逆向工程中常见的调试技巧与反调试对抗技术
2026-06-04 17:35:19
317
原创 白帽必修课 Burp Suite + 雷电 抓包
摘要: 本文介绍了使用Burp Suite(BP)进行Android抓包的配置流程。首先设置BP代理并勾选监听选项,然后在雷电模拟器中配置WLAN代理指向BP。访问http://burp下载证书,通过ADB将证书推送到系统目录并修改权限,重启后即可正常抓包。相较于Fiddler4,BP的重放器、插件和爆破工具更强大,推荐使用。关键步骤包括代理配置、证书安装及系统权限设置。
2026-06-03 17:35:41
189
原创 白帽子之逆向一款打卡软件
进入 assets/apps/__UNI__XXXXX/www/ 目录(__UNI__XXXXX 是应用的唯一标识符),你会看到大量 .js 文件,其中 app-service.js 或 manifest.json 是关键入口。函数的逻辑已经暴露无遗,那么如何修改它就完全取决于你的具体需求和技术手段了。函数直接写死定位信息即可。这里的思路非常简单:干掉。
2026-06-03 15:03:34
257
原创 Audio openOutputStream 的前世今生
在底层初始化时,高通驱动 audio_hw_hal.cpp 会将自定义函数 adev_open_output_stream 的地址,赋值>>给标准 C 结构体的 open_output_stream 函数指针。当 HIDL 服务端的 mDevice(原生 C 指针)调用该指针时,由于地址已绑定,CPU 便直接>跳转到高通驱动中执行 adev_open_output_stream()。为了看清第 2 步到第 3 步之间,HIDL 客户端是如何通过把请求发送给服务端并执行。
2026-06-02 18:03:42
286
原创 白客必修课(二)
本文展示了多种CTF夺旗挑战的解题方法,包括: Java逆向:直接运行程序获取密码picoCTF{w4rm1ng_Up_w1tH_jAv4_000HPpgh7Ph} SVG文件分析:用strings和grep提取隐藏的</tspan>标签内容 ZIP文件搜索:通过unzip -p管道快速定位压缩包中的flag字符串 NC快速应答:建立本地服务端直接回显flag Grep精准匹配:使用正则picoCTF{[^}]*}提取flag格式内容 PHP代码执行:通过参数注入和base64编码执行系统命令读取敏感文件
2026-06-01 19:32:34
188
原创 CC交互式理解Audio HAL
这篇文章梳理了Android音频HAL层的核心交互架构,主要涉及三个关键部分: audio.h - 作为接口规范,定义了音频HAL的标准函数指针和结构体 audio_hw.c - 高通实现的具体硬件驱动代码,编译为audio.primary.qcom.so动态库 AudioFlinger - 系统音频服务,通过hw_get_module加载并调用HAL接口 重点分析了HAL模块的入口机制: 通过HAL_MODULE_INFO_SYM结构体声明模块信息 hal_module_methods定义了模块的open
2026-06-01 17:39:28
255
原创 IDA pro动态调试修改16进制数操作
本文介绍了动态修改字符串值的两种方法:1)使用Python脚本将字符串转换为16进制ASCII码(如"i love android"转为"69 20 6c...");2)在16进制编辑器中直接修改数值。操作步骤包括生成16进制代码、在编辑器中定位目标位置进行修改,最后应用更改。这种方法适用于需要快速修改字符串内容的场景,特别是当字符串以16进制形式存储时。文中配有操作界面截图,直观展示了修改前后的对比效果。
2026-05-27 12:25:49
79
原创 IDApro夺旗之AES加密追踪
本文展示了通过IDA Pro逆向分析Android应用获取AES密钥的过程。首先使用IDA动态调试定位到关键JNI函数,通过内存dump提取出16字节密钥(0x0B16212C...A5A6)。然后编写Python脚本验证密钥有效性,使用AES-ECB模式成功加密"Hello World"数据。接着通过adb连接设备进行动态调试,在IDA中设置断点并编写IDAPython脚本读取寄存器值。最后通过C代码实现AES加密验证,确认密钥正确性。整个过程涉及逆向分析、动态调试和密码学验证等技术。
2026-05-22 18:54:42
1087
原创 Frida +FW授权弹窗HOOK(打开潘多拉魔盒)
本文介绍了如何通过Frida工具hook Android权限控制器的GrantPermissionsActivity.onCreate方法,实时监控应用权限申请弹窗。当权限弹窗出现时,脚本会捕获并显示请求的权限列表,包括通过Intent传递的权限信息。作者提供了详细的Frida命令和JavaScript脚本示例,并提醒使用Attach模式避免系统崩溃。该方法可用于深入分析Android权限机制,为系统开发提供新的调试思路。环境搭建参考了相关博客,脚本兼容Android 13原生代码。
2026-05-22 11:30:01
108
原创 Framework之Launcher小窗开发
本文介绍了在Android车载系统中实现小窗功能的技术方案。主要内容包括: 通过DisplayManager的createVirtualDisplay接口创建虚拟屏幕 将指定应用和Surface绑定到同一个WindowManager上 设置surface触摸事件,通过displayid控制窗口显示 具体实现步骤: 修改Android.bp文件添加依赖 创建SmallWindowService后台服务处理弹窗请求 新增应用白名单机制 修改Launcher的launchApp函数
2026-05-20 19:13:11
293
原创 半小时搞定C#开发
本文分享了快速创建C#控制台应用的教程。作者出于致敬和安全教学目的,介绍了在VSCode中半小时搭建C#开发环境的方法:安装C# Dev Kit和.NET SDK,使用快捷指令新建项目,编写Hello World程序并通过Build生成exe文件。文章提供了GitHub代码仓库地址,强调以效率为导向,适合初学者快速上手C#开发。
2026-05-18 11:22:43
82
原创 IDA pro 2048 直接满分
本文通过分析2048游戏的ARM汇编代码,展示了如何修改游戏逻辑实现作弊效果。首先识别Thumb模式下的关键函数addBoxAtIndex,通过逆向分析发现控制方块数值的寄存器R2。利用在线汇编转换工具生成修改指令MOV R2,#8,使用WinHex工具定位并修改so文件中的对应字节。最后重新签名安装APK,验证修改效果——每次生成方块固定为256(2^8),实现快速通关。文中还附有ARM汇编基础指令速查表,帮助理解寄存器用途和常见操作。
2026-05-15 21:15:45
936
原创 IDA pro + firda 2048 我要hook得分!
本文介绍了通过Frida框架修改2048游戏分数的技术方法。首先通过IDA Pro分析游戏SO文件,找到关键函数_ZN9MainScene13increaseScoreEi的偏移地址0xA0B7C,结合SO基地址0xd1302000计算出实际内存地址(需+1标记Thumb指令)。然后使用Interceptor.attach监听该函数,在onEnter回调中将原始分数参数放大10倍,实现游戏分数快速增长的效果。该方法展示了如何通过内存地址计算和函数Hook技术修改游戏参数,最终实现了游戏分数的10倍增长效果。
2026-05-15 18:27:28
163
原创 IDAPro 2048 静态分析(我得分8千!)
摘要: 本文记录了逆向分析2048游戏的过程,重点定位分数获取函数。通过IDA Pro分析字符串引用,使用快捷键Shift+F12搜索"2048"并跳转到相关代码段。在ARM架构下尝试Hook getScore函数失败,发现雷电模拟器为x86_64架构。转用AVD时遇到arm64镜像兼容性问题,最终通过真机调试。使用GG工具获取内存地址后,直接修改内存值(如写入8828分)。文中包含详细的操作步骤、错误排查及工具使用技巧(如scrcpy投屏优化),为类似逆向工程提供参考。 (字数:149
2026-05-13 17:45:56
239
原创 ptrace 内存追踪
本文介绍了使用GameGuardian进行内存分析的技术流程。首先通过jadx获取目标应用包名,然后使用/proc/[pid]/maps定位目标模块基地址(如libIHook.so)。通过计算本地函数偏移量,可推算出远程进程中的函数地址。内存修改技术包括通过mem文件操作内存,支持模糊搜索(值变化追踪)和精确搜索(数据类型判断),并演示了修改变量的具体操作。该方法适用于游戏修改和内存分析场景。
2026-05-12 20:39:12
246
原创 Firda+python(司令)+js(尖兵)主动夺旗
本文展示了使用Frida工具对Android应用com.example.mlseriesdemonstrator进行动态分析的完整过程。主要内容包括:1) 通过adb获取目标进程PID;2) 使用Frida连接模拟器进程;3) 编写Hook.js脚本实现两种Hook方式:直接Hook MainActivity的onCreate方法获取Flag,以及通过Java.choose轮询内存主动查找实例获取Flag;4) Python脚本封装Frida命令实现自动化注入。整个过程演示了Frida在Android逆向工
2026-05-12 19:38:40
68
原创 uv+frida+hook 夺旗
本文介绍了使用Frida进行Android应用动态分析的完整流程。首先从GitHub获取对应版本的Frida-server,通过adb命令确定模拟器架构后下载匹配版本。详细说明了Python虚拟环境的搭建和Frida工具的安装步骤,包括推送到Android设备并启动服务的操作。重点演示了核心Hook指令的使用方法,以及如何处理Xposed与Frida的冲突问题。最后展示了成功的注入案例,包括主动调用私有方法获取Flag的实现代码片段。整个过程涵盖了版本匹配、环境配置、服务启动、脚本注入等关键环节,为Andr
2026-05-12 16:43:55
287
原创 Xposed之雷电5+Android 7.1.2 Xposed 89(古早安装)
本文介绍了雷电模拟器v4.0.79.2的安装配置过程,重点解决了WSL与雷电模拟器的冲突问题,提供了关闭/开启Hyper-V的指令。同时详细记录了Xposed框架的安装步骤,包括解压、文件复制、权限设置等操作脚本。由于手动安装Xposed框架失败,作者转而使用多开鸭工具,并展示了相关操作截图。最后提供了模拟器启动日志作为参考,其中显示Xposed框架初始化成功但无法加载模块。全文包含具体命令、下载链接和错误提示,为安卓模拟器环境搭建提供了实用参考。
2026-05-12 14:33:05
331
原创 LsPosed如此简单
本文展示了使用Xposed框架Hook Android应用的方法。通过实现IXposedHookLoadPackage接口,代码成功拦截了目标应用"com.example.mlseriesdemonstrator"中MainActivity的onAlgoSelected方法调用。日志显示,该Hook能够捕获用户点击事件(如"Face detection"等选项),并通过设置param.setResult(null)实现点击拦截功能。代码演示了Xposed模块开发的核心
2026-05-11 19:30:21
290
原创 白帽子必修课-筑基篇(从此你将无所不能)
本文摘要了渗透测试和环境搭建的关键技术点:1)通过DirtyFrag漏洞利用工具一键获取权限;2)Android靶场搭建与WSL代理配置方法;3)IDA字符串提取和IP反查技巧;4)常见漏洞利用手法包括命令执行、路径穿越、XXE注入、文件上传截断、CSRF攻击;5)图片马制作和eval代码注入;6)Vulhub漏洞环境快速搭建指南,涵盖Spring等常见漏洞复现。文章提供了从环境配置到漏洞利用的完整技术链,包含具体命令和操作截图,适合安全研究人员快速查阅关键攻击技术。(149字)
2026-05-09 18:36:36
225
原创 wsl + opengrok 部署
本文摘要:介绍了在ARM64架构系统上部署OpenGrok代码搜索引擎的关键步骤及注意事项。主要包括:1)安装适配ARM64的OpenJDK 21;2)配置OpenGrok索引器参数(需调整内存设置避免OOM);3)验证源码路径和索引数据目录;4)修改Tomcat配置以正确加载OpenGrok配置文件;5)确保JVM环境变量指向ARM64版本的JDK路径。特别强调x86_64和ARM64架构的路径差异问题,需根据实际系统架构调整所有JDK相关路径。最后通过启动Tomcat服务完成部署,并提供日志监控方法。
2026-04-29 15:48:17
88
原创 KaihongOS桌面版安装教程
本文分享了X86架构鸿蒙系统的安装体验。作者使用rufus工具完成安装,指出安装引导系统基于Debian且UI美观。系统评分为5/10分,主要问题包括应用匮乏(无vim/ssh/浏览器)、功能缺失(声音/相机/截图/壁纸设置等)以及办公功能不足。优点为内存占用低、预装AI数字人和浏览器流畅。文末建议普通用户暂不安装,开发者可适配研究,并附有效果图展示。安装包和详细教程可参考开发者官网链接。
2026-04-01 18:53:49
1087
1
MVP一键生成模板~
2018-02-06
MFC基础demo加Cedit常用操作
2018-09-06
加载动画帧动画所需的loading动态图
2020-10-20
Android逆向学习入门项目-当前Activity
2018-07-12
coroutines.rar
2019-07-01
小米手机 获取偶发性获取到locale 为 en 概率性设置语言出错
2021-12-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅