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

题目


准备工作——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 使用IDA pro+OD动调的更多相关文章

  1. IDA Pro使用技巧

    DA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头 ...

  2. ida pro 使用

    交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA.是目前最棒的一个静态反编译软件,为众多0day世界的成员 ...

  3. IDA Pro基本简介

    IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭 ...

  4. IDA Pro使用技巧及大杂烩

    IDA Pro使用技巧及大杂烩 IDA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行 ...

  5. 【攻防世界】 高手进阶区 Recho WP

    0x00 考察点 考察点有三个: ROP链构造 Got表劫持 pwntools的shutdown功能 0x01 程序分析 上来三板斧 file一下 checksec --file XXX chmod ...

  6. pwn篇:攻防世界进阶welpwn,LibcSearcher使用

    攻防世界welpwn (搬运一篇自己在CSDN写的帖子) 链接:https://blog.csdn.net/weixin_44644249/article/details/113781356 这题主要 ...

  7. IDA,IDA PRO 产品介绍

    IDA理念这是我们在开发产品时竭尽全力遵循的理念--在此过程中,我们相信我们将开发出能够为您带来所需的可靠性.便利性和易用性的软件.没有什么能打败人脑因为我们知道一秒钟的洞察力仍然胜过百年的处理时间, ...

  8. 攻防世界pwn高手区——pwn1

    攻防世界 -- pwn1 攻防世界的一道pwn题,也有一段时间没有做pwn了,找了一道栈题热身,发现还是有些生疏了. 题目流程 拖入IDA中,题目流程如图所示,当v0为1时,存在栈溢出漏洞.在gdb中 ...

  9. 攻防世界逆向——game

    攻防世界逆向:game wp 攻防世界逆向新手区的一道题目. 是一道windows的creak,动态调试打开是这样的: 题目说明是让屏幕上所有的图像都亮之后,会出现flag,看来应该是可以玩出来的. ...

  10. 攻防世界PWN简单题 level0

    攻防世界PWN简单题 level0 开始考验栈溢出的相关知识了 Checksec 一下文件 看看都开了什么保护 和 是多少位的程序 发现是64位的程序, 扔进IDA64.IDA YYDS.. 进入主函 ...

随机推荐

  1. Python Split 函数用法

    一.split函数简介Python中split()函数,具体作用如下: 拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list):二.语法split() 方法语法: str.s ...

  2. 我又踩坑了!如何为HttpClient请求设置Content-Type?

    1. 坑位 最近在重构认证代码,认证过程相当常规: POST /open-api/v1/user-info?client_id&timstamp&rd=12345&sign=* ...

  3. windows 程序启动后挂到后台

    开发中遇到一个问题,程序启动后,并没有出现在前台,而是自动挂到后台,程序处于卡死状态,基本任何模块都没加载进来. 后面排查发现跟一个功能的第三方 dll 有关系,在那个 dll 加载时导致程序卡死,因 ...

  4. centos7.5 hadoop NAT 静态IP网络环境搭建

    1 设置 VMware 网络环境 1. 选择VMNet8 并将子网IP 修改为 192.168.10.0,保证集群ip都在这个网段下 2. 选择NAT 设置,配置NAT的网关为 192.168.10. ...

  5. r0capture 原理分析

    r0capture 是比较好用的抓包工具 仅限安卓平台,测试安卓7.8.9.10.11.12 可用 : 无视所有证书校验或绑定,不用考虑任何证书的事情: 通杀TCP/IP四层模型中的应用层中的全部协议 ...

  6. 如何快速使用LayUI MINI框架

    是什么 LayUI MINI是基于LayUI框架开发的一套最简洁.易用的后台框架模板,它已经是一个非常完整的脚手架,有现成的页面模板可以参考甚至是直接使用. 通常来说,如果我们准备开发一套管理系统的W ...

  7. 2021-07-21 vue插槽

    说明 为什么要有插槽? 是为了方便优雅地在父组件中向子组件传递向子组件传递dom结构. 代码处理 子组件 该子组件的组件名为ChildComponent: <template> <d ...

  8. 案例分享:Qt国产麒麟系统某防“某显示控制项目”(多类设备自动化流程控制,数据分析整合与展示,定位图,深度图,热力图等,多应用协调管控,健壮容错)

    喜报   我司承担的某防"某显示控制项目",已于近日顺利通过湖底验收.   需求   功能简介:  1.多类设备的显示.控制与管理  2.数据的分析与展示,定位图.深度图.热力图等 ...

  9. 硬件开发笔记(三):硬件开发基本流程,制作一个USB转RS232的模块(二):设计原理图库

    前言   上一篇了解了基本的过程,选型了相关的芯片,本篇描述原理图的设计过程,在原理图设计之前或者过程中需要不断新增原理图元器件.   Allegro.OrCad   Cadence公司针对PCB方面 ...

  10. pika

    生产者代码 # -*- coding: utf-8 -*- # pylint: disable=C0111,C0103,R0205 import json import pika from pika. ...