XCTF-攻防世界-Reverse逆向类题目
文章平均质量分 80
XCTF-攻防世界CTF平台-Reverse逆向类题目Write解题过程
大灬白
没有绝对安全的系统
展开
-
XCTF-攻防世界CTF平台-Reverse逆向类——65、reverse-box(Linux32位ELF文件、gdb脚本调试)
这里写目录标题1、查看程序信息2、main函数3、sub_804858D()函数:4、程序逻辑5、方法一:gdb脚本获得内存中的数组6、gdb脚本分析:7、将输出转换会输入的flag8、C语言复现程序得到数组挑战描述$ ./reverse_box ${FLAG}95eeaf95ef94234999582f722f492f72b19a7aaf72e6e776b57aee722fe77ab5ad9aaeb156729676ae7a236d99b1df4aflag格式:TWCTF{}1、查看程序信息先原创 2021-09-11 21:12:46 · 1891 阅读 · 3 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——57、re5-packed-movement(linux32位ELF文件、movfuscator代码混淆)
目录标题方法一:搜索字节序列方法二:IDC脚本方法三:Python脚本:方法四:bgrep工具先查看文件信息: 是linux下的32位ELF文件,且被加了UPX的壳 下载最新版的UPX脱壳,UPX脱壳的Githup地址:https://github.com/upx/upx/releases/tag/v3.91 之后脱壳,指定加壳文件57,输出脱壳文件57moveupx -d 57 -o 57move赋执行权限运行程序:用IDA打开57move,找到字符串“Guess a flag原创 2021-10-24 00:39:10 · 2032 阅读 · 4 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——56、tar-tar-binks(Mac平台下的64位动态链接共享库.dylib逆向)
目录标题一、解压缩二、查看文件三、分析程序四、程序主要逻辑:五、逆向思路:步骤一:步骤二:六、解密代码:题目提供了两个文件flag.tar和libarchive.dylib一、解压缩 flag.tar是一个不能直接在windwos下解压缩的文件,直接用tar -xvf flag.tar命令解压缩: 提示不是一个tar压缩文件,但是其中包含了一个flag.txt的文件头,解压缩出了一个flag.txt文件。 再用file flag.tar命令来查看文件的格式: 是一个POSIX格式的t原创 2021-10-30 19:28:19 · 981 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——55、What-does-this-button-do(Android逆向)
程序是一个rev200.apk,安装之后运行:要求输入密码,然后点击Enter按钮比较密码是否正确:随便输入一个错误的密码,点击Enter按钮之后是没有反应的,看来之后输入正确的密码才会有用。反编译spk,找到MainActivity:onClick函数,在点击按钮的时候会触发:发现程序获取对话框的内容之后,和字符串"EYG3QMCS"进行比较,如果相等就会调用其他的函数FlagActivity.class,错误就没有任何操作,这和我们上面看到的程序表现一致所以字符串"EYG3QMCS"应原创 2021-10-24 13:14:34 · 551 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——54、echo-server(Linux32位ELF文件、花指令混淆反汇编)
目录标题第一个花指令混淆080487C1:第二个花指令混淆080487F3:第三个花指令混淆08048816:第四个花指令混淆08048859:修改程序跳转逻辑方法1:方法2:题外话: 下载附件,查看信息: 是Linux下的32位ELF文件,运行程序: 发现是一个输入字符串,将字符串中的每个字符转换成对应的ASCII码输出的程序 用IDA打开,先查看字符串窗口: 有一些用到的字符串: “Echo Server 0.3 ALPHA”这个在我们上面运行程序的时候见过了: 就原创 2021-10-30 23:29:21 · 1009 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——53、easyCpp(Linux64位ELF文件、C++逆向)
下载附件easyCpp,先查看文件信息:是Linux下的64位ELF文件,运行程序:是一个输入字符串然后判断是否正确的程序,错误就输入“You failed!”之后用IDA64打开:main函数源代码及注释:int __cdecl main(int argc, const char **argv, const char **envp){ char v3; // r15 __int64 v4; // r12 __int64 v5; // rbx __int64 v6; //原创 2021-09-25 18:05:50 · 1080 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——59、mfc逆向-200(MFC编程逆向)
先查看程序信息:Windows 32 位GUI程序,符合题目中MFC编程的程序,被加了VMProtect。运行程序:用xspy查看程序控件信息:获得程序窗口句柄:00170E52类名:944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b再观察程序的消息处理函数:接受到以下消息:WM_SYSCOMMAND(0x112,274):当用户选择窗口菜单的一条命令或当用户选择最大化或最小化时那个窗口会收到此消息;WM_PAINT(0xf,15):原创 2021-09-08 14:32:34 · 819 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——52、handcrafted-pyc(Python的pyc文件逆向)
下载题目附件之后,查看附件52:发现它就是一个Python代码文件#!/usr/bin/env python# -*- coding: utf-8 -*-import marshal, zlib, base64exec(marshal.loads(zlib.decompress(base64.b64decode('eJyNVktv00AQXm/eL0igiaFA01IO4cIVCUGFBBJwqRAckLhEIQmtRfPwI0QIeio/hRO/hJ/CiStH2M/prj07diGRP原创 2021-09-07 10:48:51 · 1634 阅读 · 1 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——31、hackme
先用ExeinfoPE查壳查看文件信息:是Linux ELF 64位文件,没有加壳然后用IDA64打开文件,打开字符串窗口:可以看到“Give me the password:”、“Congras\n”、“Oh no!\n”字符串,可能是程序输出的字符串,双击 “Give me the password:”找到它在数据段中存储的位置:选中aGiveMeThePassw按X快捷键,找到使用该变量的地方:跳转到函数中使用aGiveMeThePassw变量的地方:尝试按F5反编译代码:我原创 2021-08-27 15:59:15 · 689 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——2、answer_to_everything
解压压缩包,是一个main.exe软件,先用PEiD查壳:发现不是PE文件格式的软件用ExeinfoPE查看:发现是Linux下的可执行文件:64位的ELF文件用IDA64打开:这个程序逻辑并没有很复杂,就直接点开main函数,反编译:点进not_the_flag(v4)函数:发现代码就只用输入42,就会输出:Cipher from BillSubmit without any tags#kdudpeh告诉我们密码来自比尔,不带任何标签提交:#kdudpeh就是指提交“kd原创 2021-08-24 17:06:34 · 329 阅读 · 0 评论 -
XCTF-攻防世界CTF平台-Reverse逆向类——1、Mysterious
目录标题方法1、直接拼凑得到flag方法2、逆向计算输入的字符串得到flag先用PEiD查壳:发现没有壳,程序是VC++编写的Win32 GUI程序。运行程序:是一个让我们输入密码的程序,输入123点击“Crack”按钮没有反应。方法1、直接拼凑得到flag用IDA反编译程序:VC++编写的Win32 GUI程序最开始是从start()函数开始,调用:1、注册异常处理函数2、调用GetVersion 获取版本信息3、调用函数 __heap_init初始化堆栈4、调用 __ioin原创 2021-08-20 15:48:01 · 860 阅读 · 0 评论