自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 flutter逆向初探-- 2023国赛ctf的flutterror

flutter逆向真的还挺难的,做的时候搜到的资料里最有用的是这个系列的三篇: https://www.guardsquare.com/blog/current-state-and-future-of-reversing-flutter-apps。基本能了解flutter的一个运行机制。reflutter 对这个题来说是能用的,但是能给到的有效信息并不多所以用处不大。之前照着别的文章做,都是先reflutter然后对着dump出来的offset进行hook, 所以比赛时就卡在这里了。

2023-06-04 15:21:15 1448 1

原创 midnightctf2023 reverse

sat solveexpectations用longjmp和setjmp做的异常处理由于前八字节一定是“midnight”可以直接在下图位置下断点, 手工尝试cur_chr的值递归嵌套的程序,每次check两字节, 因为flag不长所以是苦力的手工做的不过队友写了ptrace的dump脚本dump下来的逻辑很简单, 不多说了 flag: u_b34t_th3_c10ck吐了这题, 当时把它当misc在做, 后面才知道它可以是个可执行文件https://blog.cmpxchg8b.co

2023-04-10 14:57:41 232 1

转载 某乎的x-zse-96字段sign

s

2023-03-06 22:50:41 370

原创 西湖论剑2023 Berkeley writeup ——bpf字节码逆向

bpf字节码逆向

2023-02-09 15:48:21 636

原创 西湖论剑2023 Dual personality writeup ——天堂之门技术的分析

天堂之门技术分析

2023-02-04 16:25:58 1168

原创 RCTF2022 reverse 部分writeup

huowang picstore checkserver 等题

2022-12-13 15:38:13 2842

原创 祥云杯2022 部分reverse writeup

包括racket engtom 和 getcorrectkey 三题

2022-11-01 13:33:37 1248

原创 对某智能家居软件的一些分析

因为家里装了一些“全屋智能”的设备,也是想试试看逆向一个真实的app是什么感觉,而且这个app想来总是比微信支付宝好下手一点,所以就来试试啦。最后的效果是可以自己写python脚本来实现家中一些设备的控制。

2022-10-23 23:47:31 936

原创 基于APK文件格式的反编译对抗(两次颜色app的反编译研究)

拿到手的app都是一些违法的app软件,因此为了它们为了隐藏自己的身份自然希望自己的软件不要被逆向,但又因为自身水平和成本的限制,所以会对apk文件添加一些简单的对抗手段。其中最简单有效的就是利用apk文件本质是一个zip的方法,修改一些zip文件格式,插入一些垃圾数据来增加逆向获取信息的难度。虽然这种做法改变了apk文件的结构,但是却并不会影响其本身程序的运行。

2022-10-10 20:44:54 1796

原创 2022 TCTF / RisingstarCTF reverse题 vintage 两关的Writeup

2022 TCTF的一道游戏reverse题的题解

2022-09-22 19:57:39 1314

原创 2022强网杯 Quals Reverse 部分writeup

强网杯2022 quals reverse部分中game, easyapk, easyre 三题

2022-08-03 02:47:09 1640

原创 用python对excel进行批量处理(2):将表格中的英文翻译成中文

python批量处理excel 英文批量翻译中文

2022-07-31 23:31:58 1739 3

原创 linux下DPDK环境安装

DPDK的环境安装

2022-07-06 16:15:38 776

原创 Ubuntu22.04 中Drag and drop is not supported问题

ubuntu 22.04 和host的文件传输问题

2022-07-05 20:00:04 8602 12

原创 用x32/x64dbg脱DLL壳(IAT表修复和重定位表修复)

一直搜到的都是看雪论坛上用的lordPE和ImportREC进行脱壳和修复,感觉有点过时了.记录一下x32/x64dbg的脱壳和IAT修复方法.首先用esp定律等方法找到程序的入口点, 然后使用Scylla插件并填写其中的OEP地址.然后用IAT Autosearch去找可能的IAT表,dump并fix pe文件即可....

2022-05-06 15:18:00 4878 1

原创 c++逆向中类的识别(Reversing C++ 读书笔记)

paper is here前置知识一个类的对象的布局成员变量按照声明的顺序放置在内存中,但是如果该类中含有虚函数,那么会有一个指向虚表的指针在成员变量的第一个。class Ex2{ int var1; public: virtual int get_sum(int x, int y); virtual void reset_values();};/* 对象中的布局如下class Ex2 size(8): +--- 0 | {vfptr} 指向虚表 4 | var1 +---

2022-04-20 21:34:41 3715

原创 *CTF 2022 Reverse Writeup

AAA : immortalNaCl感觉和native client 关系不大 就是mmap出来一个页当成栈来使用, 并且栈顶指针变成了r15而非rsp关键函数做了反调试, 在加密输入之前会先计算dword_80AFB60 作为key, 具体操作没仔细看反正dump出来就完事了剩下的就是动调跟着汇编指令慢慢撸逻辑, 加密部分就是一个简单的费斯妥密码后面接一个xtea , 每八个字节都是独立计算的cmp = [0x66, 0xC2, 0xF5, 0xFD, 0x86, 0x82, 0x32.

2022-04-17 09:00:00 551

原创 PlaidCTF 2022 coregasm writeup

题目给了elf文件coregasm 和它crash以后的coredump文件,我们需要利用coredump文件里的信息来逆向elf文件。这一题分成四个部分:flag1这是最简单的,因为crash后的coredump文件里一定是有异或了0xa5的flag1. 所以我们直接对于整个coredump文件异或0xa5, 就找到了flag1 。flag2找到我们发现这部分的加密用到了从./otp里读取的数据,这部分数据也应该残留在了coredump文件里。 用010Editer打开人工翻翻找到了0x80长

2022-04-11 15:25:40 777

原创 用python对excel进行批量处理(1):将表格中的url用requests替换成图片

前言事情是这样的,npy说今天的工作里有一个900个项目的excel,表格的样子大概如下图所示。需求呢是将下图中的url全部替换成对应的图片添加到excel中。 作为一个程序员,这样的任务要是手动做真是太难为人了。 所以打算帮npy减轻一下负担。一开始我搜excel的python处理都是给我推荐xlrd包,但是这个包只能读取不能写入。然后继续搜搜到了xlwt, 但是它又只能写入不能修改。最后找到了openpyxl这个包。处理不想写心路历程了, 总之就是request下载图片,openpyxl添加图

2022-03-29 20:26:43 2071

原创 tqlctf reverse wp: Tale of the Arrow & quantum

Tale of the Arrow题目给了源码, 把输入转成二进制串, 每一位都会打出三个数字, 数字正确和错误可能各一半, 但是其中有一个一定是正确的. 因此利用flag是可见字符最高位必为0 以及 一组三个有两个错误时剩下那个一定正确 两个条件可以直接还原出flagwith open('output.txt','r') as f: con = f.read().splitlines()[2:]con =[ int(x) for x in con]torf = [0] * len(c

2022-02-21 15:38:59 382

原创 c和cc的混合编译

之前一直以为gcc编译的文件就是C型的目标文件,和源文件的后缀名无关. 这次在做一个小实验的时候发现目标文件的形式是由后缀名决定的.start.hvoid start();start.c#include <stdio.h>void start(){ printf("start\n");}test.cc#include <stdio.h>#include <string.h>#include "start.h"int main(){

2022-02-11 16:31:32 578

原创 ByteCTF2021 Final reverse ByteService wp

ByteCTFFinal2021 reverse ByteService wp题目给的apk里面是一个RPC调用, 发现找了ByteService这个服务public void callCTFService(int i, int i2) { try { Class<?> cls = Class.forName("android.os.ServiceManager"); Parcel obtain = Parcel.obtain(

2021-12-13 22:36:52 3071

原创 C中的static function

C中的static function问题源起在修改Bitcore 22.0 源码时候碰到的问题,我们想在每一次收到新块的时候,都能触发一个RPC里的getpeerinfo的调用,因此我找到了src/validation.cpp下的CChainState::UpdateTip函数, 在里面加上了实现在src/rpc/net.cpp的getpeerinfo函数. 但在include "rpc/net.h"后make 出现了下列报错.但我明明已经include了rpc/net.h, 我本来以为是我inc

2021-12-06 20:20:34 1584

原创 BalsnCTF 2021 reverse ML

预期解(未完成)下载下来一个字节码文件,是一种没见过的语言,解释器在:项目地址而且这个语言并没自带的反编译器,因此下载下来源码,发现debugger.c文件里有disassemble功能的函数。尝试编译出一个debug版本的解释器,但是报错失败了。(呜呜回头去看看官方有没有wp)非预期解直接看字节码文件里有长得像打乱后flag的明文,且发现代码最后的比较是逐字节比较。因此直接patch这些比较字符串然后进行爆破。from pwn import *context.log_level = 'war

2021-11-22 16:49:13 119

原创 2021L3HCTF luuuuua Writeup

2021 L3HCTF luuuua WriteupAAA:immortal这题做完以后感觉和ByteCTF2021的language binding很像,这是我之前写的Writeup 。首先打开java层,发现asserts/res/test.lua里的逻辑是假的。然后通过LoginActivity里的afterTextChanged方法找到关键的b.c.a.b.a.d。 注意它import org.keplerproject.luajava.LuaState; import org.ke

2021-11-15 16:20:15 5538

原创 2021强网拟态防御国际精英赛 reverse: babytms

强网拟态防御国际精英赛reverse: babytmsAAA:immortal用Ida打开babytms文件,可以看到ida自动检测出的文件类型:ida内发现大量函数无法被反编译出来。google 以后可以猜到程序是运行在TMS320C6000设备上的,因此先找到官方的手册TMS320C6000Programmer’s Guide 和 TMS320C6000 Assembly Language Tools v8.3.x User’s Guide (Rev. C)在后者的文档中我们可以找到

2021-11-15 14:44:53 932

原创 2021湖湘杯 Hideit Writeup

2021湖湘杯 HideitAAA : immortal动态调试直接x64dbg动调找到了关键的加密代码分别是xxtea 和 chacha20,直接动调从中拿出各种参数然后写代码进行解密。其实一开始没看出来chacha20,找到了这篇文章 逆向中常见的Hash算法和对称加密算法的分析 .解密dll后来在赛后和队友交流发现这题其实在数据段放了一个加密的dll文件,在解密段可以x64dbg dump出dll的代码。断点下在memncpy上,解密结束后就可以dump出对应的地址,删去pe头之前的

2021-11-15 14:39:59 3210

原创 ByteCTF2021 reverse languagebinding writeup

Language BindingAAA : immortal拿到题目ida打开发现是go语言逆向,而且函数名都被混淆掉了,动态调了一下整个人都傻了。之后尝试直接打开了new_lang_script.out,看了一下有大量的0x55所以估计就是异或了0x55,解密出来发现是一个luac文件,修改文件头以后直接用luac -l执行,发现会报错。和我自己写的lua脚本比对会发现题目luac中的opcode全都是打乱的。此时猜测这个程序就是用go语言写的一个执行luac脚本的编译器,因此真正解释执行的

2021-10-18 00:53:44 770 1

原创 Linux下的signal调试

Linux下的signal调试最近逆向时候碰到了好几个关于signal的逆向题,因此来做个总结。打开gdb输入info handle可以看到gdb对于所有信号量的默认处理方式,我们关注常用的前几个:注意到圈起来的部分是gdb在调试时自己处理而不会传递给源程序的几个信号量,因此这几个信号量就大量用于逆向题中搞一些骚操作。对这四个信号量进行改写时,如果不更改gdb中的“pass to program”选项,则程序还是会安装默认的处理方式处理该信号。想要进行调试,需要用handle 信号量名 pass进行

2021-09-28 20:37:58 541

原创 Windows下IDA Pro 7.5 无法打开的解决方案

前几天换了电脑再配环境,美滋滋的从旧电脑里直接原样拷贝来的IDA PRO竟然出现了无法打开的情况。而且这个无法打开它还不报错。于是就用x64dbg动态调试了一下。

2021-08-15 21:10:34 5308

原创 从Wireshark抓包来看IP分片

从Wireshark抓包来看UDP协议的分片文件来自于前几天CyBRICS 2021中的lx100题目,因为做题时候被IP分片坑到了,发现自己对于网络这一块的知识掌握的并不好,所以写一篇文章来理一下。为了省事就直接用比赛的pcap文件做样例了:点击。UDP/lPv4分片一般来说我们都知道MTU是1500字节,因此超过1500字节的数据就需要进行ip分片。包含源和目的端口号的UDP头部只出现在第一个分片里,分片由IPv4头部中的标识(Identification)、分片偏移(Fragment offie

2021-07-27 23:34:09 11485 4

原创 KMP算法的next数组实现

KMP算法for leetcode 实现strStr()前不久打虎符CTF的qual时候做过一道redemption_code 的逆向题。就是要逆向一个kmp算法,我那时候甚至没听说过这个算法,不过把它当黑盒也猜出了关键函数是在找子串。赛后了解了一下kmp算法的原理,但没有自己写一遍。然后转头就碰到了LeetCode的每日一题要写kmp。行吧,那么自己写一下。kmp的关键就是如何得到next数组,LeetCode里面的推导结合代码看的话会比较清楚。我在代码里加了注释,配合LeetCode的官方题解,

2021-04-20 16:50:50 30708

原创 简单计算器(逆波兰表达式)

简单计算器(逆波兰表达式)for LeetCode 逆波兰表达式求值 , 基本计算器, 基本计算器II之前其实在编译原理课上用lex写过一个计算器的小作业,但是对于计算器的universal的实现依然是一知半解,因此就借着做LeetCode自己写了一个比较通用的版本。我们在离散数学中学过后缀表示法,也叫逆波兰表示法(Reverse Polish notation)。计算机可以很轻松的算出逆波兰表示法下的算式,这也是逆波兰表达式求值这题要求我们写的东西。因此,写一个支持加减乘除括号等操作的简单运算器,最

2021-04-19 19:43:15 31728

udp抓包示例(相机)

udp抓包示例(相机)

2021-07-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除