SimpleRev

SimpleRev(flag需加上flag{}再提交) 注意:得到的 flag 请包上 flag{} 提交

拖到ida 找到关键函数:

unsigned __int64 Decry()
{
char v1; // [rsp+Fh] [rbp-51h]
int v2; // [rsp+10h] [rbp-50h]
int v3; // [rsp+14h] [rbp-4Ch]
int i; // [rsp+18h] [rbp-48h]
int v5; // [rsp+1Ch] [rbp-44h]
__int64 v6; // [rsp+20h] [rbp-40h]
__int64 v7; // [rsp+28h] [rbp-38h]
int v8; // [rsp+30h] [rbp-30h]
__int64 v9; // [rsp+40h] [rbp-20h]
__int64 v10; // [rsp+48h] [rbp-18h]
int v11; // [rsp+50h] [rbp-10h]
unsigned __int64 v12; // [rsp+58h] [rbp-8h] v12 = __readfsqword(0x28u);
v6 = 'SLCDN';
v7 = 0LL;
v8 = ;
v9 = 'wodah';
v10 = 0LL;
v11 = ;
text = join(key3, (const char *)&v9);
strcpy(key, key1);
strcat(key, (const char *)&v6);
v2 = ;
v3 = ;
getchar();
v5 = strlen(key);
for ( i = ; i < v5; ++i )
{
if ( key[v3 % v5] > && key[v3 % v5] <= )
key[i] = key[v3 % v5] + ;
++v3;
}
printf("Please input your flag:", &v6);
while ( )
{
v1 = getchar();
if ( v1 == )
break;
if ( v1 == )
{
++v2;
}
else
{
if ( v1 <= || v1 > )
{
if ( v1 > && v1 <= )
str2[v2] = (v1 - - key[v3++ % v5] + ) % + ;
}
else
{
str2[v2] = (v1 - - key[v3++ % v5] + ) % + ;
}
if ( !(v3 % v5) )
putchar();
++v2;
}
}
if ( !strcmp(text, str2) )
puts("Congratulation!\n");
else
puts("Try again!\n");
return __readfsqword(0x28u) ^ v12;
}

可以看到一开始是两个拼接函数,构造key和text两个字符串,这里需要注意的是,因为是小端序存储的一长串数,所以按字符操作的时候需要将顺序反过来,所以这里key是“ADSFKNDCLS”,text是"killshadow"。

然后就是写脚本了,这里主要是学了下怎么写爆破:

key="ADSFKNDCLS"
text="killshadow"
s=""
flag=""
loop="ABCDEFGHIJKLMNOPQRSTUVWXYZ" v2 =
v3 =
v5 = len(key)
for i in range(,v5):
if ( ord(key[i]) > and ord(key[i]) <= ):
s += chr(ord(key[i]) + )
else:
s +=key[i]
print(s) for i in range(,len(text)):
for j in loop:
if ord(text[i])==(ord(j)--ord(s[i])+)%+:
flag+=j print(flag)

BUUOJ reverse SimpleRev (爆破)的更多相关文章

  1. [BUUCTF]REVERSE——SimpleRev

    SimpleRev 附件 步骤: 例行查壳儿,,无壳,64位程序 64位ida载入,看main函数 关键代码段在Decry函数里 unsigned __int64 Decry() { char v1; ...

  2. BUUOJ reverse 不一样的flag

    不一样的flag 是不是做习惯了常规的逆向题目?试试这道题,看你在能不能在程序中找到真正的flag!注意:flag并非是flag{XXX}形式,就是一个’字符串‘,考验眼力的时候到了! 注意:得到的 ...

  3. BUUOJ reverse 刮开有奖

    刮开有奖 这是一个赌博程序,快去赚钱吧!!!!!!!!!!!!!!!!!!!!!!!!!!!(在编辑框中的输入值,即为flag,提交即可) 注意:得到的 flag 请包上 flag{} 提交 拖到id ...

  4. [BUUOJ]刮开有奖reverse

    刮开有奖 这是一个赌博程序,快去赚钱吧!!!!!!!!!!!!!!!!!!!!!!!!!!!(在编辑框中的输入值,即为flag,提交即可) 注意:得到的 flag 请包上 flag{} 提交 1.查壳 ...

  5. 2018 CISCN reverse wp

    2018 CISCN reverse wp 这题比赛的时候没做出来,主要是心态崩了看不下去..赛后看了下网上的wp发现不难,是自己想复杂了.这里将我的思路和exp放出来,希望大家一起交流学习. mai ...

  6. BUGKU-逆向(reverse)-writeup

    目录 入门逆向 Easy_vb Easy_Re 游戏过关 Timer(阿里CTF) 逆向入门 love LoopAndLoop(阿里CTF) easy-100(LCTF) SafeBox(NJCTF) ...

  7. [BUUOJ记录] [BJDCTF 2nd]old-hack & Schrödinger & elementmaster

    三道比较简单的的题放一起一写,old-hack是ThinkPHP框架的一个nday,Schrödinger和elementmaster没啥考点,就是脑洞 一.old-hack 进入题目没发现什么Hi ...

  8. [BUUOJ记录] [BJDCTF 2nd]文件探测

    感觉算是这次比赛里面综合性很强的一道题了,主要考察SSRF.PHP伪协议包含.挖掘逻辑漏洞和一个小tirck.委屈的是第一天晚上就做到了最后一步,想到了SESSION置空即可绕过,但是最后读Flag姿 ...

  9. 攻防世界 reverse 进阶 10 Reverse Box

    攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...

随机推荐

  1. [人物存档]【AI少女】【捏脸数据】活泼少女

    AISChaF_20191028022750507.png

  2. keras默认配置

    使用keras后,会在用户目录下生成.keras/keras.json文件,Windows下为:C:\Users\user\.keras\keras.json,Linux下为:~/.keras/ker ...

  3. BZOJ 1419: Red is good 期望dp

    数学期望可以理解成一个 DAG 模型. Code: #include <bits/stdc++.h> #define N 5003 #define ll long long #define ...

  4. 关于Sass和Less牵扯的问题

    关于Sass和Less牵扯的问题 关于Sass和Less Sass和Less都算是一种编程语言(后面会详谈此处牵扯出来的编程语言),都是CSS预处理器,都具有相同的功能,可以帮助我们快速编译CSS代码 ...

  5. leetcode题目11.盛最多水的容器(中等)

    题目描述: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其 ...

  6. Nexus3.x帐号权限配置

    一.使用admin登录后,点击上方齿轮图标 二.打开左侧导航,Security Privileges:具体的权限明细,比如我创建一个test仓库,这里就会生成 Roles:添加角色,设置每个角色可看到 ...

  7. ubuntu关于ssh协议登录问题

    说明 初始化系统默认不安装ssh如果你想要通过crt等工具连接,你需要手动安装ssh 1.安装ssh工具 使用ubuntu安装的命令sudo apt-get install openssh-serve ...

  8. [svc]linux中的文件描述符(file descriptor)和文件

    linux中的文件描述符(file descriptor)和文件 linux为了实现一切皆文件的设计哲学,不仅将数据抽象成了文件,也将一切操作和资源抽象成了文件,比如说硬件设备,socket,磁盘,进 ...

  9. GitHub-Microsoft:sql-server-samples

    ylbtech-GitHub-Microsoft:sql-server-samples 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://gi ...

  10. linux系统安装zint

    背景: 今天代码拉下了发现启动时报错,一看原来是同事用了zint的gem,我又没安,然后花了点时间解决,但其中踩了几次坑,所以打算记录下: 一.zint开源库的介绍 zint 是一个开源的条码编码库, ...