吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3081|回复: 1
收起左侧

[CTF] cybrics ctf 2019 Hidden Flag writeup

  [复制链接]
meanwhile 发表于 2019-7-30 22:46
本帖最后由 meanwhile 于 2019-7-30 23:19 编辑

原题链接:https://cybrics.net/tasks/hiddenflag
类型:内存取证,reverse
这道题在比赛的时候没有做出来,后来在网上找了好久才发现了writeup,附上原文链接https://teamrocketist.github.io/2019/07/27/Reverse-CyBRICS-CTF-Quals-2019-Hidden-Flag/,这题感觉难在比较综合,首先内存取证以前就没有接触过,下手的方向比较少,卡在了从一个系统的内存dump中找出目标程序,在第一步就跌倒了。。。
使用内存取证工具volatility分析文件,用imageinfo得到结果如下:

选择使用最新的Win10x64_17134来分析,然后使用pslist,psscan,windows等命令查找当前打开的程序和进程,结果一无所获,没有找到可以程序,再使用filescan扫面打开的文件,也没有什么收获,使用modules命令显示内核加载的驱动  
  
可以看到有两个驱动的位置比较奇怪,一个RamCapture…,看名字应该可以猜出是dmup出内存镜像的工具,另一个Flagostor.sys可能就是我们要找的目标,使用moddump把该文件dump出来,使用IDA打开程序的加载主函数如下  
  
图中打印函数之前的函数应该就是我们要分析的函数了,接下来的revese相对来说是比较简单的了  
  
  
  
先调用genetare生成一张表,然后加密函数直接简单的进行异或,加密和解密过程是一样,最后获得flag的脚本如下:
```
flag = map(ord,list('\x2D\xFB\x9B\xA8\x21\xF8\xB0\xB5\xFA\xEC\x58\xC5\xF9\x35\x57\xFA\xE1\x62\x0E\x19\x45\x7D\x33\x58\x6F\xC9\x88\x4F\x70\x82'))
nf=len(flag)
key=map(ord,list("qweasdzxc"))
table=[ i for i in range(256)]
nk=len(key)
def generate_table():
    a=0
    for i in range(256):
        a=(a+key[i%nk]+table)%256
        t=table
        table=table[a]
        table[a]=t
    print table
def decrypt():
    a1=0
    a2=0
    for i in range(nf):
        a1=(a1+1)%256
        a2=(a2+table[a1])%256
        t=table[a1]
        table[a1]=table [a2]
        table[a2]=t
        t=table[(table[a1]+table[a2])%256]
        flag=t^flag
generate_table()
decrypt()
print ''.join(map(chr,flag))
```
最后吐槽52竟然没有ctf的发帖板块  
插图真烦   

免费评分

参与人数 3吾爱币 +8 热心值 +3 收起 理由
udada + 1 + 1 谢了老哥,先在这边平分了
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
毛新航 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2019-8-30 17:43
@meanwhile 有ctf分类,插图有什么问题吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 16:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表