攻防世界----->Replace

前言:做题笔记。

下载 查壳。

upx32脱壳。

32ida打开。

先运行看看:

没有任何反应?

猜测又是 地址随机化(ASLR)---遇见过。

操作参考:

攻防世界---->Windows_Reverse1_dsvduyierqxvyjrthdfrtfregreg-CSDN博客

然后可以正常运行了。

ida分析:

main:

跟进 encode看看;


 

分析:

很妙啊~(兴奋,通过溢出取值,实现变量表( 奇->偶 ),)

 看不明白直接看内存:(记得按a)

(这是一张表。)

通俗:

          v8 = 表的偶数位

        v10 = 表的奇数位

观察:算法比较独立,发现没有? 

突破点:

因为它的计算与传入的 a1(input) 没有任何关联,所以值是可以进行计算的。

诺:

可以计算。

没必要去,硬 v6 v7的值 >>>v5>>>a1[i] ——没必要。。思路最重要。

正向求解简单很多。因为(v11 + v12) ^ 0x19 的值(已知)

爆破v5(input)就好了 

完整代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main()
{int i; // edxchar v5; // alint v6; // esiint v7; // edichar v8; // alint v9; // eaxchar v10; // clint v11; // eaxint v12; // ecxunsigned char table[100] = "2a49f69c38395cde96d6de96d6f4e025484954d6195448def6e2dad67786e21d5adae6";//表unsigned char byte_4021A0[300] =// CMP的数组{99, 124, 119, 123, 242, 107, 111, 197,  48,   1,103,  43, 254, 215, 171, 118, 202, 130, 201, 125,250,  89,  71, 240, 173, 212, 162, 175, 156, 164,114, 192, 183, 253, 147,  38,  54,  63, 247, 204,52, 165, 229, 241, 113, 216,  49,  21,   4, 199,35, 195,  24, 150,   5, 154,   7,  18, 128, 226,235,  39, 178, 117,   9, 131,  44,  26,  27, 110,90, 160,  82,  59, 214, 179,  41, 227,  47, 132,83, 209,   0, 237,  32, 252, 177,  91, 106, 203,190,  57,  74,  76,  88, 207, 208, 239, 170, 251,67,  77,  51, 133,  69, 249,   2, 127,  80,  60,159, 168,  81, 163,  64, 143, 146, 157,  56, 245,188, 182, 218,  33,  16, 255, 243, 210, 205,  12,19, 236,  95, 151,  68,  23, 196, 167, 126,  61,100,  93,  25, 115,  96, 129,  79, 220,  34,  42,144, 136,  70, 238, 184,  20, 222,  94,  11, 219,224,  50,  58,  10,  73,   6,  36,  92, 194, 211,172,  98, 145, 149, 228, 121, 231, 200,  55, 109,141, 213,  78, 169, 108,  86, 244, 234, 101, 122,174,   8, 186, 120,  37,  46,  28, 166, 180, 198,232, 221, 116,  31,  75, 189, 139, 138, 112,  62,181, 102,  72,   3, 246,  14,  97,  53,  87, 185,134, 193,  29, 158, 225, 248, 152,  17, 105, 217,142, 148, 155,  30, 135, 233, 206,  85,  40, 223,140, 161, 137,  13, 191, 230,  66, 104,  65, 153,45,  15, 176,  84, 187,  22};i = 0;//控制循环 while (1){v8 = table[2 * i];if (v8 < 48 || v8 > 57)v9 = v8 - 87;elsev9 = v8 - 48;//对 表偶数位的加密v10 = table[(2 * i) + 1];v11 = 16 * v9;if (v10 < 48 || v10 > 57)v12 = v10 - 87;elsev12 = v10 - 48;  //对 表奇数位的加密/* (v11 + v12) ^ 0x19)无压力计算。。 */for (int v5 = 0; v5 < 128; v5++){//爆破v5的值v6 = (v5 >> 4) % 16;v7 = ((16 * v5) >> 4) % 16;if (byte_4021A0[(16*v6+v7)] == ((v11 + v12) ^ 0x19)){printf("%c",v5);break;}}i++;if (i >= 35) break;}printf("\n");system("pause");return 0;
}

flag{Th1s_1s_Simple_Rep1ac3_Enc0d3}

题外话:

地址随机化,并不影响你静态分析,只对动调影响,对于这题影响不大。

感觉,接触了其他方向,确实是有助于reverse学习的。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557757.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

UGUI(现成组合控件)

Drop Down Scroll View Scroll Bar size是滚动条的填充程度 Slider 如果设置为静态&#xff0c;那么传入的值始终为自己设置的那个值 Input Field content type为standard时 可以设置line type&#xff0c; 只读不改&#xff0c;就是可以复制&#xff0c;但是你已经不能输入了…

使用.mdf及.ldf恢复SQL SERVER数据库

文章目录 [toc]1.使用.mdf和对应的.ldf文件恢复数据库1.1 将对应的.mdf和.ldf复制到SQL SERVER路径下1.2 打开SSMS 1.使用.mdf和对应的.ldf文件恢复数据库 1.1 将对应的.mdf和.ldf复制到SQL SERVER路径下 一般默认路径是&#xff1a;C:\Program Files\Microsoft SQL Server\MS…

YOLO11改进|注意力机制篇|引入MSCA注意力机制

目录 一、【MSCA】注意力机制1.1【MSCA】注意力介绍1.2【MSCA】核心代码 二、添加【MSCA】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【MSCA】注意力机制 1.1【MSCA】注意力介绍 下图是【MSCA】的结构图&#xff0c;让我…

easyconnect配置wireshark抓包

文章目录 概述过程配置Wireshark抓包 概述 过程 配置Wireshark抓包 首先需要配置虚拟网卡SangforVPN可被Wireshark识别 重启 sc stop npcap sc start npcap# 清空路由表 netsh int ipv4 reset # 查看路由表 route print

企业建站能带来些什么?2024外包建站公司哪家好

目的的话只有企业自己知道&#xff0c;但作用还是有很多的—— 1.塑造企业精神与文化-对内 企业内部不管是否真的存在企业精神和企业文化&#xff0c;在制作网站的过程中都会考虑到这方面的内容&#xff0c;因为这是企业网站内容中不可或缺的一部分。 在企业内部还不存在所谓…

Java中的冒泡排序法

冒泡排序 排序的介绍冒泡排序法代码实现 排序的介绍 冒泡排序法 代码实现 将五个无序&#xff1a;24&#xff0c;69&#xff0c;80&#xff0c;57&#xff0c;13使用冒泡排序法将其排成一个从小到大的有序数列 public class test{public static void main(String[] args){int a…

tensorflow快速入门--如何定义张量、定义网络结构、超参数设置、模型训练???

前言 由于最近学习的东西涉及到tensorflow的使用&#xff0c;故先简单的学习了一下tensorflow中如何定义张量、定义网络结构、超参数设置、模型训练的API调用过程&#xff1b;欢迎大家&#xff0c;收藏关注&#xff0c;本人将持续更新。 文章目录 1、基本操作1、张量基础操作创…

时间序列+Transformer席卷而来,性能秒杀传统,创新性拉满,引爆顶会!

时间序列分析与Transformer模型的结合&#xff0c;已成为深度学习领域的一大趋势。这种结合能够高效捕捉序列中的长期依赖关系&#xff0c;提升时间序列分析和预测的准确性。 时间序列Transformer技术在股票价格预测、气候预测、交通流量预测、设备故障预测、自然语言处理等多…

封装vue-cropper,图片裁剪组件

组件基本使用: 这里的action同时也可以传相对路径&#xff0c;比如封装了axios&#xff0c;那么组件源码里就不能引入元素axios&#xff0c;可以替换为封装的axios。传 action"/file/upload" 源代码&#xff1a; <script setup> import WuyuCropper from /com…

【基础算法总结】字符串篇

目录 一&#xff0c;算法简介二&#xff0c;算法原理和代码实现14.最长公共前缀5.最长回文子串67.二进制求和43.字符串相乘 三&#xff0c;算法总结 一&#xff0c;算法简介 字符串 string 是一种数据结构&#xff0c;它一般和其他的算法结合在一起操作&#xff0c;比如和模拟&…

远程控制软件推荐:亲测好用!

无论是在家办公、技术支持还是远程协助家人&#xff0c;一个好的远程控制工具都能让我们的工作更加高效。下面&#xff0c;我将分享我对几款流行的远程控制软件的个人体验&#xff0c;并给出我的推荐。 向日葵远程控制 直达链接&#xff1a;down.oray.com 向日葵远程控制是…

如何实现一个基于 HTML+CSS+JS 的任务进度条

如何实现一个基于 HTMLCSSJS 的任务进度条 在网页开发中&#xff0c;任务进度条是一种常见的 UI 组件&#xff0c;它可以直观地展示任务的完成情况。本文将向你展示如何使用 HTML CSS JavaScript 来创建一个简单的、交互式的任务进度条。用户可以通过点击进度条的任意位置来…

Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存

1、文件所在位置&#xff1a; 2、需要Guava依赖&#xff1a; <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>3、启动时就读取放入缓存的代码&#xf…

10.8作业

优化登录框&#xff1a; 当用户点击取消按钮&#xff0c;弹出问题对话框&#xff0c;询问是否要确定退出登录&#xff0c;并提供两个按钮&#xff0c;yes|No&#xff0c;如果用户点击的Yes&#xff0c;则关闭对话框&#xff0c;如果用户点击的No&#xff0c;则继续登录 当用户点…

26.删除有序数组中的重复项

题目::26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 思路:只要不和前面的数一样就可以移动指针&#xff0c;进行赋值 代码: class Solution { public:int removeDuplicates(vector<int>& nums) {int slow 0 ;for(int fast 1; fast < …

Sharding-JDBC笔记04-分库分表实战

文章目录 前言一、需求描述二、数据库设计三、环境说明四、环境准备4.1.mysql主从同步(windows)4.2.初始化数据库 五、实现步骤5.1 搭建maven工程引入maven依赖 5.2 实体类5.3 dao层5.4 服务类5.5 测试类总结 5.6 查询商品DaoService单元测试输出小结 5.7 统计商品Dao单元测试统…

许昌文旅助手:AI智能体在文旅领域的创新应用

哈哈&#xff0c;大家好&#xff0c;我是王帅旭&#xff0c;来自大禹智库&#xff0c;也是《实战AI智能体》一书的作者。今天&#xff0c;咱们就来聊聊一个超级有趣的案例——许昌文旅助手&#xff0c;看看AI智能体是如何在文旅领域大放异彩的&#xff01; 无限拓展的能力集&am…

10.8QTQMessageBox练习

QQ界面 widget.cpp #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//设置框体的大小和颜色this->setFixedSize(350,500);this->setStyleSheet("background-color:#e5f0ff;");//创建一个LineEdit edit1edit1 new QLineEdi…

面试淘天集团大模型算法工程师, 开心到飞起!!!

应聘岗位&#xff1a;淘天集团-大模型算法工程师 面试轮数&#xff1a; 整体面试感觉&#xff1a; 1. 自我介绍 在自我介绍环节&#xff0c;我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长&#xff0c;展示了自信和沟通能力。 2. 技术问题 2.1 在大模型微调过程…

全网最详细的Python Locust性能测试框架实践

Locust的介绍 Locust是一个python的性能测试工具&#xff0c;你可以通过写python脚本的方式来对web接口进行负载测试。 Locust的安装 首先你要安装python2.6以上版本&#xff0c;而且有pip工具。之后打开命令行&#xff0c;分别安装locustio和pyzmq&#xff08;命令如下&…