REVERSE-PRACTICE-BUUCTF-11

REVERSE-PRACTICE-BUUCTF-11

    • [FlareOn4]IgniteMe
    • [MRCTF2020]Xor
    • [GKCTF2020]BabyDriver
    • [MRCTF2020]hello_world_go

[FlareOn4]IgniteMe

exe程序,运行后提示输入flag,无壳,ida分析
主逻辑在start函数中,读取输入后check,验证输入成功则输出“G00d j0b!”
igniteme-logic
分析sub_401050函数,input和v4异或后放入byte_403180,v4有一个初始值,且在循环中不断变化,实际上的运算效果为
当i==input_len-1时,byte[i]=v4^input[i],
当i等于从input_len-2到0时,byte[i]=input[i]^input[i+1]
运算完毕后byte_403180数组和byte_403000数组比较,验证输入
igniteme-sub_401050
写脚本前需要先得到v4的那个初始值,直接查函数或者调试得到v4的初始值为4,写脚本即可得到flag
igniteme-script

[MRCTF2020]Xor

exe程序,运行后提示输入flag,输入错误打印“Wrong”,无壳,ida分析
字符串交叉引用来到主逻辑函数部分,不能F5反编译,直接看汇编
主要就是将输入与对应的下标异或,input[i]^i
xor-logic
写脚本即可得到flag
xor-script

[GKCTF2020]BabyDriver

sys文件,ida分析
字符串交叉引用来到sub_140001380函数,分析可知是个走迷宫的题目,map的长度为224,具体分析可知map为14x16,即14行16列的地图,起始点为o,终止点为#,不能碰到*,23-上,37-下,36-左,38-右

__int64 __fastcall sub_140001380(__int64 a1, __int64 a2)
{__int64 v2; // rbx__int64 v3; // rdi__int64 v4; // raxint v5; // ecx__int16 *v6; // rsi__int64 v7; // rbp__int16 v8; // dxchar v9; // dlCHAR *v10; // rcxv2 = a2;if ( *(_DWORD *)(a2 + 48) >= 0 ){v3 = *(_QWORD *)(a2 + 24);v4 = *(_QWORD *)(a2 + 56) >> 3;if ( (_DWORD)v4 ){v5 = index;                               // v5=10v6 = (__int16 *)(v3 + 2);v7 = (unsigned int)v4;while ( *(_WORD *)(v3 + 4) ){
LABEL_28:v6 += 6;if ( !--v7 )goto LABEL_29;}map[v5] = '.';v8 = *v6;if ( *v6 == 23 )                          // 23-上{if ( v5 & 0xFFFFFFF0 ){v5 -= 16;goto LABEL_21;}v5 += 208;index = v5;}if ( v8 == 37 )                           // 37-下{if ( (v5 & 0xFFFFFFF0) != 208 ){v5 += 16;goto LABEL_21;}v5 -= 208;index = v5;}if ( v8 == 36 )                           // 36-左{if ( v5 & 0xF ){--v5;goto LABEL_21;}v5 += 15;index = v5;}if ( v8 != 38 )                           // 38-右goto LABEL_22;if ( (v5 & 0xF) == 15 )v5 -= 15;else++v5;
LABEL_21:index = v5;
LABEL_22:v9 = map[v5];if ( v9 == '*' )                          // 不能碰到*{v10 = "failed!\n";}else{if ( v9 != '#' )                        // 起始点为o,终止点为#{
LABEL_27:map[v5] = 'o';goto LABEL_28;}v10 = "success! flag is flag{md5(input)}\n";}index = 16;DbgPrint(v10);v5 = index;goto LABEL_27;}}
LABEL_29:if ( *(_BYTE *)(v2 + 65) )*(_BYTE *)(*(_QWORD *)(v2 + 184) + 3i64) |= 1u;return *(unsigned int *)(v2 + 48);
}

由于是sys文件,其使用的不是ascii码,而是键盘码,可知23-I-上,37-K-下,36-J-左,38-L-右
babydrive-keyboardcode
走完迷宫,再md5散列路线即可得到flag
babydrive-flag

[MRCTF2020]hello_world_go

elf文件,无壳,ida分析
左侧函数窗最后一个main_main函数,内容很乱,在runtime_memequal函数的一个参数unk_4D3C58中找到了flag

__int64 __fastcall main_main(__int64 a1, __int64 a2)
{__int64 v2; // r8__int64 v3; // r9__int64 v4; // r8__int64 v5; // r9__int64 v6; // rdx__int64 v7; // r8__int64 v8; // rcx__int64 v9; // rdx__int64 v10; // r9signed __int64 v11; // rax__int64 result; // rax__int64 v13; // ST58_8__int64 *v14; // [rsp+8h] [rbp-A8h]char v15; // [rsp+18h] [rbp-98h]__int64 *v16; // [rsp+60h] [rbp-50h]__int128 v17; // [rsp+68h] [rbp-48h]__int128 v18; // [rsp+78h] [rbp-38h]__int128 v19; // [rsp+88h] [rbp-28h]__int128 v20; // [rsp+98h] [rbp-18h]if ( (unsigned __int64)&v18 + 8 <= *(_QWORD *)(__readfsqword(0xFFFFFFF8) + 16) )runtime_morestack_noctxt();runtime_newobject(a1, a2);v16 = v14;*(_QWORD *)&v20 = &unk_4AC9C0;*((_QWORD *)&v20 + 1) = &off_4EA530;fmt_Fprint(a1, a2, (__int64)&v20, (__int64)&unk_4AC9C0, v2, v3, (__int64)&go_itab__os_File_io_Writer, os_Stdout);*(_QWORD *)&v19 = &unk_4A96A0;*((_QWORD *)&v19 + 1) = v16;fmt_Fscanf(a1,a2,(__int64)&go_itab__os_File_io_Reader,(__int64)&v19,v4,v5,(__int64)&go_itab__os_File_io_Reader,os_Stdin,(__int64)&unk_4D07C9,2LL);v8 = v16[1];if ( v8 != 24 )goto LABEL_3;v13 = *v16;runtime_memequal(a1, a2, v6, (unsigned __int64)&unk_4D3C58);// flag{hello_world_gogogo}if ( !v15 ){v8 = 24LL;
LABEL_3:runtime_cmpstring(a1, a2, (__int64)&unk_4D3C58, v8, v7);if ( (signed __int64)&v19 >= 0 )v11 = 1LL;elsev11 = -1LL;goto LABEL_5;}v11 = 0LL;
LABEL_5:if ( v11 ){*(_QWORD *)&v17 = &unk_4AC9C0;*((_QWORD *)&v17 + 1) = &off_4EA550;        // Wrongresult = fmt_Fprintln(a1,a2,v9,(__int64)&go_itab__os_File_io_Writer,v7,v10,(__int64)&go_itab__os_File_io_Writer,os_Stdout);}else{*(_QWORD *)&v18 = &unk_4AC9C0;*((_QWORD *)&v18 + 1) = &off_4EA540;        // OK!You are right!result = fmt_Fprintln(a1,a2,v9,(__int64)&go_itab__os_File_io_Writer,v7,v10,(__int64)&go_itab__os_File_io_Writer,os_Stdout);}return result;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Axure教程 axure新手入门基础(2) 简单易上手

https://www.duote.com/tech/35/102713.html (二)Axure rp的线框图元件 l 图片 图片元件拖入编辑区后&#xff0c;可以通过双击选择本地磁盘中的图片&#xff0c;将图片载入到编辑区&#xff0c;axure会自动提示将大图片进行优化&#xff0c;以避免原型文件过大;选择图片时可以…

REVERSE-PRACTICE-BUUCTF-12

REVERSE-PRACTICE-BUUCTF-12[WUSTCTF2020]level3crackMe[FlareOn6]Overlong[WUSTCTF2020]Cr0ssfun[WUSTCTF2020]level3 elf文件&#xff0c;无壳&#xff0c;ida分析 main函数中&#xff0c;获取输入&#xff0c;对输入做base64编码&#xff0c;提示有错误&#xff0c;在程序中…

Axure RP使用基础教程

一、Axure界面介绍 1、页面导航面板&#xff08;Pages&#xff09; Axure的页面管理采用类似操作系统的文件夹和页面文件的管理方式&#xff0c;不同点是&#xff0c;页面文件可以存在子页面&#xff0c;这一点是考虑了页面与页面跳转或者嵌套页面等网页特点。 页面文件管理导…

REVERSE-PRACTICE-BUUCTF-13

REVERSE-PRACTICE-BUUCTF-13firmware[ACTF新生赛2020]Oruga[Zer0pts2020]easy strcmp[GXYCTF2019]simple CPPfirmware .bin&#xff08;二进制&#xff09;文件&#xff0c;由题目提示知是路由器固件逆向 参考&#xff1a;逆向路由器固件之解包 Part1 linux安装好binwalk和fir…

REVERSE-PRACTICE-BUUCTF-14

REVERSE-PRACTICE-BUUCTF-14[FlareOn3]Challenge1[GUET-CTF2019]number_game[GWCTF 2019]re3[网鼎杯 2020 青龙组]singal[FlareOn3]Challenge1 exe程序&#xff0c;运行后提示输入密码&#xff0c;输入错误退出程序&#xff0c;无壳&#xff0c;ida分析 main函数逻辑清晰&…

REVERSE-PRACTICE-BUUCTF-15

REVERSE-PRACTICE-BUUCTF-15[2019红帽杯]xx[ACTF新生赛2020]Universe_final_answer[WUSTCTF2020]level4findKey[2019红帽杯]xx exe程序&#xff0c;运行后直接输入&#xff0c;无壳&#xff0c;ida分析 交叉引用字符串“You win&#xff01;”来到sub_1400011A0函数 主要的逻辑…

【三层架构】——COM/DCOM初识

背景&#xff1a; 在学习三层架构的时候&#xff0c;知道三层分为UI层&#xff08;表现层&#xff09;、BLL层&#xff08;业务逻辑层&#xff09;、DAL层&#xff08;数据访问层&#xff09;&#xff0c;相对于传统的二层架构&#xff08;客户端和数据库&#xff09;来说&…

REVERSE-PRACTICE-BUUCTF-16

REVERSE-PRACTICE-BUUCTF-16[UTCTF2020]basic-reequation[安洵杯 2019]crackMe[FlareOn5]Minesweeper Championship Registration[UTCTF2020]basic-re elf文件&#xff0c;无壳&#xff0c;用ida分析 main函数就是简单的加减乘除运算 shiftF12&#xff0c;在字符串窗口看到fla…

IPC之命名管道

1.管道是通过IO接口存取得字节流&#xff0c; windows中利用得是ReadFile()和WriteFile(),windows利用单一句柄支持双向IO,命名管道也称做FIFO(first in first out) 命名管道得机制&#xff1a;一个进程把数据放到管道里&#xff0c;另一个知道管道名字得进程把数据把取走&…

REVERSE-PRACTICE-BUUCTF-17

REVERSE-PRACTICE-BUUCTF-17[网鼎杯 2020 青龙组]jocker[2019红帽杯]childRE[MRCTF2020]PixelShooter[ACTF新生赛2020]SoulLike[网鼎杯 2020 青龙组]jocker exe程序&#xff0c;运行后提示输入flag&#xff0c;无壳&#xff0c;用ida分析 main函数平衡栈后&#xff0c;F5反汇编…

Excluding Files From Team Foundation Version Control Using .tfignore Files

At one point I was coding on a hobby project, using Visual Studio Online for project management and source control. Because of the technologies involved, a large number of temporary files were being generated that I didn’t want checked in. Visual Studio’…

REVERSE-PRACTICE-BUUCTF-18

REVERSE-PRACTICE-BUUCTF-18[SWPU2019]ReverseMe[FlareOn1]Bob Doge[FlareOn5]Ultimate Minesweeper[GKCTF2020]Chellys identity[SWPU2019]ReverseMe exe程序&#xff0c;运行后提示输入flag&#xff0c;输入错误打印“Try again”&#xff0c;无壳&#xff0c;ida分析 交叉引…

VS2008中Web Reference和Service Reference的区别

很早就发现在vs2008中应用web service有两种方式&#xff0c;即Add Web Reference和Add Service Reference&#xff0c;但是一直不是很清楚这两者有什么区别。趁着今天有空实验一下这两者的区别并记录下来供大家参考。 首先在网上查找&#xff0c;发现有如下两个主要区别&#…

REVERSE-PRACTICE-BUUCTF-19

REVERSE-PRACTICE-BUUCTF-19[RoarCTF2019]polyre[安洵杯 2019]game[SCTF2019]Strange apk[CFI-CTF 2018]IntroToPE[RoarCTF2019]polyre elf文件&#xff0c;无壳&#xff0c;用ida分析 main函数的结构&#xff0c;多重循环&#xff0c;是控制流平坦化&#xff0c;参考&#xf…

REVERSE-PRACTICE-BUUCTF-20

REVERSE-PRACTICE-BUUCTF-20[SCTF2019]creakme[网鼎杯 2020 青龙组]bang[WUSTCTF2020]funnyreDig the way[SCTF2019]creakme exe程序&#xff0c;运行后提示输入ticket&#xff0c;无壳&#xff0c;用ida分析 交叉引用字符串“please input your ticket:”来到sub_402540函数 …

Web Reference和Service Reference的区别

今天因为项目需要使用服务引用&#xff0c;就按之前的经验添加上了&#xff0c;步骤如下&#xff1a; 项目根目录——引用——右键——添加服务引用——高级——添加Web引用——输入接口的URL地址——回车&#xff08;下方出现的就是接口的定义的方法&#xff09;——修改Web引…

REVERSE-PRACTICE-BUUCTF-21

REVERSE-PRACTICE-BUUCTF-21[SCTF2019]babyre[MRCTF2020]EasyCpp[GUET-CTF2019]encrypt[QCTF2018]Xman-babymips[SCTF2019]babyre elf文件&#xff0c;无壳&#xff0c;用ida分析 在start函数中看到main函数的字样&#xff0c;但是左侧函数窗没有找到main函数 原因是main函数中…

原型设计工具——“墨刀”的介绍与基本教程

一、产品介绍 &#xff08;1&#xff09;产品简介&#xff1a; 墨刀是一款在线原型设计与协同工具&#xff0c;借助墨刀&#xff0c;产品经理、设计师、开发、销售、运营及创业者等用户群体&#xff0c;能够搭建为产品原型&#xff0c;演示项目效果。 &#xff08;2&#xf…

MockPlus原型设计介绍

在第八周的课堂上&#xff0c;王文娟老师在校园系统上发布了对于自行选择的原型设计软件进行资料查找以及自学的任务。因为之前的课程学习需要&#xff0c;我们已经大概掌握了原型设计软件Axure的使用&#xff0c;因此在这里&#xff0c;我选择了另一原型设计进行介绍&#xff…

REVERSE-PRACTICE-BUUCTF-22

REVERSE-PRACTICE-BUUCTF-22[SCTF2019]Who is he[FlareOn2]very_success[NPUCTF2020]Baby Obfuscation[HDCTF2019]MFC[SCTF2019]Who is he unity游戏&#xff0c;运行后输入&#xff0c;点击按钮检验输入 dnSpy打开Who is he\Who is he_Data\Managed\Assembly-CSharp.dll 在Te…