- 博客(15)
- 收藏
- 关注
原创 【DASCTF 三月赛 逆向replace】
2021年DASCTF三月赛逆向部分的学习,这个题又是一道程序运行时修改了特定函数的保护属性,从而在函数内部写入了其他函数的内存地址,达到跳转的目的,之前好像遇到过类似的题目,但这个题目一开始仍然没有分析出来,后面看了其他师傅的WP后有了思路,从头到尾独立完成了下,在此做一记录。题目上来一看,貌似逻辑挺简单:貌似很简单,然后bytes.fromhex,异或回去,得到了一个很好假flag,意料之中,怎么可能这么简单,然后就不会了,之后学习了一下,关键地方还是在:这里1这部分是获取了IsDebuggerP
2022-07-01 11:40:36
477
原创 【BUUCTF逆向 [GUET-CTF2019]encrypt】
BUUCTF逆向刷题,本题涉及到RC4加密,变表base64编码题目一进来可以看到很清晰的函数逻辑,有三个关键函数,后面就是和密文比较:这里第一个函数是在构造RC4的S盒,第二个函数是对输入的flag进行RC4加密,第三个函数是变表base64加密,这里在字符串中没有找到相关的变表,这个在具体函数中再进行分析:总结脚本积累...
2022-06-29 16:58:35
940
原创 【BUUCTF逆向 [安洵杯 2019]crackMe】
BUUCTF逆向刷题记录,本题主要涉及SM4加密算法和变表base64,hook函数这个题目刚开始直接跟进main()函数,看了半天也没看懂是个什么,而且越看越懵逼,后来看了其他师傅的WP,才有了思路,慢慢理清了逻辑:首先用findcrypt插件查了一下,发现有base64和SM4存在,跟进base64加密部分:这部分是第一次对base64编码表进行换表,大小写互换,跟进Handler:base64编码部分里面仍然动了小手脚,这里在进行索引的时候凯撒移位了24位,可以理解为编码表循环左移了24位。
2022-06-28 00:09:43
996
原创 【BUUCTF逆向 [2019红帽杯]xx】
BUUCTF刷题记录,本题主要是一道C++程序题,主要在于理清代码逻辑,c++的反汇编伪代码看的还不是很熟练。代码稍长,可以分段看,首先来到第一段,是一个获取输入的部分:这里有一个容易看错的地方,就是存储输入的那个变量叫Code,然后v6指向的内容也叫Code,但是这两个不是一个东西,后者跟进去后可以看到如图上标注所示这里是最后一个异或的逻辑,相当于从v20[3]开始,每一位都会和前面的几个数据循环异或,范围就是range(i//3),逆的时候从后往前算总体的逻辑差不多是这样,但是在解的时候卡在了解
2022-06-27 10:37:12
787
原创 【PwnTheBox逆向 asong】
记录一道PwnTheBox逆向题,原题是2018QCTF-re-asong题目一共给了3个附件,IDA打开函数后发现函数不多,但是总体逻辑并不那么简单,还是有些很绕的地方:一开始非常绕的地方是那个词频统计的地方,这里看到v4的生成与输入无关,就想着动态调试看看v4是什么,猜测v4是个列表,因为后面看到了对v4取列表元素的操作,但是又没理解这个怎么样的列表,后面看了WP,明白了词频统计的过程:这里我们可以看到按字节读取文件中的内容,经过sub_400936,算出一个数v2,然后a2[v2]++,那么这个v
2022-06-24 22:14:39
206
原创 【攻防世界逆向 BabyXor】
攻防世界逆向刷题,此题主要学习ESP定律法脱壳,一开始脱壳后程序有点问题,无法运行,不知道是不是后续哪些步骤没有完成,但是不影响反汇编,代码逻辑也没那么复杂,所以不影响做题,看了别人的WP都是动态调试出的结果,问题出在了脱壳时我没有勾选掉重新输入表,虽然不知道为什么。查壳发现不知名壳,IDA载入程序什么也看不到,没办法用我的万能脱壳工具,这里学习使用ESP定律法进行手动脱壳。OD载入程序,f8一次:在esp寄存器这里右键设置硬件断点,然后f9运行,程序会被断在刚才下的断点的位置:然后在这个位置利用ol
2022-06-21 22:42:46
378
原创 【BUUCTF逆向 jocker】
通过本题,学习了使用OD的dump插件题目无壳,进入以后看到如下函数逻辑:这里我是直接可以看到反汇编的,但是后面看了别人的WP,说是这个地方有堆栈不平衡,因而导致看不到反汇编,不知道是不是IDA版本的原因,我这里用的是7.7版本这里有两个函数,wrong和omg,通过这两个函数可以还原出一个假flag,具体就不说了,关键的地方在encrypt和finally,这两个函数在干什么的,其中encrypt无法跟进,然后再有一段(encrypt + i) ^=0x41,这么一段,一开始没明白,为什么这里是对函数
2022-06-19 21:59:26
307
原创 【BUUCTF逆向 number_game】
递归算法,识别二叉树遍历附件程序没有加壳,在IDA中打开后可以看到几行简短的函数:按照惯例我习惯先看比较函数:这里可以看出是一个55的矩阵,而且每行每列的元素都不能重复这里是最开始的一个判断,也就是说我们输入的内容必须是0-4,长度为10,sub_400758、sub_400807这两个函数一开始没有去看,直接跟了后面一个sub_400881:这个函数是一个赋值函数,把数组中的值附给刚才55矩阵的特定位置,跟进一下生成数组的数据,发现其实就是在完成一个数独,我们输入的内容就是去填充这个数独,完成数独后
2022-06-19 13:46:17
339
原创 【逆向学习 testre2】
刷题过程中碰到一道恶心了我半天的题,但归根到底还是自己菜。。。。。。程序拖入IDA,跟进main函数后发现如下内容:两个函数一个比较,先看看第一个函数干了什么,跟进sub_400894:利用给定的参数0xB7E1516、0x61C88647生成了一个数组,里面包含26个int型数,后面又和v4进行了相关运算,相当于用v4混淆掉刚才生成的数组获取输入后执行了sub_4006FC:,然后暴力求解一下,后面就顺理成章了。二、脚本示例代码如下(示例):import numpy as npimport pan
2022-05-30 11:14:38
956
原创 【ctfshow单身杯 TooYoungRSA】
前言ctfshow—单身杯 TooYoungRSA一、题目分析nc之后题目给出了个随机数(小于n)加密后的值ck,以及ck经过sha256之后的hex编码(key),后面用到这个key对flag进行AES加密,AES加密部分很好处理,但是关键在于不知道前面RSA加密部分的n和e。根据源码后面我们知道了,我们可以一直输入内容,然后函数返回相同的n和e加密后的值,这里我们可以进行选择明文攻击,得到n和e。二、公式推导由题知:k ^ e ≡ c1(mod n)此时假设我们再输入k^2,得到:(k
2022-05-28 13:46:32
435
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1