64位GCC

查看字符串,base甩脸上

看一眼main函数

int __cdecl main(int argc, const char **argv, const char **envp)
{char v3; // ST0F_1const char *v4; // raxchar v6; // [rsp+10h] [rbp-40h]unsigned __int64 v7; // [rsp+48h] [rbp-8h]v7 = __readfsqword(0x28u);printf("Try my base64 program?.....\n>", argv, envp);__isoc99_scanf("%20s", &v6);v3 = time(0LL);srand(v3);if ( rand() & 1 ){v4 = (const char *)base64_encode(&v6);puts(v4);puts("Is there something wrong?");}else{puts("Sorry I think it's not prepared yet....");puts("And I get a strange string from my program which is different from the standard base64:");puts("d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD==");puts("What's wrong??");}return 0;
}

输入一个值,在base64_encode()后的值为d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD==
直接解是解不出来的,应该是更改了密码表

main函数头上

果然更改了密码表

__int64 O_OLookAtYou()
{char v0; // ST03_1__int64 result; // raxsigned int i; // [rsp+2h] [rbp-4h]for ( i = 0; i <= 9; ++i ){v0 = base64_table[i];base64_table[i] = base64_table[19 - i];result = 19 - i;base64_table[result] = v0;}return result;
}
import base64
import stringflag = 'd2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD=='
base64_table =list("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
v0=''i=0
for i in range(10):v0 = base64_table[i]base64_table[i] = base64_table[19 - i]result = 19 - ibase64_table[result] = v0base64_table=''.join(base64_table)string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"print(base64.b64decode(flag.translate(str.maketrans(base64_table,string2))))

flag{Base64_is_the_start_of_reverse}

buu-[WUSTCTF2020]level3相关推荐

  1. BUUCTF RE WP39-40 [WUSTCTF2020]Cr0ssfun、[WUSTCTF2020]level3

    (为了保证隔两天一更就来水文了) 39.[WUSTCTF2020]Cr0ssfun 得到的 flag 请包上 flag{} 提交. 感谢 Iven Huang 师傅供题. 比赛平台:https://c ...

  2. [WUSTCTF2020]level3

    文章目录 拖进ida base64 O_OLookAtYou() 写个脚本: 答案: 拖进ida base64 d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9y ...

  3. [WUSTCTF2020]level3 笔记与自省

    解题过程: 直接放入IDA分析,跳入main函数,得到如下内容 int __cdecl main(int argc, const char **argv, const char **envp) {ch ...

  4. buu做题笔记——[WUSTCTF2020]朴实无华[BSidesCF 2020]Had a bad day

    BUU [WUSTCTF2020]朴实无华 robots.txt response level 1 level 2 level 3 [BSidesCF 2020]Had a bad day [WUST ...

  5. buu(前三页第二弹) RSA习题与相关知识总结

    文章目录 buu [ACTF新生赛2020]crypto-rsa3 1 题目描述: 题目分析: 收获与体会: buu [WUSTCTF2020]情书 1 题目描述: 题目分析: 收获与体会: buu ...

  6. REVERSE-PRACTICE-BUUCTF-12

    REVERSE-PRACTICE-BUUCTF-12 [WUSTCTF2020]level3 crackMe [FlareOn6]Overlong [WUSTCTF2020]Cr0ssfun [WUS ...

  7. buuctf刷题记录(6)

    [MRCTF2020]Xor 查壳: 拖入IDA中: 跟进,但是我们无法对关键函数sub_401090查看伪代码: 然后我们就直接看: 再函数中可以看到v0和byte_4212c0按位异或,最后得到b ...

  8. 由一道简单的图片隐写题总结思路

    题目来源:BUU [WUSTCTF2020]find_me 已我的经验拿到杂项图片题一般这个思路(以后自己变强了再补充): 右键看属性有无提示. binwalk分析文件是否隐写入其他文件有则forem ...

  9. WUST2020部分WP

    [WUSTCTF2020]B@se 密文:MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD== JASGBWcQPRXEFLbCDIlmnHUVKT ...

  10. BUUCTF reverse题解汇总

    本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...

最新文章

  1. MySQL—不相关子查询(单行子查询)
  2. 【freemaker】ftl freemaker String常见操作语法
  3. skimage库安装
  4. python 多层包多模块_python Modules模块操作
  5. Tomcat性能优化总结
  6. CDH 和ambari之间的比较
  7. python循环引用是什么_细说Python的循环调用、循环引用和循环导入
  8. cocos2d-x 通过JNI实现c/c++和Android的java层函数互调 .
  9. 图像局部特征(九)--斑点检测LOG算子
  10. 《程序是怎样跑起来的》第六章有感
  11. html定义页脚有什么用,HTML5中footer标签的用法你知道吗?,HTML5中的footer标签是什么意思?...
  12. jest (让人愉悦的测试框架)
  13. REC Solar推出黑色多晶半切片PERC组件,已进入量产化
  14. Ubuntu 14.04安装bugzilla
  15. 【英语】--动起来的英语进度
  16. 非最小相位系统的闭环频域辨识算法
  17. tf2 + keras学习
  18. Office365软件安装包+安装教程
  19. 预测大盘最准确的指标_一辈子死记一个指标,完全弄透彻,即可预测一个月的股市升跌!...
  20. 03-navicat12的下载、安装、注册激活

热门文章

  1. 《游戏学习》| 射击类小游戏 html5 打野鸭子
  2. Idea如何设置类头注释(图片步骤直接到位)
  3. UserAgent 解析
  4. 软件开发学习的5大技巧,你知道吗?
  5. Windows server 2019 安装VPN
  6. 记录华夏ERP配置报错
  7. APP闪退有哪些原因造成的?
  8. 关于C++报错:“表达式必须含有常值”的解决办法
  9. Android软件开发面试题,安卓面试题库
  10. dell服务器驱动安装安装系统安装,dellR720服务器安装系统win server2012X64方法