首页 > 其他分享 >攻防世界 gametime 使用IDA pro+OD动调

攻防世界 gametime 使用IDA pro+OD动调

时间:2024-03-27 14:36:08浏览次数:42  
标签:gametime pro OD 地址 指令 动调 IDA

自学犟种琢磨动调的一个记录,算是第一次动调的新手向,大佬请飘过

题目

 


准备工作——IDA pro(32X)

下载得到一个exe文件,首先丢到PE里面——无壳,32bit

丢到IDA pro(x32)里面

刚好main函数就在左边很瞩目的地方,双击+F5,试图反汇编,但是跳出一个弹窗

你点OK或者直接叉掉,也会反汇编,不解决也不影响本题解答——但是有些题目会被影响(我就遇到过,把关键传输的变量吞了...),代码会少一点东西,有时候是很关键的东西

所以这里也提供解决方法:SHIF+F7

参考:[求助] write access to const memory has been detected, the output may be wrong!-求助问答-看雪-安全社区|安全招聘|kanxue.com

 选中idata-->ctrl+e

解决完这个问题,我们来看看主函数代码———特别长,你要单纯看代码理解也不是不可以,但是较为困难且还要花时间

这里建议直接运行一下exe,看看题目给了我们什么以及是怎么运行的

很明显这是一个游戏,第一关遇到s就按空格,第二关遇到x就按x......后面的速度越来越快,还是要破解

来梳理一下游戏的运行过程:打印需要被观察的字母,用户按照要求输入,系统应该会检查我们的输入是否满足要求,不满足游戏直接GG,满足的话进入下一关。

那我们想要开挂通关要怎么办?是不是我们不输入或者随便输入,系统都判定我们合格要求,直接放我们去下一关?

所以有关判定的条件或者函数是解题的关键

 

视线回到反汇编代码,这时候就清晰很多了

主函数前面一堆乱七八糟的字符原来是游戏运行界面的装饰

我们还可以看出 sub_401A73 是一个打印函数

 

继续往下,看到一个if条件判断——应该是一个关键

点进去看看,发现是第一关的代码,失败了应该会输出“UDDER FAILURE! http://imgur.com/4Ajx21P”

所以紧挨着的上一条if,很有可能是用于检查我们输入

 

因为后面要动调,所以让我们看看地址(按TAB,再按空格)

出现了jnz跳转指令——这个是关键

这里暂停一下,用IDA pro+OD(都是32X)的组合需要注意一点:这两个的地址是不一样的!!!!

我们把文件丢到OD里看看基址,ALT+E,找到我们的程序,记住基址:00F30000

然后返回IDA pro,Edit-->Segments-->Rebase program-->Value修改为0xF30000

这时候的地址全都变了,记录下此时的jnz指令的地址 00F314DB 

主函数的第一个if的关键地址的查找就告一段落了

我们继续看main函数后面,又发现if条件判断

按照上面的思路点进去看看,跟上面情况一样

又得到一个jnz指令的地址 00F31563 


动调部分——OD(32X)

再上面我们得到两个地址 00F314DB  00F31563 

在OD中,ctrl+G,输入上面第一个的地址,可以看到我们在IDA中找到的jnz

双击指令,进行修改,按一下“汇编”就可以

为什么这么修改,需要一定汇编语言基础,可以看这个:jmp、JE、JZ、JNE、JNT指令_je指令-CSDN博客

可以看到指令发生了变化

同理可得,输入第二个地址,修改指令

然后F9,运行,等待exe运行完,直到打印flag,暂停


flag

key is  (no5c30416d6cf52638460377995c6a8cf5)

 

标签:gametime,pro,OD,地址,指令,动调,IDA
From: https://www.cnblogs.com/demo41/p/18099089

相关文章

  • 掌握Node.js:常用命令及示例
    Node.js是一个流行的JavaScript运行时环境,广泛应用于服务器端开发、命令行工具和前端构建工具等方面。在Node.js中,有许多常用的命令可用于管理项目、安装依赖项以及运行脚本。本文将介绍一些常用的Node.js命令,并提供相应的示例,以帮助开发者更好地利用这些命令。1.node......
  • 【Unity】TextMeshPro富文本
    启用富文本在Unity里,如果需要使用富文本,首先需要开启RichText如果不开启RichText,就会在UI上显示富文本代码1.粗体<b>Game</b>Over2.斜体<i>Game</i>Over3.下划线<u>Game</u>Over4.删除线<s>Game</s>Over5.指定颜色删除线<scolor=#ff8000>Game&......
  • Electron Mac 打包报 Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT 解决
    ElectronMac打包报Error:Exitcode:ENOENT.spawn/usr/bin/pythonENOENT解决方法最近在开发的时候,发现打包Electron项目报错,错误的信息为Error:Exitcode:ENOENT.spawn/usr/bin/pythonENOENT报错原因是因为Mac升级到macOSventuraversion13.0.1后系统移除了......
  • LeetCodeHot100 链表 160. 相交链表 206. 反转链表 234. 回文链表 141. 环形链表
    160.相交链表https://leetcode.cn/problems/intersection-of-two-linked-lists/description/?envType=study-plan-v2&envId=top-100-likedpublicListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){intlenA=0;intlenB=0;L......
  • Codeforces Round 915 (Div. 2) D
    CyclicMEX题面翻译对于一个长为\(n\)的排列\(p\),定义其权值为\(\sum_{i=1}^n\operatorname{mex}_{j=1}^ip_j\),也就是\(p_1\simp_i\)中没有出现过的最小自然数的和。然后你可以对这个排列进行移位操作,问最大权值。题目描述Foranarray$a$,defineitscostas$......
  • 【附源码】Node.js毕业设计公办小学网络报名系统(Express)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在当今信息化社会,网络技术已经深入到各个领域,教育领域也不例外。传统的公办小学报名方式主要是线下排队、人工登记,这种方式不仅效率低下,而且容易出现错误。......
  • vscode使用jupyter
    使用vscode打开ipynb后缀的文件安装插件点击执行,选择python环境......
  • could not read Username for 'https://github.com': terminal prompts disabled on w
    https://stackoverflow.com/questions/75990435/could-not-read-username-for-https-github-com-terminal-prompts-disabled-on-w  TrysettingatemporarycredentialhandlerforGitHub:GIT_USER="your-github-username-or-email"GIT_PASS="PAT"......
  • Key-N-Value--基于Protocol Buffers的树型协议处理引擎
    导言KNV是Key-Value协议的无限嵌套和模式自由的扩展,允许使用者快速访问或修改ProtoBuffers协议中的一部分或者多个部分,KNV原是一个面向对象缓存系统的一部分,后面作为腾讯第一批开源组件对外开源。KNV的理念也申请并获得国家专利。​​​​​​​项目地址:GitHub-shaneyuee/......
  • 【漏洞复现】MaxView系统dynamiccontent.properties接口处存在RCE漏洞
              免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。      ......