REVERSE-PRACTICE-BUUCTF-4
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相关推荐
- BUUCTF Reverse/findKey
BUUCTF Reverse/findKey 先看文件信息:32位程序,没有加壳 打开看看,标题为find flag,也没啥有用的信息 IDA32位打开,找到start函数,看到有个main,跟随跳转 ...
- BUUCTF Reverse helloword、findit
BUUCTF Reverse helloword.findit helloword findit 一天一道CTF题目,能多不能少 记录一下这两道题,这两道题是安卓逆向的题目~ 第一次接触安卓逆向的题目 ...
- BUUCTF Reverse/Ultimate Minesweeper
BUUCTF Reverse/Ultimate Minesweeper 先看文件信息,没有加壳,且为net编写的程序 运行是一个扫雷游戏,只要点错一个就会自动退出(左上角显示的是雷的数目,一共有897 ...
- BUUCTF Reverse xor
题目:BUUCTF Reverse xor 一些犯傻后学到了新东西的记录 查壳,没壳,IDA打开 main函数很好理解,输入一个长度为33的字符串,1-32位与前一位异或后与global相等,则判定f ...
- BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker
BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...
- BUUCTF Reverse/[GWCTF 2019]pyre
BUUCTF Reverse/[GWCTF 2019]pyre 下载得到一个pyc文件,用这个在线反编译pyc,pyo反汇编出代码 print 'Welcome to Re World!' print ...
- BUUCTF reverse题解汇总
本文是BUUCTF平台reverse题解的汇总 题解均来自本人博客 目录 Page1 Page2 Page3 Page4 Page1 easyre reverse1 reverse2 内涵的软件 新年 ...
- BUUCTF Reverse(helloworld)
BUUCTF Reverse(helloworld) 题目附件下载下来之后,是.apk后缀,所以可能是安卓逆向. 这里我用的工具是Android Killer,下载地址:https://xiazai. ...
- BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun
BUUCTF Reverse/[WUSTCTF2020]Cr0ssfun 先看文件信息, IDA64位打开,很简单的题目,只要一个个输入就行 都是返回的这种元素 _BOOL8 __fastcall i ...
- [BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
网上大部分是动调,我尝试IDC解一下, 无壳,32位,放入IDApro,查看main函数 查看wrong和str函数,借出假的flag a=[0x66,0x6B,0x63,0x64,0x7F,0x61 ...
最新文章
- 用matlab绘制抛物线y的x平方,我刚刚学习MATLAB,想画一下(x^2+y^2-1)^3=x^2*y^3这个曲线的图像,该怎么画呢,谢谢大家了。...
- Thymeleaf选择器引用公共片段
- SMMS 2016 啟用深色主題
- powershell awk_谈谈 PowerShell
- 前端学习(2504):vue指令v-for key
- LeetCode 1247. 交换字符使得字符串相同
- java对外发布接口文档_java之接口文档规范
- 转 测试linux中expect的timeout参数的作用
- mybatis date类型映射_Mybatis中类型映射处理器详解
- python笑傲江湖统计字数_基於Python的tf-idf算法实现:以《笑傲江湖》为例
- DB2数据库对现有表格字段修改
- 关于Error.captureStackTrace
- e站app里站hosts_硬核干货区 | E站的国际站运营知识星球上线啦
- android底部显示不出来,Android studio 底部的状态栏不见了如何显示
- linux下解压bin文件怎么打开方式,安卓手机如何打开.bin文件?
- 大漠插件后台绑定模式备忘录
- 科学家被称为计算机之父,被称为“计算机之父”,他超前的思维揭开计算机处理信息的本质!...
- vue批量打包下载图片
- 死链提交为什么不能提交 html文件,如何正确使用死链提交工具
- CoolEdit未定义外部错误nbsp;解决方法
热门文章
- [Ubuntu] Simple way to pass passwords on a shell script
- Visual Studio 2008 十大新功能
- 212. Word Search II:多个单词查找
- 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中
- POJ-1845 数论
- HDU-3664-Permutation Counting
- linux日志服务器配置在哪个文件,Linux中日志的基本配置(syslog)
- Linux高频命令汇总,Linux高频命令
- C# Task异步编程
- bootice 此功能仅在uefi环境下可用_电脑新手必掌握基础知识:BIOS、EFI与UEFI详解!...