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

NewStarCTF2023 Reverse Week3 EzDLL WP

分析

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里调用了z3h.dll中的encrypt函数。

用ida64载入z3h.dll

直接搜索encrypt

在这里插入图片描述

找到了一个XTEA加密。接着回去找key和密文。

在这里插入图片描述
在这里插入图片描述

发现key

在这里插入图片描述

这里用了个调试状态来判断是否正确,v7=1,要v7=1才会输出Right,即程序要处于飞调试状态。

可以知道 这俩个字节数组要相同,这样v9才会=0;

在这里插入图片描述

找到密文数据。。

EXP

#include <stdio.h>
void decrypt(unsigned int *v, unsigned int * key){
    unsigned int v0 = v[0],v1 = v[1], sum = 0, delta = 0x3B9AC9FF;
    sum = 1 + delta * 33;
    for (size_t i = 0; i < 33; i++){
        v1 -= (((v0 << 3) ^ (v0 >> 4)) + v0) ^ (sum + key[(sum >> 11 ) & 3]);
        sum -= delta;
        v0 -= (((v1 << 3) ^ (v1 >> 4)) + v1) ^ (sum + key[(sum & 3)]);
    }
    v[0] = v0;
    v[1] = v1;
}
unsigned char a[41] = { 0x82, 0x43, 0xA3, 0x89, 0x6F, 0xBA, 0x80, 0xC8, 0xF8, 0xB4, 
  0x56, 0xBD, 0xB3, 0x41, 0xB2, 0x8D, 0xDA, 0x44, 0x0E, 0x04, 
  0x03, 0x2E, 0x38, 0xDE, 0x12, 0x54, 0xAD, 0x89, 0x95, 0x30, 
  0x63, 0x21, 0xDF, 0x0D, 0x94, 0x11, 0xDC, 0xB2, 0xD0, 0x11};
unsigned int key[] = {5,20,13,14};

signed main(){
    unsigned int *t = (unsigned int *)a;
    for (int i = 0; i < 9; i += 2){
        decrypt(t+i,key);
    }
    for (int i = 0; i < 10; i++){
        printf("%c%c%c%c", *((char *)&t[i] + 0), *((char *)&t[i] + 1), *((char *)&t[i] + 2), *((char *)&t[i] + 3));
    }
}

http://www.kler.cn/a/134247.html

相关文章:

  • 尽量通俗易懂地概述.Net U nity跨语言/跨平台相关知识
  • 轻松上手:使用Docker部署Java服务
  • redhat虚拟机
  • jwt用户登录,网关给微服务传递用户信息,以及微服务间feign调用传递用户信息
  • 人工智能的前沿研究方向与未来发展趋势
  • nvm 安装指定node版本时--list 显示为空
  • nodejs+vue实验室上机管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
  • c语言中*p1++和p1++有啥区别
  • 大数据Doris(二十五):Stream Load数据导入演示和其他导入案例
  • android适配鸿蒙系统开发
  • 说一说HTTP1.0、1.1、2.0版本区别和优化
  • c++中的String
  • 【算法】石子合并(区间dp)
  • Python学习之——正则表达式
  • 深度学习入门(第三天)——卷积神经网络
  • LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索Indexes for information retrieve
  • 系统移植-uboot
  • 012 C++ AVL_tree
  • 创邻科技亮相ISWC 2023,国际舞台见证知识图谱领域研究突破
  • 【kerberos】使用 curl 访问受 Kerberos HTTP SPNEGO 保护的 URL
  • 单张图像3D重建:原理与PyTorch实现
  • JS原型对象prototype
  • 【Android】使用Retrofit2发送异步网络请求的简单案例
  • devops底层是怎么实现的
  • 环境配置|GitHub——解决Github无法显示图片以及README无法显示图片
  • python趣味编程-5分钟实现一个俄罗斯方块游戏(含源码、步骤讲解)