REVERSE-PRACTICE-BUUCTF-4

  • 刮开有奖
  • [BJDCTF 2nd]8086
  • [GKCTF2020]Check_1n
  • [GXYCTF2019]luck_guy

刮开有奖

exe文件,运行后无任何提示,无壳,用ida分析
WinMain->DialogBoxParamA->DialogFunc
DialogBoxParamA函数:

DialogFunc函数:

其中sub_8A10F0函数存在递归调用,它的作用就是v7到v17的数据变换位置,把这个函数的代码进行简单处理运行,得到变换位置后v7到v17的数据

#include<stdio.h>
int arr[] = { 90, 74, 83, 69, 67, 97, 78, 72, 51, 110, 103 };
void sub_8A10F0(int * a1, int a2, int a3)
{int result;int i;int v5;int v6;result = a3;for (i = a2; i <= a3; a2 = i){v5 = i;v6 = a1[i];if (a2 < result&&i < result){do{if (v6 > a1[result]){if (i >= result)break;++i;a1[v5] = a1[result];if (i >= result)break;while (a1[i] <= v6){if (++i >= result)goto LABEL_13;}if (i >= result)break;v5 = i;a1[result] = a1[i];}--result;} while (i < result);}LABEL_13:a1[result] = v6;sub_8A10F0(a1, a2, i - 1);result = a3;++i;}}
void main()
{sub_8A10F0(arr, 0, 10);for (int i = 0; i < sizeof(arr) / sizeof(int); i++){printf("%d-%c\n", arr[i],arr[i]);}return;
}

运行结果:

其中,GetDlgItemTextA函数:

继续向下走,可以看到有两个base64的变换,最后是比较判断

其中,v19~v25其实就是输入的后7个字符,它们在栈中的位置对应如下,于是利用sub_8A10F0解出String和v19,v20到v22用v5逆base64,v23到v25用v4逆base64,即可得到flag

[BJDCTF 2nd]8086

exe程序,但不能运行,程序名称提示要读汇编,ida分析
没看到什么有用的逻辑,发现一段硬编码,按c转成汇编代码

分析汇编代码,就是一段字符串和0x1F进行异或

写代码即可得到flag

[GKCTF2020]Check_1n

exe程序,运行后画了一台win xp的pc,要输入开机密码,无壳,ida分析
首先来到main函数,一通乱点

在sub_40100A->sub_404DF0中发现byte_1C76740要和“HelloWorld”这个字符串比较,猜测这个字符串就是开机密码,试一下果然开机了

开机后有几个小游戏和flag,果断去看flag那个块

提示说是虚假的flag,还有一段看起来很像base64的字符串

解base64,提示说试试砖块游戏

没明白打砖块怎么玩就死了,但是头顶给出了flag,提交成功

[GXYCTF2019]luck_guy

elf文件,无壳,ida分析
分析main函数,要求输入一个偶数,进入get_flag()函数
get_flag()函数取了5次随机数,然后用switch判断,case1给了flag的前半部分,后半部分是f2,但不知道f2,case2和case3没什么用,case4是给f2赋值,case5是对f2进行变换

由case5写脚本,注意小端序,长度为8,下标为奇数对应减2,下标为偶数对应减1,即可得到flag后半部分,连起来即为flag

REVERSE-PRACTICE-BUUCTF-4相关推荐

  1. BUUCTF Reverse/findKey

    BUUCTF Reverse/findKey 先看文件信息:32位程序,没有加壳 打开看看,标题为find flag,也没啥有用的信息 IDA32位打开,找到start函数,看到有个main,跟随跳转 ...

  2. BUUCTF Reverse helloword、findit

    BUUCTF Reverse helloword.findit helloword findit 一天一道CTF题目,能多不能少 记录一下这两道题,这两道题是安卓逆向的题目~ 第一次接触安卓逆向的题目 ...

  3. BUUCTF Reverse/Ultimate Minesweeper

    BUUCTF Reverse/Ultimate Minesweeper 先看文件信息,没有加壳,且为net编写的程序 运行是一个扫雷游戏,只要点错一个就会自动退出(左上角显示的是雷的数目,一共有897 ...

  4. BUUCTF Reverse xor

    题目:BUUCTF Reverse xor 一些犯傻后学到了新东西的记录 查壳,没壳,IDA打开 main函数很好理解,输入一个长度为33的字符串,1-32位与前一位异或后与global相等,则判定f ...

  5. BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker

    BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...

  6. BUUCTF Reverse/[GWCTF 2019]pyre

    BUUCTF Reverse/[GWCTF 2019]pyre 下载得到一个pyc文件,用这个在线反编译pyc,pyo反汇编出代码 print 'Welcome to Re World!' print ...

  7. BUUCTF reverse题解汇总

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

  8. BUUCTF Reverse(helloworld)

    BUUCTF Reverse(helloworld) 题目附件下载下来之后,是.apk后缀,所以可能是安卓逆向. 这里我用的工具是Android Killer,下载地址:https://xiazai. ...

  9. BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun

    BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun 先看文件信息, IDA64位打开,很简单的题目,只要一个个输入就行 都是返回的这种元素 _BOOL8 __fastcall i ...

  10. [BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker

    网上大部分是动调,我尝试IDC解一下, 无壳,32位,放入IDApro,查看main函数 查看wrong和str函数,借出假的flag a=[0x66,0x6B,0x63,0x64,0x7F,0x61 ...

最新文章

  1. 用matlab绘制抛物线y的x平方,我刚刚学习MATLAB,想画一下(x^2+y^2-1)^3=x^2*y^3这个曲线的图像,该怎么画呢,谢谢大家了。...
  2. Thymeleaf选择器引用公共片段
  3. SMMS 2016 啟用深色主題
  4. powershell awk_谈谈 PowerShell
  5. 前端学习(2504):vue指令v-for key
  6. LeetCode 1247. 交换字符使得字符串相同
  7. java对外发布接口文档_java之接口文档规范
  8. 转 测试linux中expect的timeout参数的作用
  9. mybatis date类型映射_Mybatis中类型映射处理器详解
  10. python笑傲江湖统计字数_基於Python的tf-idf算法实现:以《笑傲江湖》为例
  11. DB2数据库对现有表格字段修改
  12. 关于Error.captureStackTrace
  13. e站app里站hosts_硬核干货区 | E站的国际站运营知识星球上线啦
  14. android底部显示不出来,Android studio 底部的状态栏不见了如何显示
  15. linux下解压bin文件怎么打开方式,安卓手机如何打开.bin文件?
  16. 大漠插件后台绑定模式备忘录
  17. 科学家被称为计算机之父,被称为“计算机之父”,他超前的思维揭开计算机处理信息的本质!...
  18. vue批量打包下载图片
  19. 死链提交为什么不能提交 html文件,如何正确使用死链提交工具
  20. CoolEdit未定义外部错误nbsp;解决方法

热门文章

  1. [Ubuntu] Simple way to pass passwords on a shell script
  2. Visual Studio 2008 十大新功能
  3. 212. Word Search II:多个单词查找
  4. 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中
  5. POJ-1845 数论
  6. HDU-3664-Permutation Counting
  7. linux日志服务器配置在哪个文件,Linux中日志的基本配置(syslog)
  8. Linux高频命令汇总,Linux高频命令
  9. C# Task异步编程
  10. bootice 此功能仅在uefi环境下可用_电脑新手必掌握基础知识:BIOS、EFI与UEFI详解!...