![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android平台
文章平均质量分 76
helloworddm
这个作者很懒,什么都没留下…
展开
-
Android音视频编码(3)
继续中的内容,在上一篇文章中,对视频解码和编码进行了详细的介绍,具体可参见。原创 2024-01-21 11:59:52 · 345 阅读 · 0 评论 -
Android分段进度条(继承View实现)
titles.add("process1"); titles.add("process2"); titles.add("process3"); titles.add("process4"); Set indexSet = new HashSet(); indexSet.add(0); indexSet.add(1); nodeProgressView.show原创 2023-12-20 13:21:41 · 582 阅读 · 0 评论 -
lldb安装以及调试Android程序
Android Studio自带lldb,安装过程不再赘述。lldb官网。原创 2023-09-19 11:40:01 · 642 阅读 · 0 评论 -
Android 编译和使用libpng
使用上面的命令编译报错,从错误中推测应该需要zlib依赖,还需要下载zlib,由于Android自带zlib库,遂使用cmake进行。修改libpng中CmakeLists.txt中的add_library,修改为动态共享库。从上面的信息中可以看出libpng是一个历史悠久的处理png的库,需要zlib依赖。这个路径是clone下来的libpng中CmakeLists.txt所在的目录。更多内容,欢迎关注我的微信公众号: 半夏之夜的无情剑客。使用下面的命令可以直接编译为静态库。原创 2023-09-08 09:46:40 · 406 阅读 · 0 评论 -
Android资源文件以及混淆技术
Android资源文件以及混淆技术转载 2023-08-23 13:16:28 · 137 阅读 · 0 评论 -
Frida高级篇-调试
心仪预备条件安装node和npm代码提示TypeScript优点JavaScript的一个超集,扩展了JavaScript的语法。加强代码可读性。明确参数类型,代码语义更清晰易懂。更友好、更精准的代码补全提示。更贴近面向对象编程的编写习惯,利于模块化和复用。以前用 js 写的脚本也可以被 ts 直接引用,不会浪费。Frida使用TypeScriptfrida-compile將ts 编译为 可被 frida 加载的 js 文件(1)Github 直接下载大胡子的示例仓库: htt.原创 2021-10-19 19:43:54 · 1388 阅读 · 0 评论 -
编程入门(劝学)
【作者】荀子 【朝代】先秦 君子曰:学不可以已。 青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮,其曲中规。虽有槁暴,不复挺者,輮使之然也。故木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。 故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。干、越、夷、貉(hé)之子,生而同声,长而异俗,教使之然也。诗曰:“嗟(jiē)尔君子原创 2018-01-21 15:46:57 · 563 阅读 · 0 评论 -
Android源码篇-深入理解粘性广播(1)
广播作为Android的四大组件之一,广播的用途还是非常广泛的。广播是一种同时通知多个对象的事件通知机制,顾名思义也能大概知道是这个意思,类似日常生活中的大喇叭广播,多个人可以受听,人们大都只关心和自己有关的事情,而对和自己无关的事情进行屏蔽,Android中的广播和这个差不多。...原创 2021-08-24 09:39:44 · 1560 阅读 · 0 评论 -
Android 11省电模式开启
流程图原创 2021-05-21 10:20:18 · 1164 阅读 · 3 评论 -
Fiddler Everywhere && HTTP
Fiddler Everywhere中图标The Live Traffic List uses the icons listed below to provide additional context for each recorded session. Hover on an icon on an entry in the Live Traffic list to trigger an explanatory tooltip.完整版可参考: https://docs.telerik.com/fidd原创 2021-03-20 11:39:55 · 1625 阅读 · 0 评论 -
神经网络学习之矩阵
矩阵大一的时候学习的吧,忘记了,感觉很久远了,我以为毕业之后再也用不到了,直到我了解了神经网络。以下内容是百科的解释:在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。如下是一个m*n的矩阵。[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn]\begin{bmatrix}{a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\{原创 2021-02-05 00:07:08 · 1359 阅读 · 0 评论 -
Android apk动态调式以及UI定位
工具Android Studio,后面的内容简称AS.Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。系统app调试开发系统app的时候,大多数基于makefile的,并且签名是platform的,因此不能直接通过源码进行调试。本文不打算拿系统app来讲解如何调试,不过会使用这里的调式技巧,那么调试系统app也很简单了(系统ap原创 2021-01-23 15:19:59 · 622 阅读 · 2 评论 -
Frida高级篇-Stalker(1)
快捷键的区别三者的区别Ctrl+C :强制中断程序,程序无论运行哪里都停止。Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。Ctrl+Z :暂停程序,在进程中维持挂起状态。引用别人的说法:1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。2、Ctrl+Z 是把当前的程序挂起,暂停执行这个程序,比如你正在mysql终端中,需要出来搞点其他的文件操作,又不想退出mysql终端(原创 2021-01-14 12:44:17 · 2137 阅读 · 0 评论 -
Frida工作原理
在调试和验证Frida的Stalker功能的时候,需要频繁暂停程序查看效果。因此这里是首先介绍下Linux下的暂停。在用Linux的时候,都比较熟悉下面这几中暂停方式。三种暂停的区别三者的区别Ctrl+C :强制中断程序,程序无论运行哪里都停止。Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。Ctrl+Z :暂停程序,在进程中维持挂起状态。引用别人的说法:1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctr原创 2021-01-13 22:25:47 · 3543 阅读 · 0 评论 -
App动态调试(1)-Radare2和lldb
为什么不用IDA,因为贵。为什么不用gdb,因为lldb的出现,取代gdb只是迟早的事情,可以说gdb是Depracated。在 Android逆向之ARM64静态分析对app的中的so进行了动态分析,这篇文章介绍两种动态调试的方式,一种是radare2,另一种是lldb。r2frida概术Radare2 and Frida better together. 两个强大的工具放在一起,必然会产生更为强大的能量,可以称为"Best Dynamic Debugging Tool ",最主要是免费。其本质原创 2020-12-08 20:15:30 · 837 阅读 · 0 评论 -
Java反射之实例构造
private static Object getInnerInstance(Test001 test001) { Object object = null; try { Class[] innnerClass = test001.getClass().getDeclaredClasses(); for (Class c: innnerClass){ if (c.getName().ind...原创 2020-12-05 11:34:55 · 395 阅读 · 0 评论 -
使用Radare2静态分析apk(2)
在Radare2静态分析apk(1) 对Radare静态分析apk进行了简单的介绍。补充以下:通过r2 apk://URI可以直接对apk中的dex进行分析。原创 2020-11-30 11:55:31 · 661 阅读 · 2 评论 -
Radare2进阶之破解
文章重点基于[CrackerMe03]。这是R2 CrackerMe系列的典型的一个,算是CrackerMe系列的一个分水岭。在前面介绍破解,主要是通过修改字节码的方式,当然所有的CrackerMe都可以使用此方式。不过,这篇文章介绍一些其他的方式,主要是基于代码逻辑进行破解以及使用Emulator进行破解。CrackerMe00现说一个最简单的CrackeMe00。查看字符串信息 rabin2 -z crackme0x00通过字符串信息,大概推断密码是250382。运行程序,输入250382,Pa原创 2020-11-29 20:27:32 · 783 阅读 · 1 评论 -
Radare2静态分析apk(1)
在逆向的世界中,有一个工具叫做IDA,它被称为神器,但是它的价格实在让人望而生畏(土豪例外)。正版的全平台下来估计要20w/年,貌似还是美元。当然了,网上有很多破解版的,这个看个人喜好,我不太习惯使用破解版的,一方面功能不全,另一方面,很不稳定。于是我就找到了一个替代IDA的工具-Radare2。个人认为除了在F5(decompiler)功能上有差距之外,其他地方两者很接近了。Radare2在 破解工具Radare2 中多Radare2进行了介绍,在 深入理解GOT覆写技术 系列文章中对Radare2在原创 2020-11-20 21:40:34 · 574 阅读 · 0 评论 -
Frida高级篇-Fiddler Everywhere手机抓包(绕过证书绑定限制)
在 抓包神器之Fiddler Everywhere及Wireshark 中讲解了Fiddler EveryWhere怎么抓取web的数据,这篇文章主要说怎么进行手机抓包以及绕过如何绕过ssl-pining技术实现抓包。纠正一个错误网上很多文章说,在进行手机抓包的时候,一定要保证手机和电脑在同一个局域网。这句话是不准确的,我认为这么说的基本上是两种情况:(1)人云亦云,别人这么说,我也这么说,应该不会错吧。(2)对抓包的原理不理解,甚至于什么是中间人攻击都不清楚。要实现抓包,需要的前提条件并不一定要原创 2020-11-15 20:32:45 · 4119 阅读 · 0 评论 -
免ROOT使用Frida(不修改源代码)
在 非ROOT环境下使用Frida及调试 中通过修改smail代码实现在非ROOT的情况下使用Frida。前面提到这种方式有一个明显的缺点就是要修改smali源代码。这篇文章主要来说怎样在不修改源代码的情况下在非ROOT情况下使用Frida。Frida-gadgetFrida的Gadget是一个共享库,可以在不适合Injected操作模式的情况下由要检测的程序加载。这可以通过多种方式完成, 例如:修改程序的源代码修补它或其一个库,例如 通过使用诸如insert_dylib之类的工具使用动态链接原创 2020-11-14 23:43:40 · 3884 阅读 · 0 评论 -
非ROOT环境下使用Frida及调试
设备Android版本: 9MIUI版本: 11.0.5稳定版手机型号: Redmi Note 8CPU信息:关于ROOTARMV8的引入以及Google对安全的重视,使得Android获取ROOT权限很难。那个仅仅依靠一个apk就能实现手机ROOT的时代基本上一去不返了。apk提权基于的是Android系统的漏洞,目前Android已经很完善了,寻找漏洞非常困难。目前获取ROOT基本都是通过刷安装包来实现。当然了Android模拟器可以很轻松获取ROOT权限。但是很多APP都对模拟器有检测,原创 2020-11-13 19:45:16 · 2878 阅读 · 0 评论 -
通过Wireshark分析HTTPS(1)
Wireshark过滤规则分析一次https连接还是这篇文章https://www.bilibili.com/read/cv7495834通过wireshark分析其中的一次https连接,过滤规则是ip.addr == 27.115.124.159(1)客户端发起SYN请求 seq = 0(2)服务器端进行确认 Ack=1 向客户端发起连接请求 seq = 0(3)客户端进行确认Ack = 1 经典的三次握手(4)客户端发送client hello(5)服务器端进行确认ACK(6)服原创 2020-11-08 00:21:42 · 1952 阅读 · 2 评论 -
抓包工具之Fiddler Everywhere以及Wireshark(1)
抓包工具有很多,比图Wireshark、tcpdump、Fiddler、Burp等。在burp Fiddler抓包软件(https://helloworddm.blog.csdn.net/article/details/98363056)对Burp和Fiddler进行了简单的介绍,同时讲解了在抓取手机数据报时如何配置证书。在黑客攻击-木马远程控制(3)对抓包的原理进行了介绍。 本文主要讲述Fiddler系列的另一个抓包神器-Fiddler Everywhere。Fiddler EverywhereFi原创 2020-10-29 20:28:57 · 1033 阅读 · 0 评论 -
Ubuntu系统安装&&解决Wi-Fi不可用
写系统安装的文章太多太多了,我为何还要写哪?因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一点不一样的。文章目录为和选择Ubuntu制作U盘启动盘U盘装机启动系统查看系统参数网络问题查询解决办法没有通用的方法查看无线网络的芯片驱动加载有问题?解决办法关于Linux写在最后公众号为和选择Ubuntu开源免费,功能强大,小巧精美。对于小巧的东西,个人都比较喜欢。还有友好的图形化界面,不要和win原创 2020-10-25 12:27:13 · 2801 阅读 · 3 评论 -
实战分析smali汇编代码
在黑客攻击-apk破解(1) 对apk的破解流程进行了完整的介绍。本篇文章基于解包之后的内容介绍smali汇编。汇编语言说到汇编语言,给人的感觉是很高端,很深奥,甚至于很神秘。其实这东西就是另一种形式的语言,一种非常底层的低级语言,大多数的编译型语言在编译过程中都要经历汇编的过程。比如C语言在Windows下会转化为x86/x64汇编,在Linux下会转化为ATT汇编,在Android系统上会转化为arm汇编等,很显然,汇编语言不具备跨平台的性质,在不同平台和系统中的汇编语言是不一样的。就是这些汇编语言原创 2020-10-18 17:50:50 · 1732 阅读 · 0 评论 -
Frida进阶之内存漫游以及简单抓包
在前面的系列文章中对Frida相关的API进行了介绍。文章目录Hook everything内存漫游启动objectionHook anywhere启动Activity或者Serviceobjection的缺陷退出抓包公众号Hook everythingFrida只是提供了各种API供我们调用,在此基础之上可以实现具体的功能,比如禁用证书绑定之类的脚本,就是使用Frida的各种API来组合编写而成。于是有大佬将各种常见、常用的功能整合进一个工具,供我们直接在命令行中使用,这个工具便是objection原创 2020-10-11 19:26:58 · 1885 阅读 · 0 评论 -
Frida API进阶-网络
文章目录SocketSocketListenerSocketConnection代码示例Nagle algorithmJavaScript判断数据类型公众号在聊天系统开发(1) 的文章中,对TCP/IP相关的网络编程进行了介绍。在Frida API进阶-文件 对文件描述符、输入输出流进行了介绍。本篇文章集于此介绍Frida中网络相关的API。SocketSocket.listen([options]): open a TCP or UNIX listening socket. Returns a Pr原创 2020-10-08 09:07:36 · 1286 阅读 · 0 评论 -
漏洞扫描和利用
声明:禁止用作非法目的,谢绝一切形式的转载。在这里对OpenVas进行了简单的介绍。这篇文章着重介绍通过OpenVas扫描出来漏洞之后,如何利用这些漏洞达到获取被入侵机器"肉鸡"的shell(也就是控制权)。OpenVasGSM协议NTP – Time synchronization• Connecting to 123/udp• Mandatory• Not encrypted• May use internal NTP serverFeeds (see below)• Direct原创 2020-09-20 16:49:14 · 918 阅读 · 0 评论 -
MSF专题(3)
声明:谢绝一切形式的转载,禁止用作非法目的当通过木马或者漏洞成功入侵别人电脑后,由于MSF发起的攻击都是基于内存的,因此,当被入侵的电脑关机之后或者漏洞修复之后,前期建立的连接就都不复存在了。所以,有必要在被入侵的电脑上安装后门,让"肉鸡"每次重启之后,都能和自己的机器自动建立连接。准备条件“肉鸡”: Windows7 32位 防火墙开启通过木马建立连接具体内容可参考这里Persistence 后门...原创 2020-09-15 18:23:00 · 144 阅读 · 0 评论 -
Frida API进阶-文件操作
在前面的文章中介绍了数据库的操作,这篇文章主要介绍文件的操作。当你在使用程序的时候,可以动态修改程序的文件操作,其实是很恐怖的,比如,本来是往文件中写入100元钱,但是经过动态修改后变成了0元,据此可以脑洞大开一下。文章目录文件和流文件File文件和流文件Filenew File(filePath, mode): open or create the file at filePath with the mode string specifying how it should be opened.原创 2020-09-06 23:21:14 · 4326 阅读 · 0 评论 -
Frida API进阶(2)
通过数据库,能做的事情还是很多的,比如查看数据信息,查看权限,甚至于抢红包基于的也是数据库。准备条件Android手机需要ROOT,本文基于Android10。Database查看数据库通过下面的命令可以查看指定包名应用的数据库存储信息(包括存储的SQL语句)。adb shell dumpsys dbinfo com.lingpao.lpcf622b运行结果如下:...原创 2020-09-01 17:01:11 · 369 阅读 · 0 评论 -
Frida API进阶(1)
在前面的文章中介绍了Frida基本API的使用,在这篇文章中介绍一些更加强大的API。同时简单介绍下HOOK 系统函数的利器frida-trace。内存,内存还是内存。Java对象Java对象Java是极其重要的API。无论想对so层亦或java层进行拦截,通常都须编Java.perform。Java.available: 该函数一般用来判断当前进程是否加载了JavaVM,Dalvik或ART虚拟机Java.androidVersion: 显示Android系统版本号Java.enumera原创 2020-08-30 13:43:17 · 2445 阅读 · 0 评论 -
windows开机启动之注册表
#include <Windows.h>#include using namespace std;int WriteReg(char* path, char* key, char* value);/************************************@ Brief: 开机启动@ Author: 无情剑客@ Created: 2020/08/25 传统节日七夕@ Return:************************************/v原创 2020-08-26 20:45:13 · 6785 阅读 · 1 评论 -
Frida API使用(4)
在前面的文章中,对图中大部分的API进行了介绍,今天继续后面内容的介绍。Kernel顾名思义,与内核相关的,枚举内核加载的模块,或者操控内核内存部分。经过测试,在Android和Linux系统下,Kernel.available是false,相关的API都是不能够使用的。Kernel.available: a boolean specifying whether the Kernel API is available. Do not invoke any other Kernel propertie.原创 2020-08-22 17:33:07 · 704 阅读 · 0 评论 -
Frida API使用(3)
在这里对其中的一部分API进行了介绍,这篇文章继续介绍后面的内容。通过这部分的介绍,可以发现通过Frida操纵内存、查看模块等信息是如此的简单。操作内存,最重要的自然就是打补丁了,邪恶的微笑。Module对象Module.load(path): loads the specified module from the filesystem path and returns a Module object. Throws an exception if the specified module cann.原创 2020-08-15 11:10:00 · 1417 阅读 · 0 评论 -
Frida API使用(2)
Frida原创 2020-08-09 23:25:27 · 1992 阅读 · 5 评论 -
Frida API使用(1)
准备工作Frida在这里对Frida进行了简单的介绍。设备设备: Android 10 ROOTPC: Ubuntu18.04Python切换有些时候,需要使用Python的2.x版本,而有些时候又需要使用python的3.x版本,这个时候就需要能够灵活设置python版本使用下面的命令设置Python2是默认:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100使用下面的命令设置P原创 2020-08-02 12:56:18 · 1280 阅读 · 0 评论 -
全平台HOOK神器
声明: 谢绝一切形式的转载。HookHook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。非常类似于中间人攻击,只不过中间人是钩子,操控的是程序的执行流程。在不同平台下编写hook代码是一件很痛苦的事情,Windows下,必须要熟悉窗口、消息传递机制的,而在Linux下hook底层的消息还需要重新编写内核模块,在And原创 2020-07-26 12:14:44 · 973 阅读 · 0 评论 -
Android抓取开机日志
有些时候,手机可能莫名其名的就开不开机了,这个时候就需要抓取开机日至来分析下什么原因,如果要研究开机启动流程,那也可能需要抓取开机日志。预备条件手机平台: Android Q(Android 10)手机需要ROOTPC端系统:Ubuntu18.04(笔者的机器)no permissions当用USB连接手机的时候,会出现如下所示的对话框。这时使用adb devices来查看连接的设备:解决办法执行sudo vim /etc/udev/rules.d/90-android.rules,使用下原创 2020-07-18 10:35:18 · 3083 阅读 · 0 评论