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

逆向练习之 mingyue.exe wp

目录

一.查壳

二.主函数

三.operate函数

四.storage函数及4618和4620指针功能的解释

 五.judge函数

六.求解flag

七.其他--ida字符识别问题


一.查壳

64位无壳

二.主函数

1.这里的pointer_4618和4620是两个相邻的八字节内存单元,其中4620是字符串链表表头head

2.puts和scanf可以通过动态调试得知,这里是使用了命名

三.operate函数

1.ida可能会将该函数参数识别为两个,并且会显示红色,后续分析可以发现该num2变量无用,选中函数名,右键 set item type可以删掉第二个形参

2.该函数的基本功能是:

①对主函数输入的整数input循环除以26,每次循环将余数作为偏移值在0x7FF6266F32D8字符表中查找对应字符,并暂时保存到chr1对应的栈空间中

②从保存的字符串中逐个读取字符,并将其和7(0000 0111)异或,再进行storage()函数操作

③最后的judge函数用于判断字符串是否符合条件,符合则输出成功的弹窗,否则输出失败弹窗

四.storage函数及4618和4620指针功能的解释

根据分析可以发现storage函数是先创建链表新的节点(next),再将传入的chr字符保存起来

1.在主函数中,4618和4620初始时指向了一块16字节的空间,并且将该空间的内容置为0

2.调用storage函数后,先申请一块16字节空间,

然后用var变量保存原来的4618指针值,即var指针指向原来的单元,

对原单元解引用,一部分用于保存字符,另一部分保存next指针

4618最终指向链表下一个节点

3.在程序运行期间,4620始终指向main函数中分配的16字节空间,所以是表头

4.每次动态调试可以发现这两个指针所在单元地址也会变化,但是地址后四位不变,所以这两个指针应该是根据基址加偏移求得

 五.judge函数

该函数的基本功能是:每次循环处理链表两个节点的字符,判断字符是否对应等于aV4pY59字符表中的字符(可以根据该字符表反推出输入数据) 如果符合则输出成功的消息弹窗

六.求解flag

#include <iostream>
using namespace std;
unsigned char table[27] = ")(*&^%489$!057@#><:2163qwe";
int find(unsigned char ch)		//查找字符在table中的位置
{for (int i = 0; i < 27; i++)if (table[i] == ch)return i;
}
int main()
{unsigned char arr[15] = "/..v4p$$!>Y59-";int offset[14];			//offset是每次循环除以26后的余数,即偏移值long long int num = 0;for (int i = 0; i < 14; i++){num *= 26;			//num每次等于最后剩的余数*26offset[i] = find(arr[i] ^ 7);num += offset[i];	//num(num/26后的值)+余数=num原始值}printf("%lld", num);return 0;
}

得到数据:2484524302484524302

 运行程序并输入可以看到认证成功

七.其他--ida字符识别问题

ida可能识别不出中文字符串,找到字符串所在空间后选中,按住alt+a,选择unicode即可显示中文

不过这里值得一提的是主函数里的"请输入正确数字"用该方法还是无法正确显示,可能是编码问题,所以动态调试观察程序运行也很重要

相关文章:

逆向练习之 mingyue.exe wp

目录 一.查壳 二.主函数 三.operate函数 四.storage函数及4618和4620指针功能的解释 五.judge函数 六.求解flag 七.其他--ida字符识别问题 一.查壳 64位无壳 二.主函数 1.这里的pointer_4618和4620是两个相邻的八字节内存单元,其中4620是字符串链表表头head 2.puts和s…...

LeetCode 热题 HOT 100 Java 题解 -- Part 3

练习地址 Part 1 : https://blog.csdn.net/qq_41080854/article/details/128829494 Part 2 : https://blog.csdn.net/qq_41080854/article/details/129278336 LeetCode 热题 HOT 100 Java 题解 -- Part 376. 最佳买卖股票时机含冷冻期77. 戳气球78. 零钱兑换79. 打家劫舍 III…...

QML键盘事件

在QML中&#xff0c;当有一个按键按下或释放时&#xff0c;会产生一个键盘事件&#xff0c;将其传递给获得有焦点的QML项目&#xff08;讲focus属性设置为true&#xff0c;则获得焦点&#xff09;。 按键处理的基本流程&#xff1a; Qt接收密钥操作并生成密钥事件。如果 QQuic…...

跨域问题怎么解决

解决跨域&#xff0c;原因&#xff1a;域名不同&#xff0c;域名相同端口不同&#xff1b;二级域名不同 什么是跨域&#xff1f; 就是两个项目之间通讯&#xff0c;如果访问的域名与ajax访问的地址不一致情况&#xff0c;默认情况浏览器有一个安全机制。 postman不一定能测试…...

微服务网关Gateway和Zuul的区别

spring-cloud-Gateway是spring-cloud的一个子项目。而zuul则是netflix公司的项目&#xff0c;只是spring将zuul集成在spring-cloud中使用而已。 因为zuul2.0连续跳票和zuul1的性能表现不是很理想&#xff0c;所以催生了spring团队开发了Gateway项目。 Zuul&#xff1a; 使用的…...

专访华西二院吴邦华:隐私计算+AI全栈技术,构筑智慧医院建设的坚实数据底座|爱分析访谈

从IT时代步入DT时代&#xff0c;医疗大数据成为智慧医院建设的重要驱动力。经过多年信息化系统建设&#xff0c;很多医院已经积累了大量的医疗数据资源&#xff0c;但由于各业务系统间数据孤岛化严重、系统架构落后、数据缺乏深度治理等问题存在&#xff0c;导致现有数据深度及…...

《C++ Primer Plus》第18章:探讨 C++ 新标准(6)

可变参数模板 可变参数模板&#xff08;variadic template&#xff09;让您能够创建这样的模板函数和模板类&#xff0c;即可接收可变数量的参数。这里介绍可变参数模板函数。例如&#xff0c;假设要编写一个函数&#xff0c;它可接受任意数量的参数&#xff0c;参数的类型只需…...

.Net Core中使用是SQL Server的邮件发送功能

.Net Core中使用是sqlserver的邮件发送功能准备需求启用SQL Server的电子邮件功能检查和测试在.net Core中调用在sqlsrver的管理中有一个数据库邮件功能,再此可以使用sqlserver来自动发送一些邮件,但是有一些需要插入附件的邮件则需要使用程序代码来解决,下面就是使用C#来调用s…...

Nginx优化服务和防盗链

Nginx优化服务和防盗链一、长连接1、修改主配置文件2、测试3、在主配置文件添加4、验证二、Nginx第三方模块1、开源的echo模块2、查看是否成功3、加echo模块步骤4、网页测试验证三、搭建虚拟主机1、编译安装好nginx后&#xff0c;对主配置文件进行修改2、创建文件3、验证四、防…...

B树与B+树

认识了解MySQL中的B树B树引出什么是B树什么是B树B树的优点B树引出 在MySQL中,如果我们设置了主键, 那么对于该列表中的数据就有了一个索引,插入表中数据的主键值不能重复,而且不能为空. 那当我们插入数据的时候, 它是如何通过索引来判断主键值是否重复的呢? 我们想到它肯定是…...

QEMU网络配置

文章目录1. 前言2. 测试环境3. 配置步骤3.1 host 配置3.1.1 检查 host 对 TUN/TAP 和 网桥的支持情况3.1.2 网桥一端的建立&#xff1a;创建网桥设备&#xff0c;并添加 host 网卡到网桥3.1.3 网桥另一端的建立&#xff1a;TUN/TAP 配置3.2 guest 端的配置4. 参考链接1. 前言 …...

windows安装tomcat

这里写自定义目录标题tomcat官网下载安装包并解压环境变量配置启动tomcat访问http://localhost:8080/修复启动出现乱码问题tomcat官网下载安装包并解压 环境变量配置 系统环境变量新增&#xff1a; 变量名&#xff1a;CATALINA_HOME 变量值&#xff1a;tomcat的安装目录 编辑…...

刷题记录:牛客NC23051华华和月月种树 树链剖分+离线加点

传送门:牛客 题目描述: 华华看书了解到&#xff0c;一起玩养成类的游戏有助于两人培养感情。所以他决定和月月一起种一棵树。因为华华现在也是信息学高手了&#xff0c;所以他们种的树是信息学意义下的。 华华和月月一起维护了一棵动态有根树&#xff0c;每个点有一个权值。刚…...

年薪20W软件测试工程师必备的6大技能(建议收藏)

软件测试 随着软件开发行业的日益发展&#xff0c;岗位需求量和行业薪资都不断增长&#xff0c;想要入行的人也是越来越多&#xff0c;但不知道从哪里下手&#xff0c;今天&#xff0c;就给大家分享一下&#xff0c;软件测试行业都有哪些必会的方法和技术知识点&#xff0c;作…...

【存储】RAID2.0+、多路径技术、磁盘可靠性技术

RAID2.0RAID 2.0技术RAID技术发展RAID 2.0软件逻辑对象RAID 2.0基本原理硬盘域Storage Pool & TierDisk Group&#xff08;DG&#xff09;LD&#xff08;逻辑磁盘&#xff09;Chunk&#xff08;CK&#xff09;Chunk Group&#xff08;CKG&#xff09;ExtentGrainVolume &am…...

Vue 2

文章目录1. 简介2. 第一个Vue程序3. 指令3.1 判断循环3.2 操作属性3.3 绑定事件3.4 表单中数据双向绑定3.5 其他内置指令3.6 自定义指令4. 组件4.1 全局注册4.2 局部注册4.3 组件通讯4.4 单文件组件5. 组件插槽5.1 单个插槽5.2 具名插槽5.3 作用域插槽6. 内置组件6.1 component…...

Ubuntu 安装 Docker Engine

【参考】Install Docker Engine on Ubuntu | Docker Documentation: https://docs.docker.com/engine/install/ubuntu/ 【参考】Docker CE 镜像源站-阿里云开发者社区 https://developer.aliyun.com/article/110806 【规范】模仿 Docker 文档&#xff0c;Ubuntu, Docker 首字母…...

SpringBoot入门 - 添加内存数据库H2

上文我们展示了通过学习经典的MVC分包结构展示了一个用户的增删查改项目&#xff0c;但是我们没有接入数据库&#xff1b;本文将在上文的基础上&#xff0c;增加一个H2内存数据库&#xff0c;并且通过Spring 提供的数据访问包JPA进行数据查询。准备知识点在介绍通过Spring JPA接…...

高质量数字化转型创新发展大会暨中国信通院“铸基计划”年度会议成功召开

2023年3月3日&#xff0c;由中国信通院主办的高质量数字化转型创新发展大会暨中国信通院“铸基计划”年度会议在北京成功召开。本次大会深度展示了中国信通院在数字化领域的工作成果&#xff0c;并全面展望了2023年行业的数字化发展趋势。同时&#xff0c;大会发布了中国信通院…...

2023年如何通过软考初级程序员?

初级的考试难度不大&#xff0c;稍微有点编程基础&#xff0c;认真备考应该没什么大问题。 先清楚大纲&#xff1a; 高效备考&#xff01;理清考点&#xff0c;针对性复习 科目一&#xff1a;综合知识 75道单项选择题&#xff0c;1题1分&#xff0c;时长150分钟&#xff1b;…...

Intel Wi-Fi 6 AX201网卡‘代码10’通病?华硕/戴尔/联想多品牌用户自救指南

Intel Wi-Fi 6 AX201网卡‘代码10’故障全解析与跨品牌解决方案 当你的笔记本突然无法连接Wi-Fi&#xff0c;设备管理器中那个带着黄色感叹号的Intel Wi-Fi 6 AX201网卡图标格外刺眼&#xff0c;显示着"该设备无法启动&#xff08;代码10&#xff09;"的提示——这不…...

基于SAP CAP与RAG技术构建企业级智能问答系统实战指南

1. 项目概述&#xff1a;当企业级应用遇上生成式AI最近在做一个企业级应用的智能问答功能&#xff0c;客户要求能基于他们内部的海量文档&#xff08;PDF、Word、Excel&#xff09;进行精准回答&#xff0c;而不是让大模型“自由发挥”。这让我想起了SAP官方在GitHub上开源的那…...

基于FastAPI与Flutter的LLM全栈聊天应用:私有化部署与架构解析

1. 项目概述与核心价值最近在折腾一个全栈的AI聊天应用&#xff0c;把后端、前端、数据库和缓存都整合到了一起。这个项目叫LLMChat&#xff0c;它不是一个简单的API包装器&#xff0c;而是一个功能完备、可以私有化部署的聊天平台。核心是用Python的FastAPI构建高性能后端&…...

WarcraftHelper:魔兽争霸III终极兼容性修复工具,5大核心功能全面优化游戏体验

WarcraftHelper&#xff1a;魔兽争霸III终极兼容性修复工具&#xff0c;5大核心功能全面优化游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper …...

Sora提示词失效警告!:Instagram Reels专属Prompt架构(含12个平台敏感词规避指令+ASMR音画同步触发词库)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Sora提示词失效的底层归因与Instagram Reels内容生态断层分析 提示词语义坍缩现象 Sora模型在生成短视频时&#xff0c;对自然语言提示词的响应呈现显著退化&#xff1a;同一提示词&#xff08;如“su…...

Go语言单例模式如何实现_Go语言单例模式教程【通俗】

sync.Once是最安全的单例初始化方式&#xff0c;天然解决并发首次调用竞态问题&#xff0c;只执行一次闭包&#xff1b;须作包级或结构体字段&#xff0c;避免局部变量失效&#xff1b;panic后会持续失败&#xff0c;需自行兜底。Go 里 sync.Once 是最安全的单例初始化方式直接…...

3PEAK思瑞浦 TPA2772-VS1R MSOP8 运算放大器

特性 供电电压:3V至36V 偏移电压:在25C时最大3.5mV 轨到轨输入和输出 带宽:4.6 MHz 噪声容限:-良好&#xff0c;THD0.0008% 低噪声:1kHz时53nV/vHz 零交叉输入: -优异的总谐波失真加噪声:0.0008%...

英雄联盟Akari助手:从青铜到王者的智能游戏革命

英雄联盟Akari助手&#xff1a;从青铜到王者的智能游戏革命 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中的重复操作和信息…...

HS2-HF Patch:一站式解决HoneySelect2汉化、去和谐与MOD管理难题

HS2-HF Patch&#xff1a;一站式解决HoneySelect2汉化、去和谐与MOD管理难题 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 如果你正在玩HoneySelect2这款游戏…...

STK Astrogator模块避坑指南:从Target Sequence优化失败到成功收敛的5个关键设置

STK Astrogator模块避坑指南&#xff1a;从Target Sequence优化失败到成功收敛的5个关键设置 轨道优化是航天任务设计中的关键环节&#xff0c;而STK的Astrogator模块作为行业标准工具&#xff0c;其Target Sequence功能既能实现复杂机动规划&#xff0c;也常因参数设置不当导致…...