【BUUCTF】CRYPTO-刷题记录-MD5
题目信息 解题记录根据附件,拿到了一串MD5:e00cf25ad42683b3df678c61f42c6bda flag:flag{admin1}
【BUUCTF】CRYPTO-刷题记录-一眼就解密
题目信息 解题步骤 一眼Base64,flag{THE_FLAG_OF_THIS_STRING}
【BUUCTF】REVERSE-刷题记录-SimpleRev
题目信息 解题步骤 分析main 12345678910111213141516171819202122int __fastcall __noreturn main(int argc, const char **argv, const char **envp){ int v3; // eax char v4; // [rsp+Fh] [rbp-1h] while ( 1 ) { while ( 1 ) { printf("Welcome to CTF game!\nPlease input d/D to start or input q/Q to quit this program: "); v4 = getchar(); if ( v4 != 100 && v4 != 68 ) break; Decry("Welcome to CTF game!\nPlease input d/D to start or input q/Q to...
【BUUCTF】REVERSE-刷题记录-不一样的flag
题目信息 解题记录 根据提示,发现是个迷宫题目 回到伪代码: v3 的内容是 “*11110100001010000101111#”,其实也就是地图数据。 1*1111 01000 01010 00010 111# 共 25 个字符 + 起始 * + 结束 # 。 而在下面判断部分里,有这段关键逻辑: 123if ( v7[5 * *(_DWORD *)&v3[25] - 41 + v4] == 49 ) exit(1);if ( v7[5 * *(_DWORD *)&v3[25] - 41 + v4] == 35 ) 这里的索引表达式: 15 * *(_DWORD *)&v3[25] - 41 + v4 说明: *(_DWORD *)&v3[25] 是纵坐标(即 y) v4 是横坐标(即 x) 每行的偏移是乘以 5 说明地图是 5 列一行,即 5×5 的网格! 5×5 一共 25 个格子,刚好对应字符串里除开起点 * 和终点 # 的 25 个中间字符。 把字符串 *11110100001010000101111# 看作 5...
【BUUCTF】REVERSE-刷题记录-helloword
题目信息 解题步骤 一个Android逆向 IDA查看 让我看看有多少人不知道IDA其实也可以看Android? JEB Pro 12345678910111213141516171819202122232425package com.example.helloword;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.Menu;import android.view.MenuItem;public class HelloWorldActivity extends ActionBarActivity { @Override // android.support.v7.app.ActionBarActivity protected void initializeActivity(Bundle savedInstanceState) { super.initializeActivity(saved...
【BUUCTF】REVERSE-刷题记录-reverse3
题目信息 解题步骤 main函数12345// attributes: thunkint __cdecl main(int argc, const char **argv, const char **envp){ return main_0(argc, argv, envp);} 先理解一下现在的代码: 1234567891011121314151617181920212223242526272829303132333435int __cdecl main_0(int argc, const char **argv, const char **envp){ size_t v3; // eax const char *v4; // eax size_t v5; // eax char v7; // [esp+0h] [ebp-188h] char v8; // [esp+0h] [ebp-188h] signed int j; // [esp+DCh] [ebp-ACh] int i; // [esp+E8h] [ebp-A0h] ...
【BUUCTF】REVERSE-刷题记录-xor
题目信息 解题步骤 MacOS程序 1234567891011121314151617181920212223int __fastcall main(int argc, const char **argv, const char **envp){ int i; char __b[264]; // 缓冲区,用于存储用户输入 memset(__b, 0, 0x100u); // 清零缓冲区(256字节) printf("Input your flag:\n"); // 提示输入 get_line(__b, 256); // 获取输入(最多256字符) if ( strlen(__b) != 33 ) goto LABEL_7; // 长度必须为33(包含末尾的'\0'?不,strlen不包括'\0' → 所以是33个可见字符) for ( i = 1; i < 33; ++i ) __b[i]...
【BUUCTF】REVERSE-刷题记录-新年快乐
题目信息 解题步骤 发现应该是有upx壳 ida打开分析 代码的意义就是将HappyNewYear!存储到了Str2,然后和用户输入的Str1进行比对,所以得出实际上FLAG就是HappyNewYear!。 flag{HappyNewYear!}
【BUUCTF】REVERSE-刷题记录-内涵的软件
题目信息 解题步骤 IDA 分析后,第一步在 main 函数中 我们接下来跟进main_0 12345678910111213141516171819202122232425262728293031323334353637// 程序入口函数,标准main函数格式int __cdecl main_0(int argc, const char **argv, const char **envp){ char v4[4]; // 用于存储用户输入的字符(实际只用v4[0]) const char *v5; // 字符串指针,用于存储疑似flag int v6; // 倒计时计数器 v6 = 5; // 初始化倒计时从5开始 v5 = "DBAPP{49d3c93df25caad81232130f3d2ebfad}"; // 硬编码的flag // 倒计时循环:5,4,3,2,1,0 共6次 while (v6 >= 0) { printf(&byte_4250...
【Kali】让Kali虚拟机更好用
前言想必做网络安全的各位,Kali应该是大家必不可少的操作系统吧?如何快速使用Kali官网开箱即用的VM或者Hyper-V的镜像呢?本篇文章不讲如何安装,只讲如何优化。 优化过程修改root密码使用sudo passwd root修改root的密码,别忘了,默认的密码和用户是kali:kali。 更换更快的源123echo 'deb https://mirror.nju.edu.cn/kali kali-rolling main non-free contrib non-free-firmware# deb-src https://mirror.nju.edu.cn/kali kali-rolling main non-free contrib non-free-firmware' | sudo tee /etc/apt/sources.list 1sudo apt update 磁盘空间拓展默认是分配了80.1GB空间,在虚拟机设置增加到100g但是系统不会分配 1sudo fdisk /dev/sda 刷新分区状态:12sudo part...













