当前位置: 首页 > news >正文

BUUCTF-[GWCTF 2019]re3

[GWCTF 2019]re3

查壳,64位无壳

然后进去发现主函数也比较简单,主要是一个长度校验,然后有一个mprotect函数,说明应该又是Smc,然后我们用脚本还原sub_402219函数处的代码image-20250425152956122

import idc
addr=0x00402219 
size=224 
for i in range(addr, addr+size):idc.patch_byte(i, get_wide_byte(i)^0x99) 
print("ok")

先看看sub_40207B函数,里面反复调用了sub_401CF9函数。image-20250425162926935

跟进看看sub_401CF9函数干了什么,一开始看见v5到v8这个样子还以为是rc4的加密,看了后面的内容发现肯定不是rc4了,看了一下wp,说是md5加密的特征数image-20250425174354504

那似乎这个地方的大致逻辑就是对这些unk数据进行md5加密,唯一不同就是对base64表进行了两次md5加密image-20250425192715930

然后被加密的表当作这里的a2被传入了,这里感觉也不是标准的base64解码的函数,特别是byte_4023A0是长度为256的数组,那么可以看出肯定不是base64了image-20250425193200996

用插件可以识别出aes的特征码,image-20250425193725405

然后回头看sub_402219函数,这个函数是,先对v4进行了一次处理,然后应该是将v4在sub_40196E这个函数进行了两次加密,分别传给了a1和a1+16,最后和byte这个密文进行对比image-20250425193922204

进入sub_40196E,发现下面存在AES特征,那就尝试提取密文和密钥image-20250425194100899

密钥就是给aes加密生成sbox盒的东西,也就是两次对表md5加密后的内容,这里尝试动调解出unk_603170image-20250425203449912

image-20250425203714138

http://www.xdnf.cn/news/131275.html

相关文章:

  • DeepSeek/AI驱动的销售业绩倍增实战
  • RHCE 第三次作业 正向解析
  • # 构建词汇表:自然语言处理中的关键步骤
  • 浏览器f12可以搜索接口的入参 和返回内容
  • 【Langchain】RAG 优化:提高语义完整性、向量相关性、召回率--从字符分割到语义分块 (SemanticChunker)
  • netcore8.0项目部署到windows服务器中(或个人windows电脑),利用nginx反向代理
  • 【c++11】c++11新特性(下)(可变参数模板、default和delete、容器新设定、包装器)
  • Browser-use使用教程
  • 智慧联络中心SaaS平台Java项目面试实战
  • Linux:进程间通信---匿名管道
  • 数字域残留频偏的补偿原理
  • 【Linux网络】:套接字之UDP
  • 精读27页健康医疗大数据安全管控分类分级实施指南
  • 常见游戏引擎介绍与对比
  • Python在AI虚拟教学视频开发中的核心技术与前景展望
  • uni-app 引入高德地图
  • 交叉编译paho.mqtt.c和paho.mqtt.cpp(MQTT客户端)
  • 【金仓数据库征文】金仓数据库KingbaseES:千行百业国产化征程中的璀璨之星
  • 【尚硅谷Redis6】自用学习笔记
  • leetcode0106. 从中序与后序遍历序列构造二叉树-medium
  • 巧记英语四级单词 Unit5-中【晓艳老师版】
  • 系统思考:看清问题背后的结构
  • 人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径
  • Action:Update your application‘s configuration
  • 【Harmony OS】组件
  • 高级java每日一道面试题-2025年4月25日-基础篇[反射篇]-在运行时,如何判断某个类是否实现了特定的接口或扩展了某个父类?
  • 动态规划(1)(java)(面试题)三步问题
  • 深度学习笔记22-RNN心脏病预测(Tensorflow)
  • Python torch.optim.lr_scheduler 常用学习率调度器使用方法
  • Vue3 路由