Frida系列
文章平均质量分 85
Frida的高阶用法 Android脱壳 ART虚拟机二次开发 Android逆向 抓包
helloworddm
这个作者很懒,什么都没留下…
展开
-
Frida高级篇-调试
心仪预备条件安装node和npm代码提示TypeScript优点JavaScript的一个超集,扩展了JavaScript的语法。加强代码可读性。明确参数类型,代码语义更清晰易懂。更友好、更精准的代码补全提示。更贴近面向对象编程的编写习惯,利于模块化和复用。以前用 js 写的脚本也可以被 ts 直接引用,不会浪费。Frida使用TypeScriptfrida-compile將ts 编译为 可被 frida 加载的 js 文件(1)Github 直接下载大胡子的示例仓库: htt.原创 2021-10-19 19:43:54 · 1461 阅读 · 0 评论 -
frida补充篇
管理子进程原创 2021-10-06 17:17:20 · 565 阅读 · 0 评论 -
unidbg模拟执行so(1)
在 Android逆向之ARM64静态分析 对ARM64汇编进行了介绍,网传ARMV9要出来了,难道又要重新学习ARMV9? 在Frida高级篇-免ROOT使用Frida(不修改源代码) 中对elf文件进行了介绍,本文使用Unicorn模拟执行so来分析native方法。unidbgAllows you to emulate an Android native library, and an experimental iOS emulation....原创 2021-08-23 20:34:41 · 459 阅读 · 0 评论 -
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 · 1687 阅读 · 0 评论 -
自己动手实现俄罗斯方块
俄罗斯方块记得很小的时候,从邻居家的小朋友那里拿到一个游戏机(按现在的眼光已经算不上游戏机了),开始了人生中第一个电子游戏-俄罗斯方块,我不知道多少人是从那古老的游戏机而知道俄罗斯方块的,但俄罗斯方块的大名想必都听说过。一个小小的俄罗斯方块就就能为我们增加无限的乐趣。当然了,如果能自己开发出来,岂不是很有成就感。UI最近在写Frida可视化相关的项目。在选择UI框架的时候使用了PythonQt5。本文通过编写俄罗斯方块来熟悉PythonQt5的基本操作。为什么选择PythonQt5?跨平台。这原创 2021-02-10 09:31:52 · 1511 阅读 · 1 评论 -
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 · 672 阅读 · 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 · 2222 阅读 · 0 评论 -
Frida工作原理
在调试和验证Frida的Stalker功能的时候,需要频繁暂停程序查看效果。因此这里是首先介绍下Linux下的暂停。在用Linux的时候,都比较熟悉下面这几中暂停方式。三种暂停的区别三者的区别Ctrl+C :强制中断程序,程序无论运行哪里都停止。Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。Ctrl+Z :暂停程序,在进程中维持挂起状态。引用别人的说法:1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctr原创 2021-01-13 22:25:47 · 3617 阅读 · 0 评论 -
CackerMe系列-crackeme04
在黑客攻击-软件破解(2) 中通过Radare2的静态分析实现了破解。本文使用frida和radare2进行动态分析来对crackerMe系列中后面的例子进行破解。crackme0x04首先通过agf查看流程图。[0x080484fb]> agf[0x08048484]> # sym.check (char *s); ┌─────────────────────────────────原创 2020-12-26 23:09:49 · 266 阅读 · 0 评论 -
adb常用命令以及模拟器使用(持续更新中)
ADB 即 Android Debug Bridge,Android调试桥。ADB工作方式比较特殊,采用监听Socket TCP 端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口。熟练使用 ADB 命令将会大大提升开发效率。 ADB 的命令有很多,今天就来总结下我在TV开发常用到的一些 ADB 命令。adb install 一共有lrtsdg六个选项-l 锁定该应...原创 2019-08-21 09:56:59 · 1028 阅读 · 1 评论 -
JavaScript常用函数(持续更新中)
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值.filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。...原创 2019-01-13 10:16:18 · 226 阅读 · 0 评论 -
Frida高级篇-高级特性
多台设备连接多台设备还是很简单的,使用Frida作者oleavr(很多人称他是大胡子,以后就用这个称呼了)为我门提供的python binding功能。当然前提是相应设备的frida-server已经开了。根据设备id就可以获取相应设备的device。使用的函数是get_device。互联互通互联互通是指把app中捕获的内容传输到电脑上,电脑上处理结束后再发回给app继续处理。看似很简单的一个功能,目前却仅有Frida可以实现。后面的这句话我不清楚是否真假,就我所知道的,它是真的,不过通过这句话也原创 2020-12-13 19:54:21 · 1106 阅读 · 2 评论 -
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 · 910 阅读 · 0 评论 -
Android逆向之ARM64
在使用Radare2静态分析apk(2)末尾出有一段ARM64汇编代码,这篇文章铜鼓分析这段汇编代码来来了解下ARM64汇编。1. 开辟堆栈空间`sub sp, sp, 0x70`2. 存在一对数据 `stp x29, x30, [var_60h]`3. x29与[var_60h]相加 `add x29, var_60h`4. 不知道做什么的指令 `mrs x8, tpidr_el0`5. 将x8+0x28内存中的值加载到x8寄存器 `ldr x8, [x8, 0x28] `完整的代码原创 2020-12-06 00:53:52 · 1270 阅读 · 0 评论 -
使用Radare2静态分析apk(2)
在Radare2静态分析apk(1) 对Radare静态分析apk进行了简单的介绍。补充以下:通过r2 apk://URI可以直接对apk中的dex进行分析。原创 2020-11-30 11:55:31 · 685 阅读 · 2 评论 -
Radare2静态分析apk(1)
在逆向的世界中,有一个工具叫做IDA,它被称为神器,但是它的价格实在让人望而生畏(土豪例外)。正版的全平台下来估计要20w/年,貌似还是美元。当然了,网上有很多破解版的,这个看个人喜好,我不太习惯使用破解版的,一方面功能不全,另一方面,很不稳定。于是我就找到了一个替代IDA的工具-Radare2。个人认为除了在F5(decompiler)功能上有差距之外,其他地方两者很接近了。Radare2在 破解工具Radare2 中多Radare2进行了介绍,在 深入理解GOT覆写技术 系列文章中对Radare2在原创 2020-11-20 21:40:34 · 621 阅读 · 0 评论 -
Frida高级篇-Fiddler Everywhere手机抓包(绕过证书绑定限制)
在 抓包神器之Fiddler Everywhere及Wireshark 中讲解了Fiddler EveryWhere怎么抓取web的数据,这篇文章主要说怎么进行手机抓包以及绕过如何绕过ssl-pining技术实现抓包。纠正一个错误网上很多文章说,在进行手机抓包的时候,一定要保证手机和电脑在同一个局域网。这句话是不准确的,我认为这么说的基本上是两种情况:(1)人云亦云,别人这么说,我也这么说,应该不会错吧。(2)对抓包的原理不理解,甚至于什么是中间人攻击都不清楚。要实现抓包,需要的前提条件并不一定要原创 2020-11-15 20:32:45 · 4247 阅读 · 0 评论 -
免ROOT使用Frida(不修改源代码)
在 非ROOT环境下使用Frida及调试 中通过修改smail代码实现在非ROOT的情况下使用Frida。前面提到这种方式有一个明显的缺点就是要修改smali源代码。这篇文章主要来说怎样在不修改源代码的情况下在非ROOT情况下使用Frida。Frida-gadgetFrida的Gadget是一个共享库,可以在不适合Injected操作模式的情况下由要检测的程序加载。这可以通过多种方式完成, 例如:修改程序的源代码修补它或其一个库,例如 通过使用诸如insert_dylib之类的工具使用动态链接原创 2020-11-14 23:43:40 · 4073 阅读 · 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 · 3182 阅读 · 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 · 2065 阅读 · 2 评论 -
Frida API进阶- Instrumentation
百度对instrumentation的解释是:个人感觉,这个翻译总差点什么,于是就保留原文了,不翻译了。关于Frida中Instrumentation主要包含以下内容:本问主要讲解前面没有提到过Stalker、WeakRef和ObjC。StalkerIntroductionStalker is Frida’s code tracing engine. It allows threads to be followed, capturing every function, every block,原创 2020-11-07 14:55:01 · 1063 阅读 · 0 评论 -
HTTPS系列之密码学基础(1)
三个主角(1)卡尔(与冰女进行消息往来)(2)拉比克(截获卡尔和冰女传递的消息,也就是中间人)(3)冰女(与卡尔进行消息往来)基本概念公钥加密假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1加密了字符a,加密后成了b原创 2020-11-01 19:20:01 · 458 阅读 · 0 评论 -
抓包工具之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 · 1064 阅读 · 0 评论 -
Ubuntu系统安装&&解决Wi-Fi不可用
写系统安装的文章太多太多了,我为何还要写哪?因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一点不一样的。文章目录为和选择Ubuntu制作U盘启动盘U盘装机启动系统查看系统参数网络问题查询解决办法没有通用的方法查看无线网络的芯片驱动加载有问题?解决办法关于Linux写在最后公众号为和选择Ubuntu开源免费,功能强大,小巧精美。对于小巧的东西,个人都比较喜欢。还有友好的图形化界面,不要和win原创 2020-10-25 12:27:13 · 2876 阅读 · 3 评论 -
实战分析smali汇编代码
在黑客攻击-apk破解(1) 对apk的破解流程进行了完整的介绍。本篇文章基于解包之后的内容介绍smali汇编。汇编语言说到汇编语言,给人的感觉是很高端,很深奥,甚至于很神秘。其实这东西就是另一种形式的语言,一种非常底层的低级语言,大多数的编译型语言在编译过程中都要经历汇编的过程。比如C语言在Windows下会转化为x86/x64汇编,在Linux下会转化为ATT汇编,在Android系统上会转化为arm汇编等,很显然,汇编语言不具备跨平台的性质,在不同平台和系统中的汇编语言是不一样的。就是这些汇编语言原创 2020-10-18 17:50:50 · 1789 阅读 · 0 评论 -
Frida进阶之内存漫游以及简单抓包
在前面的系列文章中对Frida相关的API进行了介绍。文章目录Hook everything内存漫游启动objectionHook anywhere启动Activity或者Serviceobjection的缺陷退出抓包公众号Hook everythingFrida只是提供了各种API供我们调用,在此基础之上可以实现具体的功能,比如禁用证书绑定之类的脚本,就是使用Frida的各种API来组合编写而成。于是有大佬将各种常见、常用的功能整合进一个工具,供我们直接在命令行中使用,这个工具便是objection原创 2020-10-11 19:26:58 · 1968 阅读 · 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 · 1381 阅读 · 0 评论 -
frp图形化界面
更过内容可关注公众号:原创 2020-09-29 12:09:43 · 1770 阅读 · 1 评论 -
打通两个局域网
声明:严禁用作非法目的,谢绝一切形式的转载。如何实现远程打卡?远程打卡的问题在于你和公司处在不同的局域网之中,要实现远程打开,虽然有些软件可以使用(比如向日葵、teamviwer等),但是实现功能也仅仅限于远程桌面控制(在免费的情况下,网速只能呵呵了)。如果想做其他的一些事情就无能为力了,比如访问内网的web服务、提升权限等等。网络概况#mermaid-svg-khOugxqdo9y2GBvh .label{font-family:'trebuchet ms', verdana, arial;font原创 2020-09-27 13:29:29 · 2224 阅读 · 5 评论 -
漏洞扫描和利用
声明:禁止用作非法目的,谢绝一切形式的转载。在这里对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 · 961 阅读 · 0 评论 -
横空出世的Rust
声明: 文章仅代表个人观点曾几何时,我认为C语言永远不会过时,只要有计算机存在,C语言就会一直存在,直到Rust语言的出现,彻底打破了我的认识。RustRust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。致力于成为优雅解决高并发和高安全性系统问题的编程语言,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。Rust语言的特点高性能 - Rust 速度惊人且内原创 2020-09-17 19:38:33 · 547 阅读 · 0 评论 -
MSF专题(3)
声明:谢绝一切形式的转载,禁止用作非法目的当通过木马或者漏洞成功入侵别人电脑后,由于MSF发起的攻击都是基于内存的,因此,当被入侵的电脑关机之后或者漏洞修复之后,前期建立的连接就都不复存在了。所以,有必要在被入侵的电脑上安装后门,让"肉鸡"每次重启之后,都能和自己的机器自动建立连接。准备条件“肉鸡”: Windows7 32位 防火墙开启通过木马建立连接具体内容可参考这里Persistence 后门...原创 2020-09-15 18:23:00 · 178 阅读 · 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 · 4455 阅读 · 0 评论 -
Frida API进阶(2)
通过数据库,能做的事情还是很多的,比如查看数据信息,查看权限,甚至于抢红包基于的也是数据库。准备条件Android手机需要ROOT,本文基于Android10。Database查看数据库通过下面的命令可以查看指定包名应用的数据库存储信息(包括存储的SQL语句)。adb shell dumpsys dbinfo com.lingpao.lpcf622b运行结果如下:...原创 2020-09-01 17:01:11 · 390 阅读 · 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 · 2569 阅读 · 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 · 6991 阅读 · 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 · 768 阅读 · 0 评论 -
黑客攻击-木马免杀之PE文件
当你好不容易弄出来一个木马(具体可参考这里)的时候,却被杀毒软件轻易的就检测出来了,那一切岂不是白费了。Win10中的windows defender基于流量检测很容易把常见的木马程序检测出来,那怎么绕过这些检测?对于此问题,打算开一个专题进行木马免杀的分析,先从最最重要的PE文件说起,要攻击Windows系统,如果不懂PE文件,面对杀毒软件,则只能束手就擒了。PE文件PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个原创 2020-08-16 22:06:23 · 1305 阅读 · 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 · 1522 阅读 · 0 评论 -
Frida API使用(2)
Frida原创 2020-08-09 23:25:27 · 2163 阅读 · 5 评论