「 RE 」 February 04, 2021

sm4国密加密算法研究

Words count 374 Reading time 1 mins.

一、sm4算法

1、其实和aes和des类似,sm4算法也是一种分组加密算法。

2、密钥长度128bit(16字节),分组长度也是128bit(16字节),也就是16位字符为一个组作为输入进行加密,得到...

Read article

「 RE 」 October 07, 2020

PE文件结构详解

Words count 6.6k Reading time 6 mins.

一、PE文件基础介绍

pe文件是windows操作系统下的可执行文件的一种称呼,常见的有exe文件和dll文件等,32位是PE32,64位的是PE+或者PE32+。

二、PE文件格式

1、PE文件种类如下表所示

种类 主扩展名
可执行系列 EXE, SCR
库系列 DLL, OCX, CPL, DRV
驱动程序系列 SYS, VXD
对象文件系列 OBJ

2、我们直接用010editer看下test.exe文件的情况

往后还有3个节区,分别是.text、.rdata、.data...

Read article

「 RE 」 September 01, 2020

babyre题解

Words count 28k Reading time 26 mins.

一、babyre

这题直接写个魔改的rc4算法计算s_box的值得到smc加密的异或值,然后进行patch操作即可还原出真实的judge加密逻辑:

1
2
3
4
5
s_box = [0x83,0x24,0x84,0xcf,0x6c,0x8f,0x35,0x80,0x62,0xe6,0x3b,0x0c,0xc4,0x7c,0xad,0x1b,0xbe,0xbc,0x75,0x01,0x91,0x56,0xf5,0xb8,0x03,0xc9,0xcd,0xa8,0x85,0x56,0xdc,0xbb,0x5a...
Read article

「 RE 」 May 22, 2020

smc加密研究

Words count 4.8k Reading time 4 mins.

一、smc的概念

所谓SMC(Self Modifying Code)技术,就是一种将可执行文件中的代码或数据进行加密,防止别人使用逆向工程工具(比如一些常见的反汇编工具)对程序进行静态分析的方法,只有程序运行时才对代码和数据进行解密,从而正常运行程序和访问数据。计算机病毒通常也会采用SMC技术动态修改内存中的可执行代码来达到变形或对代码加密的目的,从而躲过杀毒软件的查杀或者迷惑反病毒工作者对代码进行分析。现在,很多加密软件(或者称为“壳”程序)为了防止Cracker(破解者)跟踪自己的代码,也采...

Read article

「 RE 」 April 23, 2020

windows下的壳研究

Words count 3.7k Reading time 3 mins.

一、什么是壳

加壳的全称是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码。要经过脱壳才可以查看源代码。

加壳是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成,因此我们需要dump内存。

壳的类型通常分为压缩壳和加密壳两类。压缩壳的特点是减小软件体积大小,加密保护不是重点,

例如: Aspack, UPX(ctf比赛中中最常见的壳), PeCompact...

Read article

「 RE 」 April 17, 2020

看雪ctf二进制题解

Words count 2.6k Reading time 2 mins.

一、keygenme(逆向)

是一个crackme,已经知道用户名是KCTF的情况下,计算出序列号。这题真的是很好地锻炼了动态调试的能力,学到了~

1、首先ida分析逻辑:

这里要求输入name是大于3位小于20位,sn一定是64位的

接着进入check

这里因为进行了去符号表:

所以我们可以通过修复符号表+自定义函数名来进行加密算法的查看:

ida中shift+f5然后导入我们的静态链接库,这个库可以从github下载:

https://github.com/push0ebp/sig-database...

Read article

「 RE 」 January 03, 2020

桂林CTF逆向题解

Words count 58k Reading time 53 mins.

一、逆向

1、re

第一题,拖进ida发现是打不开的,怀疑题目加壳了,elf文件加壳的话,拖进虚拟机,直接打命令:

strings re

看到:

UPX的壳直接脱了,upx -d 文件名

看到函数名被隐藏了,但是很简单,直接shift +f12查找字符串,input flag,双击定位到那里,查看引用,ctrl + x,就可以定位到主逻辑了,F5,就是上面的界面了,接着分析一波,看到correct,直接进去:

可以知道是除法,但是少了a1[6]的检验,出题粗心吧?!直接脚本搞出来,a1[6]...

Read article

「 RE 」 January 03, 2020

OD动态查看栈技巧

Words count 8.9k Reading time 8 mins.

一、准备工作:

题目链接:https://pan.baidu.com/s/1p3s_RpW_fO_CUWXriFGuAQ

提取码:4lvd
(提示:给出的这道题是我脱壳后的,因为没有及时保存原题,抱歉,不过是简单的UXP壳,大家直接用工具去脱也是可以的,所以相信大家没毛病)

二、开始分析:

这题是当时打南宁杯时的题目,拿到题目一起分析下:

1、首先用PEID查壳,发现是UXP壳,直接用工具脱壳,我的工具如下(这一步相信都没问题的):

2、脱完壳,拖进OD,看看情况:

要求输入flag
3、接着拖进ida看...

Read article

「 RE 」 January 03, 2020

VM下的RE和PWN学习

Words count 656k Reading time 9:56

一、前言

前段时间一直碰到vm的pwn题,之前打re也是,遇到就懵,所以花时间好好整理下这部分知识点。

二、VM下的逆向

首先需要搞清楚的是,vm是一种逻辑,就是自己实现一个小型的虚拟机来实现简单的操作,有点自己开发计算机的感觉。

下面一步步讲解下最重要的内容:

1、register

1
2
3
4
5
6
7
enum regist
{
R1 = 0xe1,
R2 = 0xe2,
R3 = 0xe3,
R4 = 0xe5,
};

这是我们虚拟机的寄存器,想要的数量和类型可以自己设置,这里我们枚举...

Read article

「 RE 」 January 03, 2020

0CTF逆向writeup

Words count 4.6k Reading time 4 mins.

一、Elemnet

这题当时在算时,解出来的精度不够,所以一直提交writeup不正确,当时觉得很可惜哎,工具没找对~后来看了大佬的writeup,果然时精度的问题,他说手动调试那个值,直到精确为止,于是开始了复现之旅…..

看看ida:

一开始,从上往下分析逻辑,。接下来看看为何是这样:

这个函数将输入的大写转成小写(上网查),继续

输入44个字节,以-为分隔符号,切割出12个字符,那么flag{a-b-c},其中a和b和c都是16进制的数。

这堆东西,一开始看不懂,v12是一个数...

Read article
0%