CTF-RE练习
文章平均质量分 82
xctf、buu等平台题目
Lu1u~
这个作者很懒,什么都没留下…
展开
-
VNCTF2022-RE
REBabyMazepython3.8以上版本不可直接uncompyle反编译 用py38的dis或decompy++都可以反汇编这里用decompy++ 执行 .\pycdas BabyMaze.pyc > code.txt部分字节码如下BabyMaze.pyc (Python 3.8)[Code] File Name: .\BabyMaze.py Object Name: <module> Arg Count: 0 Pos Only原创 2022-02-23 22:29:03 · 1120 阅读 · 0 评论 -
西湖论剑2021
西湖论剑RE部分题解原创 2021-12-06 09:13:30 · 333 阅读 · 0 评论 -
RE-RC4加密分析
RC4算法原理及C++实现RC4加密原理流密码RC4C++代码中问题解决**在代码实现中可能的问题:**IDA逆向分析RC4算法魔改IDA中的变量分配问题源代码参考RC4加密原理流密码RC4在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种串流加密法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法整体加密流程:RC4的加密核心主要是一步异或(明文与秘钥流进行逐字节异或),主要算法在秘钥流的生成方面。首先初始化一个S盒(一个无符号字符型,大小为256的数组),根据秘钥原创 2021-08-04 15:11:28 · 1054 阅读 · 0 评论 -
RE-Base64编码分析
base64加解密c++实现Base64编码原理1、加密原理2、c++实现加解密过程IDA中算法分析std::string的使用总结base64加密分析小插曲-base64隐写源码Base64编码原理目前单字符最大为3Byte(特殊字符),汉字(2Byte)、字母(1Byte)…而base64则是通过位运算加索引表将3个字符的内容编码为4个字符,也就是编码当前所有的单字符是完全够用的,base64能实现不可见字符和图片的传递,非常的便捷实用。1、加密原理将3个8bit的转换为4个6bit的数据,再原创 2021-08-03 23:46:43 · 849 阅读 · 0 评论 -
CTFshow-吃鸡杯-RE
这里写目录标题1、ezmore2、有手就行1、ezmore1、初步分析exe文件,直接运行,可知要得到与flag相关的信息需要输入正确的文件下载码。查下壳:32二位文件,直接ida32打开2、静态分析最开始的输入,然后跟一个if判断,其中i=2时为主要逻辑。str内存储着我们输入的下闸码,接着进入了e2edef40ecaa776b8d32d58416998这个函数进行检验,v2是我们输入的编号,毫无疑问v2=8函数主要是生成了一个str2,和我们的输入str1最终进行比较,可知前几句主原创 2021-08-02 17:13:26 · 672 阅读 · 0 评论 -
XCTF-notsequence-杨辉三角算法
XCTF-notsequence1、查壳ida静态分析用z3解释器打出的非预期解1、查壳32位ELF文件且无壳,直接拖入ida找到主函数,F5看伪代码。ida静态分析可以看出有两个关键函数sub_80486CD和sub_8048783依次进入查看逻辑。sub_80486CD第一个函数大体是遍历数组,将数组数据分成很多行,每行有v5+1个元素,并且每行元素的加和等于2^(v5),看到这里相信有的师傅也能猜到是杨辉三角了,为了完整理解算法接下来看另一个函数。sub_8048783第二个函数则判原创 2021-06-25 00:01:59 · 186 阅读 · 0 评论 -
XCTF-elrond32
XCTF-elrond321、查壳2、ida静态分析提取密文获得flag1、查壳无壳,32位ELF文件2、ida静态分析主要由两个函数组成,sub_8048414用来验证key,sub_8048538函数用来进行与key的的异或加密。sub_8048141函数:一开始传入一个二维数组的行指针和0,里面直接进行一个switch和case的判断,由0进入则可以知道*a1==105即key的第一个元素的ASCII码为105,之后跳转到label19处,传入a1+1和一个生产关键码的运算。a2=原创 2021-06-24 16:32:50 · 186 阅读 · 0 评论 -
XCTF-Windows_Reverse1
XCTF-Windows_Reverse11、查壳2、ida静态分析3、提取索引字符串1、查壳查出upx壳,老套路了,本想直接一波esp把壳子脱掉,结果出现内存访问失败的错误,呜呜,爬去upx -d2、ida静态分析比较简洁,输入v6,调用函数sub_401000处理v6,最后判断v4的结果,芜湖,看似v4和v6毫无关系,其实细看调用401000函数前的汇编便能找到v4与v6间的联系。注意到初始时v4和v6在栈内的位置便可以知道,eax中存放的是v6,ecx中存放的是v4,借助寄存器来实现参数传原创 2021-06-23 22:52:48 · 215 阅读 · 0 评论 -
XCTF-gametime
XCTF-gametime1、无壳,ida打开f5看伪代码发现有很多判断,判断输入是否是他的要求,运行exe也确实需要很多判断,如果判断不通过,则直接退出程序,所以需要让判断函数sub_401507和sub_401435函数返回为真,跟进后发现这俩函数的真假都由sub_401260这个函数决定,这样只需让401260为真即可,问题规模缩小了。sub_401260函数查看401260函数的汇编在对eax中存入的值与-1进行比较和edi中的值进行比较,如果不相等就跳转到Loc_4012AD去,而这原创 2021-06-23 22:38:03 · 238 阅读 · 0 评论