YOU'VE MADE A BRAVE DECISION, WELCOME.

每一个不曾起舞的日子都是对生命的辜负。

前言本文是学习笔记,参考[博客](https://ray-cp.github.io/archivers/browser-pwn-cve-2020-6418%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90_ 指针压缩 Pointer compressionv8 8.0之前,tagged pointer 有三种表示方法: 123Smi: [32 bits] [31 bits (un

Read More...


starctf oob

前言这题是starctf2019 oob 的v8漏洞利用题。 题目介绍从网上的博客里拿到了v8 的diff 文件,按照对应的命令进行patch 和 编译,编译的命令和diff 代码如下: 12345678git reset --hard 6dc88c191f5ecc5389dc26efa3ca0907faef3598git apply < oob.diff# 同步模块gclient sync# 编译debug版本tools

Read More...


0x00 前言最近我在学习浏览器利用,就找了 35C3 的题目练习了一下。在看别人的 writeup 的时候,我发现很多文章的思维跨度都好大,作为小白就得花很长时间去理解为什么这么做。此文记录了一些我做这道题学到的东西。 0x01 漏洞分析这题是根据 https://bugs.chromium.org/p/project-zero/issues/detail?id=1710 这个 bug 改编的, 官方对这个bug 的patch 有两处

Read More...


白盒AES破解

0x00 前言前面已经提到过白盒AES算法了,由于白盒AES性能比原来的算法慢,所以想着有没有办法在有源码的情况下把 key 还原出来。google之后发现看雪上有一篇讲破解白盒AES算法的,于是尝试了一下,并且成功获取到了原始的key,所以这里分享一下我的过程,原理 还是得参考 https://bbs.pediy.com/thread-254042.htm 0x01 破解以前的文章已经讲过白盒AES 的原理了,这里直接讲如何破解。正

Read More...


0x00 前言在对称加密中,遇到最多的就是DES,AES,其次国内也经常能够看到SM4算法。今天主要对AES进行一个简单分析, 以及一种称之为白盒AES的算法。本文部分内容是从别的博客摘抄。 0x01 AES算法介绍识别以AES128为例,算法如下图: 整个流程分为以下几部分: 密钥初始化(key init) 10轮加密: 字节替换(SubBytes) 行位移(Shift Rows) 列混合(Mix Column) 轮密钥加密(A

Read More...


0x00 前言我在逆向的过程中发现很多公司都开始使用hmacsha1 作为签名校验的算法,并且这个算法基本都是放到 native 层做了一定的保护。而 sha1 则多见于 java 层,一般不做什么保护。 本文会先讲解一下hmac, 然后针对hmac的算法,看看算法存在的弱点。 hmacsha1算法算法如图: hmac 需要用户提供一个key, 这个key 会进行扩展到hash 函数的分组长度,然后这个密钥会跟ipad, opad

Read More...


最近在学习符号执行,很多符号执行框架都有自己的依赖和编译环境, 因此使用 docker 可以让我们专心于框架本身而不是各种编译错误。但是 docker 容器有了之后,随之而来的问题也来了,宿主机和 docker 如何进行数据传输? docker 有一个cp 命令, 可以将文件或者目录拷贝,也就是说,每次修改完文件之后,都需要执行命令来同步文件。这个对于一次性操作来说是方便的,但对于频繁改动的内容就不太适合。 查看 docker 的文档可

Read More...


0x00 前言 在移动端风控对抗中,端安全变得越来越重要,很多设备指纹厂商都纷纷将 java 层的设备信息采集代码移到 native 层。这么做的好处很明显,java 层的攻击相对native 来说简单不少,防御这块研究的人也不多,处于攻防不平衡的状态。native层的保护多种多样,除了常规的运行时保护,比如反调试,反注入等等,还有很多静态的保护技术,比如插花,混淆,这些保护让原来简单易懂的代码变得难以理解,让攻击者花费更多的时间去理

Read More...


fans

前言

本文是一篇论文阅读,大致会按照论文中的排序进行解读。作者介绍了对Android系统服务进行漏洞挖掘的一种方法,
在配备Android9的六款智能手机上上,发现30种独特的崩溃,其中20个已被Google确认。在fuzz中还发现了138个独特的Java异常。

Read More...


frida travel2

前言

当我刚开始写frida脚本时, 会用python binding的方式去写,比如以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import frida
import sys

device = frida.get_usb_device()
session = device.attach("package_name")

def on_message(message ,data):
print(message)
#print(message['payload'])

src = """
js code here
"""

script = session.create_script(src)
script.on("message" , on_message)
script.load()
sys.stdin.read()

Read More...


虽然还没想好写点什么,但是总觉得这里放句话比较和谐。