buu-[ACTF新生赛2020]SoulLike
64位elf文件
64位ida查看字符串跟进main函数
__int64 __fastcall main(__int64 a1, char **a2, char **a3)
{char v3; // al__int64 result; // raxchar v5; // [rsp+7h] [rbp-B9h]signed int i; // [rsp+8h] [rbp-B8h]signed int j; // [rsp+Ch] [rbp-B4h]int v8[14]; // [rsp+10h] [rbp-B0h]int v9; // [rsp+4Ah] [rbp-76h]__int16 v10; // [rsp+4Eh] [rbp-72h]char v11[17]; // [rsp+50h] [rbp-70h]char v12; // [rsp+61h] [rbp-5Fh]unsigned __int64 v13; // [rsp+B8h] [rbp-8h]v13 = __readfsqword(0x28u);printf("input flag:", a2, a3);scanf("%s", v11);v9 = 'ftca';v10 = '{';v5 = 1;for ( i = 0; i <= 4; ++i ){if ( *((_BYTE *)&v9 + i) != v11[i] ){v5 = 0;goto LABEL_6;}}if ( !v5 )goto LABEL_19;
LABEL_6:for ( j = 0; j <= 11; ++j )v8[j] = v11[j + 5];v3 = (unsigned __int8)sub_83A(v8) && v12 == '}' ? 1 : 0;if ( v3 ){printf("That's true! flag is %s", v11);result = 0LL;}else{LABEL_19:printf("Try another time...");result = 0LL;}return result;
}
上下是判定头字符串的actf{}
主要看sub_83A
ida提示too big function
百度得到只需要修改配置文件IDA\cfg\hexrays.cfg
找到:
MAX_FUNCSIZE = 64 // Functions over 64K are not decompiled
修改为:
MAX_FUNCSIZE = 1024 // Functions over 64K are not decompiled
重启ida,让函数再跑一会儿
卡完是一个三千多行的函数
总结:
输入的值经历三千行的变换后等于数组v4的值
逆向是不可能逆向的,直接开始爆破
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int v4[]={126,50,37,88,89,107,53,110,0,19,30,56};
int sub_83A(char *v1,int i)
{*v1 ^= 43u;v1[1] ^= 108u;v1[2] ^= 126u;v1[3] ^= 86u;//略 直接复制源代码就行v1[8] ^= 0x6Bu;v1[9] ^= 0x70u;v1[10] ^= 0x29u;v1[11] ^= 0x3Bu;if(v1[i] == v4[i])return 1;elsereturn 0;
}int main()
{int i,j;char flag[13] = "";char tmp[13] = "";for(i = 0; i < 12 ; i++){for(j = 33; j <= 126 ; j++){strcpy(flag,tmp);flag[i] = j;if(sub_83A(flag,i)){tmp[i] = j;break;}}}printf("actf{%s}\n",tmp);return 0;
}
flag{b0Nf|Re_LiT!}
buu-[ACTF新生赛2020]SoulLike相关推荐
- BUU [ACTF新生赛2020]Universe_final_answer
[ACTF新生赛2020]Universe_final_answer 首先查壳, 64bit 无壳 ida64位打开 main() __int64 __fastcall main(int a1, ch ...
- BUUCTF——[ACTF新生赛2020]SoulLike——使用angr解
64位无壳.IDApro打开,查看main函数 逻辑很简单,我们来查看sub_83A函数.点进去,toobig 看了其他博客. 我们需要将ida /ctg目录下的hexrays.cfg文件中的MAX_ ...
- [SUCTF2018]babyre [ACTF新生赛2020]fungame
文章目录 [SUCTF2018]babyre 惯用思维 常人思维 GAMEOVER [ACTF新生赛2020]fungame int __cdecl sub_401340(int a1) int __ ...
- BUUCTF Misc 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧
目录 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧 穿越时空的思念 下载文件 使用Audacity打开 点击图示 ...
- [BUUOJ] [RE] [ACTF新生赛2020] rome1
IDA 好久没写博客了,最近在刷re,这道题是我觉得十分有意义的一道题.故AC后总结分享给大家.不足之处请指正. 分析 直接导入IDA shift +F12 双击后按 ctrl + x跳转到被调用的函 ...
- BUUCTF-MISC-[BJDCTF2020]你猜我是个啥~[ACTF新生赛2020]outguess
文章目录 1.[BJDCTF2020]你猜我是个啥 2.秘密文件 3.[SWPU2019]神奇的二维码 4.[BJDCTF2020]一叶障目 5.[BJDCTF2020]just_a_rar 6.[B ...
- re学习笔记(59)BUUCTF - re - [ACTF新生赛2020]Oruga
新手一枚,如有错误(不足)请指正,谢谢!! 题目链接:[ACTF新生赛2020]Oruga IDA64位载入,进入main函数 进入sub_78A()函数 类似于象棋里面的'车'吧,不过这个要走到障碍 ...
- [ACTF新生赛2020]fungame
32位无壳 简单异或,解出来是 Re_1s_So0_funny but没有那么简单,这里只有16字节.继续分析: 这里出现了栈溢出: 4013BA函数的参数source 也就是v4(我们的flag) ...
- [ACTF新生赛2020]easyre
脱壳 使用exeinfo查看文件,发现有upx,使用upxshell解压缩.之后放进IDA中. 查看程序 很明显V4和v16都是个数组.可以看出是将v4的每个值(一共12个),去和data的那个数组去 ...
最新文章
- java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?
- maven超级pom内容
- textarea 转换 html,textarea html标签转换为纯文本
- 调集群,我的姿势不对,好累!
- 【POJ - 1287】 Networking (并查集 + 最小生成树)
- 1 MLP-Mixer: An all-MLP Architecture for Vision
- python基础代码技巧_写Python必须知道的这几个代码技巧!你会吗?
- 使用EasyRecovery轻松修复损坏的照片
- 孙鑫VC学习笔记:第十二讲 (六) 读写注册表
- 190706每日一句
- Atitit 获取数据库表主键功能的实现 数据库模块 艾提拉attilax总结 package com.attilax.sql; import java.sql.Connection; im
- UE4/UE5 虚幻引擎,Light光照系列(一)
- 解密360黑幕:离职奇虎360老员工的告白
- ACM 6174问题C++解决
- 104.android 简单的检查小米、华为、OPPO、VIVO手机系统是否打开通话自动录音功能,跳转通话录音页面,安卓怎么检查开启通话自动录音,安卓开启自动录音
- linux命令下jq的用法(curl 格式化输出json 字符串)
- 什么是Python中的套接字编程?
- cad批量选择相同块_[转载]CAD-快速选择相同或类似的物体、图元、块
- 5.5 综合案例1.0-电力采集
- Windbg使用说明书
热门文章
- Linux服务器上的mongodb:/lib64/libc.so.6: version `GLIBC_2.14‘ not found (required by /app/hems/mong)
- php-fpm 多核,linux 多核CPU性能调优
- 计算机一级电子表格TF函数,TFG1000系列DDS函数信号发生器基本操作
- win10 以太网消失了
- Nginx缓存静态文件
- rm 好凶残,太 TM 吓人了!
- HyperLynx(八)带状线串扰的仿真
- ( 22美赛C题)基于投资最优交易策略的研究(部分内容)
- UEFI 基础教程 (十四) - 设置默认启动项为UEFI Shell
- Centos安装RabbitMQ超详细(必须收藏)