前言

因为不知道题目的名字,所以只能用附件的名称来命名(ps:哈哈哈),作为取证菜鸡只能慢慢学取证了。

附件

链接:https://pan.baidu.com/s/1eCTxufX9KC1WNHbEEF7wSA
提取码:ki9z

知识点

random.seed()

seed()没有参数时,每次生成的随机数是不一样的,而当seed()有参数时,每次生成的随机数是一样的,同时选择不同的参数生成的随机数也不一样

random.getrandbits(8)

返回一个八位大小的随机整数。

定义了一个随机数的种子之后,那么random.getrandbits获得的随机数就是固定的

random.seed('5fba44bfdd012bed894920549c673264')

os.environ

查看的是环境变量

PIL的convert

解题过程

volatility -f imagin.vmem imageinfo

volatility -f imagin.vmem --profile=Win7SP1x64 iehistory

在iehistory发现了东西
使用filescan命令,查看他们的PID

volatility -f imagin.vmem --profile=Win7SP1x64 filescan | grep -E 'png|out.py'

volatility -f imagin.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000003e9b29f0   -D ./

使用dumpfiles将其导出来,得到

import os
import random
from Crypto.Util import number
from PIL import Imageenv = os.environ
sed = env['cd1b9deda998c9104566329dc812c849']
random.seed(sed)flag = open('flag','r').read()
key = number.long_to_bytes(random.getrandbits(len(flag)*8))
res = []
for i in range(len(flag)):res.append(flag.encode()[i]^key[i])res = bytes(res)
assert(len(res)==38)c = bin(number.bytes_to_long(res))[2:]
assert(len(c)==304)
back = Image.open('1.png').convert('L')
a,b = back.size
c_p = Image.new('L',(a,b))for y in range(b):for x in range(a):if x+a*y <len(c):if c[x+a*y] == '1':c_p.putpixel((x,y),back.getpixel((x,y)) if back.getpixel((x,y))%2 == 1 else back.getpixel((x,y))+1)else:c_p.putpixel((x,y),back.getpixel((x,y)) if back.getpixel((x,y))%2 == 0 else back.getpixel((x,y))-1)else:c_p.putpixel((x,y),back.getpixel((x,y)))
c_p.convert('RGB').save('c.png')

发现是利用了python对flag进行了一些处理,把数据处理之后写进了图片里。那就需要把脚本逆一下了。

然后发现脚本使用了os.environ,那就需要通过取证获得这个数据

volatility -f imagin.vmem --profile=Win7SP1x64 envars

然后就得到了

5fba44bfdd012bed894920549c673264

然后就可以根据加密的脚本写解密了(ps:代码能力比较菜只能根据师傅的脚本抄一下)

import random
from PIL import Image
from Crypto.Util import number
import osenv = os.environ
random.seed('5fba44bfdd012bed894920549c673264')
img = Image.open('c.png').convert('L')a,b = img.size
# print(a,b)c = ['']*304
# print(len(c))for y in range(b):for x in range(a):if x + a*y <len(c):if img.getpixel((x,y))%2 == 1:c[x+a*y] = '1'else:c[x+a*y] = '0'# print(c)
key = number.long_to_bytes(random.getrandbits(38*8))
print(key)
str_c = ''.join(c)
str_c = int(str_c,2)str_c = number.long_to_bytes(str_c)
# print(str_c)
flag = []
for i in range(38):flag.append(chr(str_c[i]^key[i]))
print(''.join(flag))
flag{7f958aaef5f88ebf67f8ecc89c7c271b}

imagin.vmem取证相关推荐

  1. [2021首届“陇剑杯”网络安全大赛 决赛]内存取证writeup

    决赛不能联网-手上有只有vol2.6,这道题完全死了 文章目录 [2021首届"陇剑杯"网络安全大赛 决赛]内存取证 writeup 产品密钥 匿名邮箱 远控后门 数据清除时间 [ ...

  2. 内存取证常见例题思路方法-volatility (没有最全 只有更全)

    目录 1.从内存文件中获取到用户hacker 的密码并且破解密码,将破解后的密码作为 Flag值提交; 2.获取当前系统的主机名,将主机名作为Flag值提交; 3.获取当前系统浏览器搜索过的关键词,作 ...

  3. Otterctf 2018 内存取证

    CTF 内存取证 https://otterctf.com/challenges 1- What the password? 问题:找到 Rick 的 密码: 先使用 imageinfo 判断系统版本 ...

  4. 2017第三届美亚杯全国电子数据取证大赛团队赛write up

    本人TEL15543132658 同wechat,欢迎多多交流,wp有不足欢迎大家补充多多探讨! Questions Gary被逮捕后,其计算机被没收并送至计算机取证实验室.经调查后,执法机关再逮捕一 ...

  5. 基于内存取证进行stuxnet 病毒分析(上)

    基于内存取证进行stuxnet 病毒分析(上) stuxnet病毒翻译过来又叫震网病毒,是美国针对伊朗核电站进行的有组织开发的恶意病毒.主要是利用Windows操作系统未被发现的四个漏洞,可以通过U盘 ...

  6. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(九):自动化攻击取证

    目录 前言 1.Volatility配置 2.抓取口令的哈希值 3.直接代码注入 4.插入shellcode 结语 前言 <Python黑帽子:黑客与渗透测试编程之道>的读书笔记,会包括书 ...

  7. 内存取证神器Volatility常用指令大全

    内存取证神器Volatility常用指令大全 具体指令开头部分根据Volatility版本做修改即可 查找文件 volatility -f 19.mem --profile=Win7SP1x86_23 ...

  8. 利用Volatility进行Windows内存取证分析(一):初体验

    简介 承接上文,上文中使用cuckoo沙箱的时候提到过,分析恶意代码的时候,首先利用沙箱做粗略分析,然后可以目标程序进行动态分析(OD,Windbg调试)或者静态分析(IDA静态反汇编).如果嫌每次逆 ...

  9. linux 内存取证_内存取证工具-volatility、foremost

    内存取证 1. 内存取证工具volatility 猜测dump文件的profile值 root@kali:~/CTF# volatility -f mem.vmem imageinfo Volatil ...

最新文章

  1. ASP.NET jQuery 随笔 在TextBox里面阻止复制、剪切和粘贴事件
  2. Java FutureTask示例程序
  3. 数据仓库项目分析_数据分析项目:仓库库存
  4. 持续集成持续部署持续交付_自动持续开发和交付混合移动应用程序
  5. mysql读写分离_SpringBoot+MyBatis+MySQL读写分离
  6. 使用 ssh-keygen访问服务器
  7. 2020苏州大学计算机考研经验总结博
  8. 成员函数指针与高性能的C 委托
  9. gc buffer busy的优化
  10. 查询网站排名,收录情况
  11. 数据库decimal对应java什么类型_数据库字段类型和Java的对应关系
  12. Solar2DCorona(一) - Hello World
  13. java-天气预报的接口
  14. Easier UVM Coding Guidelines / 便捷UVM 编码指南
  15. 电脑如何登录多个微信吗?
  16. 【工具】fis3 - 使用教程(01)
  17. 【RT-Thread】STM32的UART设备读取GPS数据
  18. 以霸王逻辑处理客户投诉
  19. 给定一个随机数生成器(0,1),构造一个随机数生成器(0,4)
  20. 全球100家杂志网站(转)

热门文章

  1. kaggle——泰坦尼克数据集
  2. 技术小黑屋投稿开放了
  3. 找到了!宝藏公众号合集,新媒体运营小白必须学习
  4. Tableau使用笔记
  5. win10计算机管理没有蓝牙,win10系统中缺少打开或关闭蓝牙选项的解决方法
  6. 海信合作徕卡首款激光电视将于9月亮相;SK海力士成功研发全球最高层238层4D NAND闪存 | 美通企业日报...
  7. 2月15日市场游资操作情况以及龙虎榜
  8. c语言程序设计中植树问题,植树问题 (3).doc
  9. AR Foundation
  10. 今天开始学java(十五)内部类与匿名内部类