buu-[ACTF新生赛2020]SoulLike

news/2025/2/7 4:01:38/

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!}


http://www.ppmy.cn/news/502817.html

相关文章

vulntarget-f

文章目录 前言一、外网centerOS1.扫描内网网段存活的IP2.扫描端口与服务3.漏洞利用 二、内网Ubuntu1.扫描内网网段存活的IP2.扫描端口与服务3.漏洞利用 三、二层内网Ubuntu1.扫描内网网段存活的IP2.扫描端口与服务3.漏洞利用 总结 前言 靶场是vulntarget-f&#xff0c;环境可以…

getshell之Nexus远程命令执行(CVE-2020-10199)

MoCo菜弟弟 Nexus远程命令执行CVE-2020-10199 0x01漏洞描述 ​ 2020年03月31 日&#xff0c;Sonatype 官方发布安全公告&#xff0c;声明修复了存在于 Nexus Repository Manager 3 中的远程代码执行漏洞 CVE-2020-10199。   ​ Sonatype Nexus 是一个 Maven 的仓库管理系统&…

happy hacking keybord(hhkb pro)键盘 翻新真假判别(realforce键盘也一样)

"在此推荐一个最放心的购买键盘方式,大家可以直接去amazon日本购买,我看了下比淘宝上的奸商要便宜400~800rmb(就拿型号 PD-KB400W的hhkb pro2来说要20990日元,人民币也就1259.40元),淘宝上也有很多日本amazon代购的,代购费也就几十块钱,日本离的近一周左右就能到.假如你使…

台式计算机无法访问网络,台式机关机导致局域网内LAN设备无法连接网络

本帖最后由 星空约翰 于 2019-1-15 00:28 编辑 2018.1.14更新&#xff1a; 测试了几天&#xff0c;似乎找错方向了&#xff0c;经历了绑定全部设备MAC&#xff0c;GEN10多次重装系统、重刷BIOS&#xff0c;不停更换GEN10接入网络的位置&#xff0c;确定应该不是GEN10的问题&…

c补week1(linux c基本操作及C语言部分基础知识)

一、linux常见命令 清屏&#xff1a;ctrll 在终端输入clear 补全键&#xff1a;tab键 上下箭头&#xff1a;查找输入的历史命令 打开一个和当前路径相同的终端&#xff1a;ctrlshiftn 1.ls显示当前目录 ls -a&#xff1a;显示当前路径下的所有文件&#xff08;包括隐藏文…

ubuntu as86

# apt-cache search as86 bin86 - 16-bit x86 assembler and loaderNow we know its in bin86 package, and we do: # apt-get install bin86

Linux 启动/重启/停止 MySQL 数据库的命令

文章目录 一、启动 MySQL 数据库的命令&#xff08;一&#xff09;使用命令 service 启动&#xff08;二&#xff09;使用命令 systemctl 启动 二、停止 MySQL 数据库的命令&#xff08;一&#xff09;使用命令 service 停止&#xff08;二&#xff09;使用命令 systemctl 停止…

【STC8A8K64D4开发板】——开发板程序下载

内容 本文档描述使用宏晶官方下载软件STC-ISP给艾克姆科技STC8A8K64D4开发板下载程序的方式。 使用STC-ISP软件只可以下载HEX文件&#xff0c;不可以在线仿真。如需硬件仿真需选用STC带仿真功能的MCU在Keil软件上实现&#xff0c;仿真部分是在其他文档中介绍。 开发板程序下载…