攻防世界----->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.rhkb.cn/news/441236.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法6:模拟运算

文章目录 z字形变幻外观数列数青蛙 题目均来自于力扣 z字形变幻 class Solution { public:string convert(string s, int numRows) {int n s.size();if(n < numRows || numRows 1) return s;int d 2 * numRows - 2;string res;for(int j 0; j < n; j d){res s[j]; …

嵌入式硬件设计知识详解

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

游戏盒子推广全攻略:从用户洞察到策略实施

在移动互联网时代&#xff0c;游戏盒子的推广已经成为众多游戏代理商和开发者的重要课题。面对激烈的市场竞争&#xff0c;如何高效吸引并留住玩家&#xff0c;成为游戏盒子推广的关键。本文将结合Xinstall这一专业App推广工具&#xff0c;探讨游戏盒子推广的有效策略。 一、市…

爱心曲线公式大全

local r a*((math.sin(angle) * math.sqrt(math.abs(math.cos(angle)))) / (math.sin(angle) 1.4142) - 2 * math.sin(angle) 2) local x r * math.cos(angle) -- 计算对应的x值 local z r * math.sin(angle) 1.5*a - --曲线公式绘画 local function generateParabola()…

VMware Tools 安装和配置

1. 使用 ISO 映射文件&#xff0c;并且选择.iso文件 2. 启动虚拟机&#xff0c;如果 VMware Tools 是灰色的&#xff0c;那么卸载 open-vm-tools&#xff08;不要重装&#xff09;&#xff0c;重新启动虚拟机。卸载可以参考&#xff1a;重装 open-vm-tools-CSDN博客 3. 拷贝挂载…

关于mac下的nvm设置淘宝镜像源

1. 进入配置文件修改镜像源 vim ~/.bash_profile增加下面内容 export NVM_NODEJS_ORG_MIRRORhttps://npmmirror.com/mirrors/node/2. 查看远程node镜像 nvm ls-remote3. 下载镜像 nvm install 14.17.64. 使用镜像 nvm use 14.17.6

Vue入门-指令学习-v-show和v-if

v-show&#xff1a; 作用&#xff1a;控制元素的显示隐藏 语法&#xff1a;v-show"表达式" 表达式值true显示&#xff0c;false隐藏 v-if 作用&#xff1a;控制元素的显示隐藏&#xff08;条件渲染&#xff09; 语法&#xff1a; vif"表达式" 表达式tr…

No.8 笔记 | SQL 查询语句:数据探索的钥匙

2024/10/7 心记 - 致在路上默默奋斗的你 在当今数字化的时代&#xff0c;网络安全已成为我们生活中不可或缺的一部分。它如同守护数字世界的隐形盾牌&#xff0c;保护着我们的隐私、数据和整个社会的稳定运行。 学习网络安全&#xff0c;是踏上一段充满挑战与机遇的征程。 每一…

leetcode C++特性 AIDL的一些细节

leetcode细节 C的一些特性 【C基础】std::move用法介绍-CSDN博客 c thread的join和joinable的区别_thread joinable-CSDN博客 C线程介绍_std::thread 头文件-CSDN博客 https://blog.csdn.net/weixin_46645965/article/details/136259902 【C】—— 观察者模式-CSDN博客 C 迭…

知识图谱入门——5:Neo4j Desktop安装和使用手册(小白向:Cypher 查询语言:逐步教程!Neo4j 优缺点分析)

Neo4j简介 Neo4j 是一个基于图结构的 NoSQL 数据库&#xff0c;专门用于存储、查询和管理图形数据。它的核心思想是使用节点、关系和属性来描述数据。图数据库非常适合那些需要处理复杂关系的数据集&#xff0c;如社交网络、推荐系统、知识图谱等领域。 与传统的关系型数据库…

erlang学习:Linux命令学习9

sed命令介绍 sed全称是&#xff1a;Stream EDitor&#xff08;流编辑器&#xff09; Linux sed 命令是利用脚本来处理文本文件&#xff0c;sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等 sed 的运行…

Windows环境下使用Docker配置MySQL数据库

用Docker配置数据库&#xff0c;无论是做开发&#xff0c;还是做生产部署&#xff0c;都非常的方便 它不需要单独安装数据库&#xff0c;也不用担心出现各种环境的配置问题。 本文将分享用Docker配置数据库的步骤&#xff0c;这里用MySQL举例。 其他的数据库如MSSQL&#xf…

信息学奥赛复赛复习14-CSP-J2021-03网络连接-字符串处理、数据类型溢出、数据结构Map、find函数、substr函数

PDF文档回复:20241007 1 P7911 [CSP-J 2021] 网络连接 [题目描述] TCP/IP 协议是网络通信领域的一项重要协议。今天你的任务&#xff0c;就是尝试利用这个协议&#xff0c;还原一个简化后的网络连接场景。 在本问题中&#xff0c;计算机分为两大类&#xff1a;服务机&#x…

12.3 Linux_进程间通信_信号机制

概述 什么是信号&#xff1a; 信号是在软件层次上对中断机制的模拟&#xff08;软中断&#xff09;&#xff0c;是一种异步通信方式。 进程对信号的响应方式&#xff1a; 缺省方式&#xff1a;根据默认行为响应信号忽略信号&#xff1a;不响应信号捕捉信号&#xff1a;根据…

SpringBoot系列 启动流程

文章目录 SpringApplicationSpringApplication#run 启动流程BootstrapContextSpringApplicationRunListenersprepareEnvironmentconfigureEnvironmentconfigurePropertySourcesconfigureProfiles 上下文初始化prepareContextrefreshContextprepareRefreshobtainFreshBeanFactor…

MISC - 第13天(python脚本 重命名文件,拼接二维码,cloacked-pixel工具,中文电码,五笔编码)

前言 各位师傅大家好&#xff0c;我是qmx_07&#xff0c;今天继续讲解MISC的相关知识 [安洵杯 2019]吹着贝斯扫二维码 附件信息: 使用APCHPR暴力破解工具&#xff0c;flag.zip 破解失败可能线索在其他文件&#xff0c;放到hxd查看 在hxd中&#xff0c;发现该文件头JFIF 是j…

晶体规格书及匹配测试

一、晶体参数介绍 晶体的电气规格相对比较简单,如下: 我们逐一看看每个参数, FL就是晶体的振动频率,这个晶体是24.576MHz的。 CL就是负载电容,决定了晶体频率是否准确,包括外接的实际电容、芯片的等效电容以及PCB走线的寄生电容等,核心参数。 Frequency Tolerance是…

matlab碳交易机制下考虑需求响应的综合能源系统优化运行

目录 1 主要内容 架构模型&#xff1a; 需求响应模型&#xff1a; 目标函数&#xff1a; 对比算例设计&#xff1a; 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序复现文献《碳交易机制下考虑需求响应的综合能源系统优化运行》&#xff0c;解决碳交易机制下考虑…

工业缺陷检测深度学习方法

工业缺陷检测深度学习方法 基于深度学习的工业缺陷检测方法可以降低传统人工质检的成本, 提升检测的准确性与效率, 因而在智能制造中扮演重要角色, 并逐渐成为计算机视觉领域新兴的研究热点之一. 其被广泛地应用 于无人质检、智能巡检、质量控制等各种生产与运维场景中. 本综述…

Spring Boot驱动的足球青训俱乐部管理解决方案

1 绪论 1.1研究背景 随着科技的发展&#xff0c;计算机的应用&#xff0c;人们的生活方方面面都和互联网密不可分。计算机的普及使得人们的生活更加方便快捷&#xff0c;网络也遍及到我们生活的每个角落&#xff0c;二十一世纪信息化时代的到来&#xff0c;随着社会科技的不断…