7.26 二进制练习题

2023-10-27

给你个礼物你能收到吗?
打开这个exe文件后,我们看到了它让我们输入礼物提取码,我们先随便输入数据,按回车显示提取码错误还有输错的次数,我们发现这里存在着一个循环。
这里写图片描述
然后我们在IDA里面打开这个文件

int __cdecl main(int argc, const char **argv, const char **envp)
{
  _main();
  present();
  heart();
  system("pause");#当没这个语句或类似语句,你点开生成的.exe文件,运行界面只会闪一下,而有这个语句,就不会了!类似语句还有getchar();在最后加上这种语句,你就可以看到运行结果了!
  return 0;
}

首先我们看到了一个这样的程序,我们先分析这个程序,我们先点开present()这个函数,看到了如下的程序,我们先分析这个程序。

oid __cdecl present()
{
  __int64 v0; // rax
  std::ostream *v1; // rax
  unsigned int x; // [rsp+24h] [rbp-5Ch]
  int xa; // [rsp+24h] [rbp-5Ch]
  int xb; // [rsp+24h] [rbp-5Ch]
  int xc; // [rsp+24h] [rbp-5Ch]
  int xd; // [rsp+24h] [rbp-5Ch]
  int xe; // [rsp+24h] [rbp-5Ch]
  int xf; // [rsp+24h] [rbp-5Ch]
  int n; // [rsp+28h] [rbp-58h]
  int y; // [rsp+2Ch] [rbp-54h]

  std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, asc_47F000);
  std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, &byte_47F050);
  x = 0;
  y = 2027091370;
  std::istream::operator>>(&std::cin, &n);#表示输入提取码
  while ( n != y )
  {
    if ( n == 5201314 )
    {
      std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, &byte_47F068);
      system("pause");
      exit(0);
    }
    if ( !(y % 40) )
      y = 2027091370;
    v0 = std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, &byte_47F0A0);
    v1 = (std::ostream *)std::ostream::operator<<(v0, x);
    std::operator<<<std::char_traits<char>>(v1, &byte_47F0C3);
    std::istream::operator>>(&std::cin, &n);
    ++x;
    y += 7;
  }
  std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, &byte_47F0D8);
  for ( xa = 0; xa <= 78; ++xa )
  {
    std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, "[");
    if ( xa <= 19 )
      Sleep(0xC8u);
while ( n != y )

首先这里与一个while循环,我们得知如果我们输入的提取码n不等于 y = 2027091370,程序就往下执行
{
if ( n == 5201314 )
{
std::operator<<<std::char_traits<char>>((std::ostream *)&std::cout, &byte_47F068);
system("pause");
exit(0);
}

如果我们输入的n=5201314,就会跳出这个程序。
这里写图片描述
“`
这里写图片描述

对这整段代码分析,我们知道这就是上面我们判断的那个循环,当我们输入的提取码错误的时候,它就会说“提取码错误,滚去重输,你已经输入了…次”,所以v0输出的应该是这段文字,这时并没有提取成功,y+=7循环运行后,y值改变,我们继续这个循环,如果if条件成立(即y%40=0),也会输出v0,所以要想提取成功,就要跳出这个循环,令n等于y。
所以我们可以在开始的时候就输入提取码,使其值为2027091370,得到如下
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7.26 二进制练习题 的相关文章

  • 天翼云登录破解js逆向

    网站 https m ctyun cn wap main auth login redirect 2Fmy 账号 234555551 qq com 密码 fffffffffff 666 抓包分析一下 密码直接加在url后面进行请求 打个xh
  • 单淘汰赛制两队相遇算法

    对于这种单循环赛制acm也是常遇到这样的题那么 对于这样的比赛我们要怎么模拟所有的可能是一个问题 我们如何判断两个队在某一轮是否会遇到呢 我们其实可以利用二进制的性质 设某一轮比赛为i 求j和k两只队伍是否能比赛 下面我们用二进制来表示队伍
  • Hook原理--逆向开发

    今天我们将继续讲解逆向开发工程另一个重要内容 Hook原理讲解 Hook 可以中文译为 挂钩 或者 钩子 逆向开发中改变程序运行的一种技术 按照如下过程进行讲解 Hook概述 Hook技术方式 fishhook原理及实例 符号表查看函数名称
  • Frida hook Java层

    往期推荐 frida环境安装 Xposed框架安装 使用及插件开发 HOOK startActivity HOOK框架 动态代理 需要相关资料的朋友 可以 加入此处即可打包获取 需要对在进程外传递的消息进行拦截处理就必须采取一种称为HOOK
  • 新榜微信版块nonce,xyz参数破解

    该文章主要提供交流学习使用 请勿利用其进行不当行为 如本篇文章侵犯了贵公司的隐私 请联系我立刻删除 个人博客 http www feastawlisao com 欢迎关注个人公众号 pythonORjs 今天分析一波新榜数据平台 以微信公众
  • 安卓逆向入门指南:应用分析与反编译

    安卓逆向入门指南 应用分析与反编译 概述 简要介绍安卓逆向工程的基本概念和背景 解释逆向工程的目的和重要性 以及在安全审计和应用研究中的应用 应用分析 安卓应用文件结构的解析 介绍APK文件的结构 包括AndroidManifest xml
  • Xposed框架安装、使用及插件开发

    往期推荐 HOOK startActivity HOOK框架 动态代理 HOOK框架 静态代理 实战案列分析 Crakeme01 需要相关资料的朋友 可以 加入此处即可打包获取 Xposed框架是一款可以在不修改APK的情况下影响程序运行
  • CUDA编程 之 二进制工具与反编译

    两个 反编译工具 cuobjdump and nvdisasm 参考 http blog csdn net dark5669 article details 62264312
  • CTF之逆向之阿里巴巴

    题目地址 http www shiyanbar com ctf 13 题目预览 解题过程 1 下载附件发现是exe文件 2 使用PEid和Detect It Easy查壳 和 开发语言 发现没有加壳 都是用C 开发的 3 C 和Java P
  • 第一章 python初窥 课后练习题

    目录 1 输入1 127的ascii码并输出对应字符 2 输入a b c d4个整数 计算a b c d的结果 3 计算一周有多少分钟 多少秒钟 4 3个人在餐厅吃饭 想分摊饭费 总共花费35 27美元 他们还想给15 的小费 每个人该怎么
  • ubantu环境下IDA pro运行时碰到某些so找不到的问题

    最近帮组员解决IDA的问题 做个记录 问题 执行启动idea时出现报错 IDA Pro idaq64 报错如下 idaq64 error while loading shared libraries libgthread 2 0 so 0
  • 你参与的APP开发项目安全吗?

    Android将安全设计贯穿系统架构的各个层面 覆盖系统内核 虚拟机 应用程序框架层以及应用层各个环节 力求在开放的同时 也恰当保护用户的数据 应用程序和设备的安全 Android安全模型主要提供以下几种安全机制 进程沙箱隔离机制 应用程序
  • pandas--实战以及使用pyecharts绘图,(面向对象)

    实战9 covid approval toplines csv subject 与covid 19处理有关的 Trump modeldate 日期 party 政党 approve estimate 赞成 disapprove estima
  • 逆向某视频直播软件,破解收费观看

    https juejin im post 5cbd7bc06fb9a0324e4a376c
  • ajax请求二进制流图片并渲染到html中img标签

    说明 后台返回图片二进制流 需要使用get请求获取返回结果 并且将返回的二进制流以图片形式显示在页面img中 但是日常显示图片都诸如这种形式 img src 图片路径 地址 alt 以上需求不能将后端地址直接填入src 原因是需要获取图片请
  • Python爬虫之Js逆向案例(3)-X品牌手机社区

    声明 XX手机社区加密逆向分析仅用于研究和学习 这篇文章的学习内容是以XX手机社区为案例 对JS逆向的整个过程进行详细分析 下面会进行以下几步进行分析 下方演示过程全部使用chrome浏览器 锁定关键接口 锁定关键字段 破解关键字段 pyt
  • 【2-3】《Java基础语法》——二进制、变量、数据类型、标识符、数据类型转换、特殊变量定义、方法、运算符、变量作用域、编程规范、转义字符

    文章目录 基础语法 一 二进制 1 补码 2 二进制与十进制的转换 二 变量概述 三 数据类型 1 分类 2 范围 四 标识符 1 命名规则 2 Java中的关键字 3 定义变量 4 变量练习 五 数据类型转换 六 特殊变量定义 1 flo
  • 爬虫如何快速定位到加密入口

    这里有多种定位加密入口方法 通过打全局xhr断点找到加密入口 可以将在 处点击添加xhr断点 可以针对某个值进行打xhr断点 直接通过关键字找到加密入口 在前面文章讲述过https blog csdn net zhp980121 artic
  • 黑马程序员---从头开始,回忆JAVA基础之JAVA用十六进制表示浮点数的方法

    在二进制文件中 存储数据的格式为16进制 下面举例说明27 0f在二进制文件中怎么表示 float 共计32位 折合4字节 由最高到最低位分别是第31 30 29 0位 31位是符号位 1表示该数为负 0反之 30 23位 一共8位是指数位
  • 计算机中的二进制表示-4和5

    十进制 二进制 5 00000000 00000000 00000000 00000101 4 11111111 11111111 11111111 11111100 负数的二进制如何得出 相信正数的二进制表示大家都懂 但是这个 4怎么来的

随机推荐

  • Python vitualenv环境下用pyinstaller打包exe程序,及报错解决:No module named ‘sklearn.metrics,xgboost.libpath

    问题 之前直接用命令打包 默认的是系统的python环境 没有用到虚拟环境 打包出来会特别大一个多G 1 cd E Users 13626 PycharmProjects pythonProject3 venv Scripts 虚拟环境项目
  • Hadoop分布式集群时间同步(ntp)配置

    目录 时间服务器配置 必须root用户 1 查看所有节点ntpd 时间服务器 服务状态和开机自启状态 2 修改hadoop102的ntp conf配置文件 3 重新启动ntpd服务并设置开机自启 配置其他服务器 1 关闭所有节点上的ntpd
  • vm options什么意思_什么是锂电池保护板,保护板的基础知识和不良分析!

    点击上面 电动知家 可以订阅哦 锂电池保护板是对串联锂电池组的充放电保护 在充满电时能保证各单体电池之间的电压差异小于设定值 一般 20mV 实现电池组各单体电池的均充 有效地改善了串联充电方式下的充电效果 同时检测电池组中各个单体电池的过
  • SiriKit 新变化:让 Intent 更强大

    Python实战社群 Java实战社群 长按识别下方二维码 按需求添加 扫码关注添加客服 进Python社群 扫码关注添加客服 进Java社群 作者 wiilen iOS 开发者 来源丨老司机技术周报 ID LSJCoding Sessio
  • mysql 视图的作用

    转自 http blog csdn net fm0517 article details 5625949 视图是从一个或几个基本表 或视图 导出的表 它与基本表不同 是一个虚表 数据库只存放视图的定义 而不存放视图对应的数据 这些数据仍存放
  • JS赋值运算符详解

    赋值运算符左侧的操作数必须是变量 对象属性或数组元素 也称为左值 例如 下面的写法是错误的 因为左侧的值是一个固定的值 不允许操作 1 100 返回错误 赋值运算有以下两种形式 简单的赋值运算 把等号右侧操作数的值直接复制给左侧的操作数 因
  • [下载演讲稿]数字藏品与元宇宙存储—数字新世界的“土壤”

    和上次 下载 元宇宙存储 演讲稿 相比 增加了 1 两厅印发的 关于推进实施国家文化数字化战略的意见 对数字藏品的发展有积极促进作用 2 NFT和数字藏品的分类 新玩法 高质量体验 守诺 受朱嘉明老师 朱嘉明 数字经济和非同质时代 NFT
  • Java BigInteger的使用

    前言 在Java中 由CPU原生提供的整型最大范围是64位 long 型整数 使用 long 型整数可以直接通过CPU指令进行计算 速度非常快 但是如果我们使用的整数范围超过了 long 型怎么办 这个时候 就只能用软件来模拟一个大整数 j
  • unity 3D RPG高级教程(十)

    目录 声明 1 Action Button 快捷栏按键 2 Stats Info 显示 Player 相关信息 3 Change Animator 切换动画控制器 4 Item Tooltip 物品信息显示栏 5 Loot Items 掉落
  • misc.func.php,完美解决 discuz 您的管理面板已经锁定!

    出现 对不起 由于您多次输入错误密码 所以管理面板暂时锁定 您现在无法进入管理面板 15 分钟以后 锁定会自动解除 的提示 是出于安全的考虑 在您连续输入五次密码 仍然没有成功登陆的情况下所提示的 并且会在 15 分钟内禁止此 IP 再次登
  • mysql怎样设置默认值约束_MySQL默认值约束怎么用

    本篇文章将介绍default 默认约束 如何使用和改动后的效果 常用数据库约束 default 默认约束 not null 非空约束 指定某列不为NULL unique 唯一约束 指定某列和几列组合的数据不能重复 primary key 主
  • 【C/C++多线程编程之九】pthread读写锁

    多线程编程之读写锁 Pthread 是 POSIX threads 的简称 是POSIX的 线程标准 pthread读写锁把对共享资源的访问者分为读者和写者 读者只对共享资源进行读访问 写者只对共享资源进行写操作 在互斥机制 读者和写者都需
  • 详解Nodejs中的模块化

    Nodejs是一个基于Chrome V8引擎的JavaScript运行时环境 它允许开发者使用JavaScript在服务器端运行代码 在Nodejs中 模块化是一种组织和重用代码的重要方式 模块化允许我们将代码拆分成小块 使得代码结构更清晰
  • Windows10访问Ubuntu子系统(WSL)的桌面环境

    Windows10访问Ubuntu子系统 WSL 的桌面环境 文章目录 Windows10访问Ubuntu子系统 WSL 的桌面环境 Why Linux Why WSL 开启WSL Ubuntu换源 更新与升级 安装桌面环境xubuntu
  • Pytorch-YOLOV4-火焰目标检测

    首先感谢大佬提供的代码bubbliiiing 0 效果展示 1 所需环境 torch 1 2 0 2 注意事项 代码中的yolo4 weights pth是基于608x608的图片训练的 代码中的默认anchors是基于608x608的图片
  • SystemC在Ubuntu16.04上安装测试

    使用SystemC进行硬件仿真 环境 linux x86 64 bash g 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc 2 3 3 tar gz 进入解压出来的目录 准备编译安装 cd
  • 自动控制原理快速入门+理解

    用最简单的话认识全貌 PS 默认都是线性系统 即输入和输出之间是线性的 默认你知道什么是线性 初步认识控制 假设你在推箱子 你推的力气是 f f f 箱子位移是 x x x 质量是
  • 09-----检测对方网络是否正常在线的方法

    1 使用ping ping是我们经常检测对方能否正常通信的方法 它使用的协议是传输层中的ICMP 下面是我自己抓包的内容 2 使用telnet telnet一般是检测某个端口是否开放 格式为 telnet ip port 3 使用nc命令
  • 汇编语言DW、DB和DD的区别

    DW 是定义2字节空间的意思 DW属于汇编的一个伪指令 DW定义字类型变量 一个字数据占2个字节单元 读完一个 偏移量加2 DB定义字节类型变量 一个字节数据占1个字节单元 读完一个 偏移量加1 DD定义双字类型变量 一个双字数据占4个字节
  • 7.26 二进制练习题

    给你个礼物你能收到吗 打开这个exe文件后 我们看到了它让我们输入礼物提取码 我们先随便输入数据 按回车显示提取码错误还有输错的次数 我们发现这里存在着一个循环 然后我们在IDA里面打开这个文件 int cdecl main int arg