文章列表

1.3k 1 分钟

最近想要研究一下安卓 APP 的抓包,正巧听说 flutter 应用非常难抓包,了解了一下应该是 flutter 应用不走代理的原因,而恰巧咸鱼 APP 就是用 flutter 写的,我寻思要是我连这么难抓包的 APP 都会抓了,那么未来去抓其他 APP 的包岂不是信手拈来~ # 环境搭建 # fiddler 下载地址,需要断网安装! # 破解流程 首先下载需要替换的组件, 下载地址 之后打开 fiddler4.0.1, 连接网络后,注册登录账号,然后点击十天免费使用 随后,我们替换掉下列路径的文件 Fiddler...
8k 7 分钟

以往学习过 Windows 中的 TCP/UDP socket 通信,但是当我研究安卓中的 tcp 通信时,发现 C 语言通信的语法截然不同,然后才发现安卓系统上是 Linux 操作系统,所以也有必要去好好学习 Linux 系统中的 tcp/udp 通信 # socket API 接口 # socket 创建一个 socket 套接字 #include <sys/types.h>#include <sys/socket.h>/*@param domain: 通信协议簇@param type: 指定 socket 类型@param protocol:...
64k 58 分钟

# 前言 在今年三月份的时候,我参加了腾讯游戏安全技术竞赛,到现在差不多快过去半年了,当时做这道安卓初赛题目时,也是卡在开头就毫无头绪了,而后看到看雪上的三位大佬 |_|sher 师傅,juice4fun 师傅和 fallw1nd...
6.9k 6 分钟

IDApython 在日常逆向的过程中是十分重要的存在,过去零零散散的接触过一些 idapython, 但是我觉得还是有必要去系统的整理一下相关的函数,以便未来倘若忘记了可以快速通过这篇笔记回忆起来 # 官方文档 IDA Help: Alphabetical list of IDC functions IDAPython documentation # IDApython 编写环境 PyCharm 2021.2.3 社区版 IDA7.7 python3.8 由于 IDA 自带的 IDE 没有代码补全十分的难用,所以我准备在 PyCharm 中编写 IDApython 代码 在...
13k 11 分钟

为了做出腾讯游戏安全竞赛初赛的这道安卓题,开始学习 rwProcMem33 的使用来打硬件断点了 在 juice4fun 师傅做腾讯游戏安全竞赛初赛的安卓题的 writeup 时,使用了 rwProcMem33 来对安卓手机打下硬件断点分析反调试,我也对在安卓手机中打硬件断点的工具很感兴趣,所以就学习一下编译和使用的方法啦 要想使用 rwProcMem33, 编译环境 (即 AOSP 安卓内核源码环境) 的搭建过程是必不可少的,因为最终内核模块是运行在安卓手机的 linux 内核中,而非虚拟机的 linux...
1.5k 1 分钟

今年上半年把我的老平板 SM-P200 root 了,不过用着用着就发现这平板的 USB 竟然接触不良!每过一段时间 usb 就会断开连接… az, 这对于我来说问题可是致命的,谁能忍受研究的好好的突然手机就失联了嘞 于是我在咸鱼淘了一台二手 pixel3, 至于为什么是 pixel3, 问就是谷歌亲儿子~ 看了眼手机已经刷成安卓 10 了,卖家也说解了 BL 锁,不过唯一美中不足的就是安卓 10 没 root, 那就只能亲自 root 咯~ 想了想安卓 10 安证书有点麻烦,索性就刷成安卓 9 好了哈哈 # 准备工作 在进行刷机前,请确保已经提前准备以下内容...
52k 47 分钟

前两天刚打完的 starctf, 可真是坐牢呀,比赛期间出了三题,赛后终于又弄出来了一题. GoGpt 就是常规的 go 语言逆向,看题目描述,题目是 chatGPT 出的,哈哈 AI 竟然也能出题了,不过终究还是简单题呀~ flagfile 这题有点意思,用了 linux 中的 file -m 命令可以自定义 magic file 的特点,来检测一个文件的每一个字节是否符合魔数文件中的规则的匹配,来判断是否为正确的 flag, 做完这题之后猛然发现,原来有规则的地方就有逆向! ez_code 用到了 powershell 特殊符号混淆,多亏看雪上的一篇文章,看到下面的一条评论...
1.9k 2 分钟

在日常的逆向过程中,我常常会因为各种数值形式上的转换而相当纠结,比如大端,小端,字节转字符串等等,而且也十分的浪费时间去纠结这些细枝末节上的事情,尤其是每次还得 google 去搜索相关的代码,所以我心想与其碎片化的从浏览器中得到自己想要的答案,不如将这些代码整理到这一篇博客内,供我未来遇到这方面的困扰时,可以直接在这里找到答案. # 数据基本类型 一个字节 = 8 位 qword 数据类型仅在 64 位程序中存在 类型 字节数 位数 ida...
14k 13 分钟

hws 填完参赛问卷之后邮件被发到了垃圾箱里面,比赛开打好几个小时了才发现 (悲), 不过成绩还是不错滴,把逆向 ak 啦,第四名耶 (●’◡’●) 别的方向 misc 和 crypto 也稍微看了下,算是逆向之外的闲情雅致:), 但总归是能做出超级简单的题目的,但是 pwn 是真的不会!做不了一点… 不会 pwn 的二进制手只能当逆向手了😂 题目附件: 点击下载 # reverse # Android 反编译 libjniex.so , 发现这个解密函数,所使用的算法为 SM4 安装 apk, 打开后发现两个特殊字符串 159762dr7vh438sa 和...
6.3k 6 分钟

常年不去上早八课的人,今天居然在八点前就醒了,要问为什么?这比赛从早上八点打到晚上八点 >…<(悲) 不过,咱们队伍在下午就把逆向题 ak 了~居然没有坐牢到晚上 (●’◡’●) 题目附件: 点击下载 # careful 动态调试,题目里有个 inline hook, 在这里打个断点 那么网址就是 Just_An_APIH00k11.com # babyre die 查一下壳 有 sleep 反调试,把 sleep nop 掉 这里读取了名称为 cod 的资源,用 resource hacker 把资源复制下来 然后向下执行,这里是一个对 cod...
18k 16 分钟

在日常遇到的.so,.elf 格式的二进制文件,常常可以看到 Linux 进程通信的使用,接下来的部分,我将介绍 Linux...
23k 21 分钟

今天坐牢坐满了八小时,出了三道逆向,一道区块链,帮助我们队拿到了这次比赛的第一名,也算可喜可贺!自己终于不是以前的菜鸡了,遥想去年还啥也不会呢 现在比赛结束了,那就写一下 wp 好咯 PS: 第一次拿到一道困难题的一血,还是很激动的,有一道题目我记得叫做 easyRE,拿了二血是因为吃饭吃到 10 点多才开始做题了,下次一定准时比赛!(下次一定 (●’◡’●)) 题目附件: 点击下载 # reverse # easyRE 这题是 python 逆向,做 python 逆向的方法我感觉挺固定的,就是 pyinstxtractor 解包一下,再把里面的 pyc 转成 py...
42k 38 分钟

近期着手准备研究安卓逆向,早就听说 frida 这个安卓逆向神器,所以想要系统的学习一下,这里就当作自己的一个学习笔记,记录本人学习 frida 的过程中所遇到的知识点,防止以后遗忘. 这次的学习教程是由 r0ysue 大佬写的,膜拜! https://github.com/r0ysue/AndroidSecurityStudy # frida 的命令行基本语法 frida -U -l .\srcipt.js -f "com.oacia.frida_a02_01_demo2" -U 指用 USB 连接手机和电脑 -l load-file, 所以后面要跟上写好的...
1.5k 1 分钟

这段时间学习安卓逆向的过程中,急需一台 root 机,一开始想把自己的手机 root 了,但是考虑到 root 的过程中会清除所有数据,所以就想着换一台备用机去 root, 正好过去高中的时候被学校强制要求买了一台三星的 SM-P200 平板,高中过后这平板也闲置了下来,正好今天有需要,就把他拿出来,花了两天时间终于将平板 root 好了,所以记录一下平板 root 的过程 对于三星系列手机平板的 root 我的建议是参考此处 # 0x01 下载三星官方原版刷机包 这是最重要的一步,你需要去网上下载官方原版的刷机包,格式类似于这种 AP , BL ,...
6.8k 6 分钟

今天受好友 nameless 的委托,对一个名叫 nokelock 的 apk 进行插桩,希望在日志中打印出蓝牙加密包的密文,密钥与明文,由于本人是第一次对 apk 进行插桩,于是写了这一篇文章用以学习和记录. # 0x01 什么是插桩? 依据本人的拙见,插桩就是在原有的代码中插入自己写的代码,用以打印某些想要知道的变量的值。当然了,插入的代码也可以在原有代码的基础上,为 app 增加各种各样的额外功能。 在过去学习 fuzz 的过程中,也有过插桩这一个概念,而过去使用的 afl-fuzz 是在二进制汇编代码中插桩,这一次是需要在 apk...
9.2k 8 分钟

这两天的区块链研究我的任务是要把大约五万个智能合约的源码编译成字节码的形式,并且提取智能合约中所用到的公开库,过程中遇到了一些困难,当然也是有收获的,所以在这个任务做完之后,写了这篇文章记录一下 # 0x01 初步分析 我们需要批量编译的智能合约所在的文件夹结构如下 ├─0x01ea1afecdab69ab00212e6f9ed0209c0bf75ac9 │ code.abi │ code.sol │ contract_creation_code │ info │ ├─0x01eacc3ae59ee7fbbc191d63e8e1ccfdac11628c │ code.abi │...
38k 35 分钟

把今年 hgame 四周的逆向题 ak 啦,还拿了个逆向单方向奖呢~(●’◡’●), 顺手做了两道区块链的题:) 题目附件: 点击下载 # week1 # a_cup_of_tea tea 算法 from ctypes import *def decrypt(v, k): v0, v1 = c_uint32(v[0]), c_uint32(v[1]) delta = 0x543210DD k0, k1, k2, k3 = k[0], k[1], k[2], k[3] total = c_uint32(delta * -32) for i in range(32): v1.value -=...
11k 10 分钟

python 中的逆向最关键的就是要看到 python 源码,如果使用 ida 将会大大增加逆向的难度,所以使用好正确的工具和方法将会让逆向过程事半功倍。

python 逆向的流程为:test.exe–>test.pyc–>test.py

接下来我将介绍每一步所使用的工具以及到目前为止我所遇到的问题和解决的方法

2.2k 2 分钟

使用 web3.py 进行合约交互 # 部署合约 import jsonfrom web3 import Web3, HTTPProviderprivate_key = [钱包私钥]wallet = Web3.toChecksumAddress([钱包地址])w3 = Web3(HTTPProvider([链的RPC]))abi = json.loads([合约的ABI])code = [合约的字节码]newContract = w3.eth.contract(bytecode=code, abi=abi)nonce =...
23k 21 分钟

对常用的逆向算法进行了整理 # RC4 def RC4(data, key): if type(data) == type('oacia'): # 判断是否为字符串 data = [ord(i) for i in data] if type(key) == type('oacia'): key = [ord(i) for i in key] S = list(range(256)) j = 0 out = [] # KSA Phase for i in range(256): j = (j + S[i] + key[i % len(key)]) % 256...
168 1 分钟

# 12 月 4 号,小夏的生日到啦,真是一件令人开心的事~ 这位是放学后甜品部的麻烦制造第一名以及自称浪漫家的小夏同学! 抱着「想和大家一起分享浪漫」的心情、经常说出爆炸性发言并把周围都牵扯进来、「浪漫」的定义也经常变化着的样子…。 「关于奶油蛋糕有想到过些什么吗? 」 还记得今年九月份入坑蔚蓝档案的时候,就是因为看见了小夏,她实在太可爱了 (≧▽≦)
4.6k 4 分钟

# 0x0 start 首先导入 Python.h, 并添加 python37_d.lib 依赖 # 0x1 遇到的问题 刚开始跟着教程走,结果总是提示缺少 python37_d.lib 依赖,后来根据下面的找到的教程才发现库目录才是有依赖搜索的目录 ~~ 看教程里是从上往下数第四个改成了 C:\environment\Python37\libs 结果被骗了…~~QAQ https://blog.csdn.net/bandaoyu/article/details/105102945 于是 vs 的 VC++ 目录的配置可以如图所示 并且在链接器的输入子目录内添加 python...
18k 16 分钟

本次题目的地址为 sepolia@0x053cd080A26CB03d5E6d2956CeBB31c56E7660CA

# 前言

这一次 1024 程序员节中有区块链相关的题目,作为今年才开始起步区块链的小萌新,这一题也是整整看了一整个周末才做出来,不过做出来之后也是相当的具有成就感滴:), 话不多说,我们现在就来看一看如何做出这一题.


25k 23 分钟

# 前言 过去曾简单接触过 solidity, 合约的内容基本上都是对于函数的调用,感觉和过去看 app 的 java 源码差不多,都是对事件的调用执行。曾经也在 Ropsten 测试网络中进行过几次智能合约的交易,对于交易的过程还是大致有一些了解的,那么我们首先从 solidity 的运行环境开始吧. # 环境配置 这里提供两种配置 solidity 环境的方法 # 通过 Remix 在网页执行 solidity (推荐,方便快捷) Solidity 开发环境搭建 # 通过 visual code 安装 solidity solidity vscode 环境配置 1、安装...