[HGAME 2023 week1]easyenc

查壳

IDA打开

字符串打开就发现了明显的标志

int __cdecl main(int argc, const char **argv, const char **envp)
{__int64 v3; // rbx__int64 v4; // raxchar v5; // alchar *v6; // rcxint v8[10]; // [rsp+20h] [rbp-19h]char v9; // [rsp+48h] [rbp+Fh]__int128 v10[3]; // [rsp+50h] [rbp+17h] BYREF__int16 v11; // [rsp+80h] [rbp+47h]v8[0] = 167640836;v8[1] = 11596545;v11 = 0;v8[2] = -1376779008;memset(v10, 0, sizeof(v10));v3 = 0i64;v8[3] = 85394951;v8[4] = 402462699;v8[5] = 32375274;v8[6] = -100290070;v8[7] = -1407778552;v8[8] = -34995732;v8[9] = 101123568;v9 = -7;sub_140001064("%50s");v4 = -1i64;do++v4;while ( *((_BYTE *)v10 + v4) );if ( v4 == 41 ){while ( 1 ){v5 = (*((_BYTE *)v10 + v3) ^ 0x32) - 86;*((_BYTE *)v10 + v3) = v5;if ( *((_BYTE *)v8 + v3) != v5 )break;if ( ++v3 >= 41 ){v6 = "you are right!";goto LABEL_8;}}v6 = "wrong!";
LABEL_8:sub_140001010(v6);}return 0;
}

从 right往回看,可以知道——答案应该是40个字符——v10要等于v8——v5通过v10有个不明的操作——v8已知

由已知到未知

但是我们又发现

v8是个10个元素组成的数组

但是要比较40次

那么说明 每个v8,我们要取4个字符

因为现在是在IDA里面(IDA里面是给机器看的),所以他是存在大小端的问题,我们要取的是数字的后面一个字节

(后面那个v5的不明操作,我们试一下就知道这是flag表示)

那么代码如下

v8 = [167640836,11596545,-1376779008,85394951,402462699,32375274,-100290070,-1407778552,-34995732,101123568,
]
flag=''
for i in range(len(v8)):flag+=chr(((((v8[i]>>0)&0xff)+86)^0x32)%128)flag+=chr(((((v8[i]>>8)&0xff)+86)^0x32)%128)flag+=chr(((((v8[i]>>16)&0xff)+86)^0x32)%128)flag+=chr(((((v8[i]>>24)&0xff)+86)^0x32)%128)##最后数据会大于128,所以保证下ASCII的范围
print(flag)

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

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

相关文章

C 练习实例49-宏#define命令练习3

#ifdef if define 如果define定义了神马&#xff0c;便执行该语句。如果没定义这个&#xff0c;则执行#else语句。注意结尾要加#endif语句 代码&#xff1a; #include <stdio.h> #define Max #define MAXIMUM(x,y) (x,y)?x:y #define MINIMUM(x,y) (x,y)?y:x …

【Java】SpringMVC参数接收(一)

1、接收单个参数 &#xff08;1&#xff09;直接接收参数 RequestMapping("/hello") RestController public class HelloSpring {RequestMapping("/t2")public String t2(String name){return "name" name;} } 当没有传入参数时&#xff0c;返…

《汇编语言:基于linux环境》eatsyscall汇编程序

当阅读此书&#xff0c;作者编写了一个这样的程序&#xff0c;我也想试一下。照着书中的代码写了下&#xff0c;可以使用nasm正常编译&#xff0c;ld也可以正常链接&#xff0c;但是无法正常执行。总是报错。 ; nasm -f elf64 -g -F stabs eatsyscall.asm ; ld -o eatsysca…

sqli-labs靶场第七关

7、第七关 id1 --单引号报错,id1" --双引号不报错,可以判断是单引号闭合 id1) --也报错&#xff0c;尝试两个括号闭合&#xff0c;id1)) --不报错 接下来用脚本爆库 import stringimport requestsnumbers [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] letters2 list(string.ascii_…

【销售数据分析】客户画像分析之总体画像

前一段时间把财务分析的一些报表及分析场景讲得差不多了&#xff0c;接下来想和大家讲一下销售分析中的一些场景。今年看了许多企业的数据&#xff0c;发现大家2023年比疫情三年更难&#xff01;从财务的几张报表就会发现净利润亏损的居多&#xff0c;而亏损的主要原因基本上都…

【多线程笔记04】多线程之停止线程、取消线程任务的几种方式

这篇文章,主要介绍多线程之停止线程、取消线程任务的几种方式【知识星球】。 目录 一、问题描述 1.1、需求描述 1.2、技术方案

gitlab-runner注册到gitlab时报错:ERROR: Registering runner... failed xxxxxxxx

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 文章目录 场景报错分析解决场景 docker部署gitlab-runner后注册到gitlab 在进入gitlab-runner容…

Easysearch:语义搜索、知识图和向量数据库概述

什么是语义搜索&#xff1f; 语义搜索是一种使用自然语言处理算法来理解单词和短语的含义和上下文以提供更准确的搜索结果的搜索技术。旨在更好地理解用户的意图和查询内容&#xff0c;而不仅仅是根据关键词匹配&#xff0c;还通过分析查询的语义和上下文来提供更准确和相关的…

什么是DevOps?DevOps是如何提效的?

文章目录 前言一、DevOps是什么&#xff1f;二、DevOps是如何提效的&#xff1f;总结 前言 随着软件行业的不断发展&#xff0c;如何打破开发、运维、测试之间的边界&#xff0c;使工作更加高效成为了企业的新一个难题&#xff0c;本文将向大家介绍DevOps文化&#xff0c;以及…

巨杉数据库携手广发证券入选2023大数据“星河”案例

近期&#xff0c;中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)连续七年共同组织的大数据“星河&#xff08;Galaxy&#xff09;”案例征集活动发布公示。本次征集活动&#xff0c;旨在通过总结和推广大数据产业发展的优秀成果&#xff0c;推动…

C++多线程1(复习向笔记)

创建线程以及相关函数 当用thread类创建线程对象绑定函数后&#xff0c;该线程在主线程执行时就已经自动开始执行了,join起到阻塞主线程的作用 #include <iostream> #include <thread> #include <string> using namespace std; //测试函数 void printStrin…

前后端交互

1-前后端交互概述 1.1接口调用方式 原生ajax 基于jQuery的ajax fetch&#xff08;ajax的升级版&#xff09; axios &#xff08;第三方的库&#xff09; 1.2 url 地址格式有哪些 传统的url http://host:port/path?query#fragment http协议----https&#xff0c;ftp ho…

被鹅厂最新开源AI绘画工具PhotoMaker圈粉了,多风格头像生成器就靠它了!

要说本周AIGC开源爆火项目&#xff0c;腾讯的PhotoMaker 可以入选其一。而 PhotoMaker 是腾讯Arc于4天前开源上线到GitHub的&#xff0c;更有一众互联网科技领域大V体验推荐&#xff0c;当前Star已经有4.7k了&#xff01; 相信小编这篇文章发布时star预测可能达到5k了。而 Pho…

js打地鼠

文章目录 1实现效果2代码实现 1实现效果 游戏难度&#xff1a;简单&#xff0c;一般&#xff0c;困难&#xff0c;噩梦&#xff08;控制setInterval的time参数&#xff09; 按钮功能&#xff1a;结束&#xff08;可以通过修改gameScore的值来修改判定结束的分数&#xff09;&am…

SpringBoot AOP应用(公共字段填充)

背景 在很多场景下&#xff0c;我们对需要对一些公共字段进行赋值操作&#xff0c;如果我们每一个公共字段都进行代码赋值那无疑会增加很多重复无用代码&#xff0c;都会导致我们的 代码臃肿&#xff0c;所以我们使用AOP切面编程&#xff0c;实现功能增强&#xff0c;来完成公…

3个精美的wordpress律师网站模板

暗红色WordPress律师事务所网站模板 演示 https://www.zhanyes.com/qiye/23.html 暗橙色WordPress律师网站模板 演示 https://www.zhanyes.com/qiye/18.html 红色WordPress律所网站模板 演示 https://www.zhanyes.com/qiye/22.html

2023 IoTDB Summit:Dr. Feinauer《Apache IoTDB在德国工业和关键基础设施中的应用》

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

Biotin-PEG4-TSA,生物素-PEG4-酪胺,用于标记蛋白质、核酸等生物分子

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Biotin-PEG4-Tyramide&#xff0c;Biotin-PEG4-TSA&#xff0c;生物素-PEG4-酪胺&#xff0c;Biotin PEG4 Tyramide&#xff0c;Biotin PEG4 TSA 一、基本信息 产品简介&#xff1a;Biotin PEG4 Tyramide is compos…

React 中条件渲染的 N 种方法

本文作者系360奇舞团前端开发工程师 条件渲染在React开发中非常重要的功能&#xff0c;它允许开发人员根据条件控制渲染的内容&#xff0c;在创建动态和交互式用户界面方面发挥着至关重要的作用&#xff0c;本文总结了常用的的条件渲染方法。 1.If-else if-else是一种控制流程…

mac 10.15.7 Unity 2021.3.14 XCode 12.4 -> Unity IOS 自动安装 Cocoapods 失败解决方法

自己这两天在用Unity开发IOS时&#xff0c;遇到了安装Cocoapods失败的问题&#xff0c;记录一下问题及解决方法&#xff0c;便于自己后续查看&#xff0c;以及有相同遭遇的人查看 发生场景&#xff1a;打开 unity&#xff0c;触发自动安装 Cocoapods -> 安装失败&#xff08…