CTF-Reverse学习-为缺少指导的同学而生_ctf reverse

使用64位的IDA打开,如果用32位可能会存在无法反编译等其他异常情况。

点击OK,如果发现缺少第一二行的选项,请检查是否安装错误(只是这道题目,别的题目可能真只有最后的选项)

一路YES,让你选文件夹的点取消

接下来使用shift+F12来查找字符串

有些同学电脑键盘上可能存在键位冲突,这样打开即可

按CTRL+F执行搜索,输入flag或者{,或者flag{。

即可搜索到flag,如果想复制,请双击这个字符串,在这个页面复制

flag{this_Is_a_EaSyRe}

退出IDA时,勾选DON’T SAVE the database,删除缓存文件,如果你还要再次打开,可暂时保留

2.内涵的软件

BUUCTF平台

你可以看到一个名字很长的文件,建议是将其改成简短的名字,如1.exe,方便使用file指令

file指令看位数,这回带了个Intel 80386标记,是32位的程序

进入后,查找字符串,flag搜不出来

换{

拿到flag

DBAPP{49d3c93df25caad81232130f3d2ebfad}
3.[BJDCTF2020]JustRE

BUUCTF平台

长度还行,就不改文件名了

放入kali,file一下,32对吧

IDA 32位打开,{搜到l东西,但直接提交是错误的

双击进去,在这个字符串上按这个,跳转引用它的地方,看看它的伪代码

F5一下,看看伪代码

C语言格式化字符串打印函数,那填个空就好,%d换成后面的数字

flag{1999902069a45792d233ac}
4.helloword

BUUCTF平台(安卓)

得到一个apk,安卓APP文件

模拟器打开

真只有hello world。那么用jadx-gui反编译查看

打开之后,文本搜索flag{

点击进去看看,提交flag正确

B站配套视频

Reserve入门-字符串泄露(1)_哔哩哔哩_bilibili

课后练习
  1. Lucknum-攻防世界平台
  2. 逆向签到题-CTF.SHOW平台
  3. [SWPUCTF 2022 新生赛]base64-NSSCTF平台 (记得base64解码)
实验2 字符串相等

什么是字符串相等呢?

题目的一般形式是要求你输入一个字符串,然后会要求你输入的字符串经过处理后等于程序内存储的一段字符串。

或者是你输入的字符串等于程序内存储的一段字符串经过特殊处理后生成的新字符串。

学习目标:
  1. 熟悉使用Linux中的file指令查看程序位数
  2. 学会字符串相等问题解题思路
  3. 开始学习理解代码
1.reverse1

BUUCTF平台

得到启动文件

file指令查看位数,为64位,IDA64位打开,shift+F12查找字符串flag,没有直接的flag

点击上图这个 this is the right flag!,然后下图右键,点击红色方框处,查看引用

会来到这个页面

按F5,反编译,看伪代码,分析代码吧少年

注释版本–核心部分:分析可以得出我们的输入要等于Str2将字符串中o换成0后的字符串

Str2字符串内容

也就是

{hell0_w0rld}

打包一下flag

flag{hell0_w0rld}
2.reverse2

BUUCTF平台

得到一个不知道是啥的文件

kali用file指令看一下文件信息

64位ELF文件,那就用64位的IDA,shift+F12查字符串先

一样的操作,查看引用

F5反编译,分析吧少年

注释代码,目测输入要和flag变量处理后的字符串相同

写个C语言函数(就是把伪代码转成可执行代码),看看怎么flag变量字符串变的,其实可以不写就是把i,r换成1(手动换也行)

#include <stdio.h>
#include <string.h>
int main(void){

  int n = strlen("hacking_for_fun}");
  printf("字符串长度:%d\n",n);

  //定义flag字符串数组
  char str[17] = "hacking_for_fun}";

  //这里就是上面那个循环
  for (int i = 0; i < 17; ++i) {
    if (str[i] == 'i' || str[i] == 'r')
      str[i] = '1';
  }

  printf("%s",str);
  return 1;
}

运行结果

套上外壳,即是flag

flag{hack1ng_fo1_fun}
3.reverse3

BUUCTF平台

得到的还是exe可执行文件

IDA 32位打开,shift+F12查字符串,发现点东西,base64,就要考虑和base64编码有关系了

定位关键函数,分析

  sub_41132F("please enter the flag:", v7);
  sub_411375("%20s", Str);
  v3 = j_strlen(Str);
  v4 = sub_4110BE(Str, v3, v14);                // 一系列看不懂的操作
  strncpy(Destination, v4, 0x28u);              // 把处理过后的用户输入传递给Destination
  v11 = j_strlen(Destination);
  for ( j = 0; j < v11; ++j )
    Destination[j] += j;
  v5 = j_strlen(Destination);
  if ( !strncmp(Destination, Str2, v5) )        // 和目标字符串Str2比较
    sub_41132F("rigth flag!\n", v8);
  else
    sub_41132F("wrong flag!\n", v8);
  return 0;

str2 = “e3nifIH9b_C@n@dH”

先把这一步逆向,python脚本

# 目标字符串
s="e3nifIH9b_C@n@dH"

# flag
flag=""

# 源程序逻辑是 
for i in range(len(s)):
    flag+=chr(ord(s[i])-i)

# 输出flag
print(flag)

#e2lfbDB2ZV95b3V9

然后仔细看那个看不懂的操作,网上搜了下,是base64加密一类的

那就解密一下

python解法

import base64
# 目标字符串
s="e3nifIH9b_C@n@dH"

# flag
flag=""

# 源程序逻辑是 
for i in range(len(s)):
    flag+=chr(ord(s[i])-i)

# 输出flag
print(flag)

# 还有层base 64
print(base64.b64decode(flag))

#b'{i_l0ve_you}'

CyberChef在线工具解法CyberChef

B站配套视频

Reverse入门 字符串相等_哔哩哔哩_bilibili

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

[外链图片转存中…(img-M4cRLa5J-1715483726000)]

[外链图片转存中…(img-PFyd0gHF-1715483726001)]

[外链图片转存中…(img-3ViGDBBa-1715483726001)]

[外链图片转存中…(img-EiIPv403-1715483726001)]

[外链图片转存中…(img-AmM84Zm5-1715483726002)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CTF ReverseCTF逆向)是一种在CTF竞赛中涉及到的题目类型,要求参赛选手具备较强的反汇编和反编译技术,并能够进行逆向分析。逆向分析与功能猜测结合,通过逆向分析缩小猜测范围,然后通过逆向验证猜测的思路。 在实际的CTF Reverse练习中,参赛选手可以通过访问特定网页或平台来进行实验和练习。例如,可以尝试进入实验网页[CTF- REVERSE练习之逆向初探](https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182014111410002900001&pk_campaign=freebuf- wemedia)来进行逆向初步探索。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CTF逆向(reverse)入门脑图](https://download.csdn.net/download/qq_32465127/10744933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【完善中】CTF逆向Reverse题的玩法](https://blog.csdn.net/m0_37157335/article/details/123694868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [CTF-REVERSE练习之逆向初探](https://blog.csdn.net/text202202/article/details/129824733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值