- 博客(25)
- 收藏
- 关注
原创 BUUCTF [MRCTF2020]Transform
这个程序是一个简单的谜题或挑战,要求用户输入一个长度为33的字符串,该字符串经过特定的处理(使用。数组中的值完全匹配。成功匹配后,程序会打印出用户的输入作为“标志”,并结束。shift+F12查看可疑字符串 看到flag 继续跟进。,并对这个字符进行异或操作,异或的值为。这个加密的思路是将str先赋值再异或。数组作为索引和异或密钥)后,必须与。对于每个字符,它使用。中取出字符,然后将这个字符赋值给。查看主函数 F5查看伪c代码。那逆向的思路是先异或再赋值。记得用flag{}包裹。第一个for循环遍历。
2024-08-22 11:23:19
344
原创 BUUCTF [ACTF新生赛2020]usualCrypt
函数的主要目的是交换两个数组中索引从6到14的元素。我们继续跟进sub_401000函数。这个函数能够处理可变数量的参数,并通过这些参数(以及文件句柄)来执行具体的文件操作。根据以上的代码 可以推测sub_401080函数实现的是交换过6到15的编码表的base64编码。函数执行了一个与文件相关的操作,该操作涉及到了文件的某种“开始”和“结束”处理(通过。反脚本的思路是先对字符串进行大小写转换,再对新的编码表进行新的base64解密。可以发现主函数引用了sub_403CF8函数,sub_401080函数。
2024-08-22 10:41:08
230
原创 BUUCTF [GUET-CTF2019]re
CTF-reverse中有一类题目是通过约束方程求解变量的值,然后转化为对应的ASCII码,最终获得flag,约束方程以及要求解的未知数往往非常多,因此手算十分不现实,借助python中的z3模块可以很快完成求解。Z3求解器给我们提供了一个非常便利求解方式,我们只需要定义未知量(x,y等),然后为这些未知量添加约束方式即可求解。这里发现输出correct函数的是sub_4009AE函数 跟进sub_4009AE函数 发现以下伪c代码。这里进行的运算是X*a1[n]!利用Z3求解器编写代码。
2024-08-21 10:22:33
503
原创 BUUCTF [WUSTCTF2020]level1
把level文件拖入IDA 查看main函数 F5大法查看伪c代码。解压文件夹 打开output.txt 发现一串数字。这段代码通过一个从 1 到 19 的循环,对。数组中的每个字节进行处理,并打印处理结果。),然后将结果作为无符号整数打印出来。),同样以无符号整数的形式打印结果。这里记得用flag包裹哦!),则将该字节的值左移。解密思路就是一个逆过程。
2024-08-20 17:27:27
84
原创 BUUCTF [FlareOn4]login
F12查看源代码 这里一眼看到rot 猜测和rot加解密有关。于是将可疑字符串进行rot解密。用flag{}包裹得到flag。打开login.html。
2024-08-20 16:48:08
71
原创 BUUCTF rsa
利用yufu工具把n分解为p和q 这里需要注意yufu工具只能处理十进制的数据 我们要把n的十六进制转换为十进制继续大整数因数分解。接下来开始对c进行转换 c用记事本打开是乱码 用010打开。打开文件夹 发现一个公钥文件和一个密文文件。这里可以利用在线网站分解为n和e。当然也可以利用在线网站分解。现在知道了n和e 还有p和q。这串数字就是密文的十进制^用记事本把公钥文件打开。
2024-08-20 16:01:35
133
原创 BUUCTF [ACTF新生赛2020]rome
例如:如果k等于3,则在编码后的消息中,每个字母都会向前移动3位:a(明文)会被替换为d(密文);字母表末尾将回卷到字母表开头。于是,w会被替换为z,x会被替换为a。凯撒加密是一种简单的消息编码方式:它根据字母表将消息中的每个字母移动常量位k(密钥)。shift+F12查看可疑字符串 发现了you are correct。这里判断 flag[i] 是否属于大写小写字母。打开流程图 F5大法查看伪c代码。为了方便看代码 把数字转换为字符。这里我参考了其他师傅的做法。这里了解到了凯撒加密。
2024-08-20 12:00:04
272
原创 BUUCTF [GWCTF 2019]pyre
第一个for循环对每个字符的ASCII码加上其索引,然后对128取模,再加128后再次对128取模。pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code字节码。列表,对每个元素与其后一个元素进行异或(XOR)操作。编写反脚本可以直接逆操作 先对字符串进行异或再进行取模。这个是一个python的逆向问题 一打开是pyc文件。pyc文件可以由一个在线网站打开。第二个for循环对这段代码遍历。具体的解释可以看这篇博客。这里记得用flag包裹。
2024-08-20 10:34:49
130
原创 [ACTF新生赛2020]easyre
的字符数组(或字符串)的前五个字符是否分别等于ASCII码中的'A'(65)、'C'(67)、'T'(84)、'F'(70)和'{'(123)。同时,它还检查了一个名为。v7,v8,v9为int型,因此有12个字节,接下来的一个循环便是来定义这个v5。去壳后拖入IDA shift+f12查看可疑字符串 看到一串字符串 双击点进去。的变量是否等于'}'的ASCII码(125)。不等于'}'),则函数将返回0,这通常表示验证失败或错误。把文件拖入IDA发现显示极少的函数 明白应该是加壳了。
2024-08-19 11:35:35
220
原创 BUUCTF 简单注册器
以及第0个字符和第2个字符的ASCII码值之和减去48等于56。这个条件要求字符串长度为32,且第32个字符是。发现是apk文件 直接拖入jadx-gui。发现flag 继续跟进。这段应该是最主要的代码。
2024-08-19 10:31:31
187
原创 BUUCTF JustRE
这段伪C代码是一个典型的Windows对话框回调函数(Dialog Procedure),用于处理对话框中的消息。在Windows编程中,对话框回调函数是处理对话框内控件(如按钮、文本框等)事件的函数。sprintf()函数最常见的应用是把整数打印到字符串当中,sprintf()为变参函数。它的功能是将各种类型的数据格式化为字符串,并存储到一个字符数组中。这里发现了一个疑似flag的字符串。这行代码的作用是将两个整数(函数会依次替换格式字符串中的。)、消息相关的附加信息()以及一个固定的字符串(
2024-08-12 16:14:04
113
原创 BUUCTF Java逆向解密
的值是 64),然后与 32 进行异或(XOR)操作来实现的。最后比较 KEYList 和 Resultlist 是否一致,一致时候输出 “congratulations”而解密过程是将key值与32(0x20)进行异或,然后-64即可得到flag。而.class文件需要jadx.gui打开。解压文件夹 发现是.class文件。那么什么是.class文件呢?加密过程是通过将每个字符。根据这段代码写出解密脚本。
2024-08-12 15:57:05
206
原创 BUUCTF luck_guy
中的一个字符串拼接函数,它用于将一个字符串(source)拼接到另一个字符串(destination)的末尾。根据以上知识 s的存储方式是小端存储 选中字符串按shift+E可以查看16进制 以此来判断是什么存储 由低地址到高低址 所以s是小端存储。f2为空值 看接下来的代码 case4的作用是将f2赋值 这里看了其他大佬的wp 学到了一个新的知识 即大小端存储。memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。s的值是由f1和f2拼接而成的。s字符逆序存放得到正确的s。
2024-08-11 11:46:55
242
原创 BUUCTF SimpleRev
而text值为key3和v9的拼接值。同时还要注意v9存储方式为小端方式,即高位在前,实际存储应该要倒过来。strcat函数是一个用于追加字符串的函数,即将一个字符串中的内容追加到另一个字符串后面。strcpy函数是一个用于拷贝字符串的函数,即将一个字符串中的内容拷贝到另一个字符串中。src是用复制和连接函数生成的,src=‘ADSFKNDCLS’找到key3的值 可得text=‘killshadow’查看decry函数 打开流程图 F5查看源代码。这段是将key值转换为小写。双击flag 查看源代码。
2024-08-07 17:12:24
145
原创 BUUCTF 不一样的flag
分析这段代码 第一个if语句‘1’表示退出 第二个if语句‘#’表示输出正确的flag。可知规则应该是0通过 1不能通过 #为迷宫出口。查看函数 打开流程图 并F5查看伪c代码。得到flag为222441144222。出现了上下左右的提示 很明显的迷宫题。查看这段字符串 是一个5*5的矩阵。shift+F12查找可疑字符串。点击数字按R键将数字转化为字符。这里发现flag 点进去查看。学到了一个新题型 迷宫题。把exe文件拖入IDA。接下来寻找迷宫的规则。
2024-08-07 16:08:40
187
原创 BUUCTF helloword
APK 文件包含了应用程序的所有文件,包括静态资源文件(assets)、库文件(lib)、签名文件(META-INF)、编译资源文件(res)、配置清单文件(AndroidManifest.xml)、核心代码文件(classes.dex)和资源映射文件(resources.arsc)等信息。而apk文件其实就是一个压缩包,我们可以将apk文件的后缀改为.zip来观察apk中的文件。而处理apk文件我们直接丢进jadx-gui即可 可以更好的查看源码。下载附件 发现是一个apk文件。那么什么是apk文件呢?
2024-08-07 15:36:54
140
原创 BUUCTF reserve3
先做一个减法得到字符串 再进行base64解码。发现base64编码 查看主函数和可疑字符串。这里是一个base64加密 再做一个加法。得到flag{i_l0ve_you}
2024-08-06 17:47:14
108
原创 BUUCTF xor
Xor运算,全称Exclusive OR运算,是一种逻辑运算,用于比较两个二进制数的对应位。简单来说,Xor运算的结果是:如果两个比较的位相同,则结果为0;如果两个比较的位不同,则结果为1。这段表示_b长度不为33时为failed 故_b长度应该为33。中的函数,用于将一块内存区域的每个字节设置为指定的值。这里发现一串可疑的字符串 转换为16进制 更方便计算。函数很少 一下就能找到主函数 F5查看伪c代码。第一个for循坏进行和前一位的异或的操作。到这里也明白肯定要写一个反脚本了。
2024-08-06 16:52:48
118
原创 BUUCTF 新年快乐
strcmp函数是C语言中的字符串比较函数,用于比较两个字符串的大小。解压文件 进入文件目录 upx -d加地址 脱壳成功。直接拖进IDA 发现函数很少 肯定是加壳了。再次将exe文件拖进IDA 发现脱壳成功。双击this is true flag。进入main函数 F5查看伪c代码。shift+F12 查看字符串。准备脱壳 我用的upx脱壳机。可以直接得到flag。
2024-08-06 11:06:02
120
原创 BUUCTF 内涵的软件
这里出现了一串可疑字符串 试着用flag包裹字符串交上去 发现是正确的flag。先查壳 发现没壳 直接拖进IDA。按shift+F12 查找字符串。
2024-08-06 10:32:43
171
原创 BUUCTF reverse2
这段代码的意思是将flag中有的i和r转化为1 这里点击数字按R键可转化为字符。双击函数main:loc_400854↑o进入流程图 f5查看伪c代码。拖进IDA shift+f12 寻找字符串flag。同时将flag中的r和i字符转换为1得到。比较函数,用于比较两个字符串的大小。这里我们寻找flag值 双击flag。这里的7Bh可以按R键转换为{strcmp函数是C语言中的。接下来我们慢慢分析代码。
2024-08-06 10:21:58
315
原创 BUUCTF reverse1解题思路
strncmp函数为字符串比较函数 ,功能是将str1和str2进行比较,最多比较n个字节。若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 小于s2,则返回小于0的值。而这段代码的意思是把str1与str2两字符串的前v3位数做一个比较,若str1=str2,返回0;大于返回正数,小于返回负数。这个for循环是将ASCII值做了处理。在IDA中,选中数字按"R"键可以将数字转换为字符。定位地址 打开流程图 F5大法查看代码。我们寻找str2 双击str2。
2024-08-02 17:52:32
188
原创 墨者 PHP代码分析溯源(第2题)
字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。审计源代码,需要找一个值,这个值的md5值在php中==题中给定值的md5值。常见的如下:在md5加密后以0E开头。随便交一个得到key。
2024-08-02 17:13:55
249
原创 墨者学院 IP地址伪造(第1题)
利用bp抓包伪造X-Forworded-For:127.0.0.1 发包得到key。抓包弱口令爆破得到 账号admin 密码admin。登录后发现只允许在服务器上登录。打开靶场发现是一个登录界面。
2024-08-02 16:55:48
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人