做成功这道逆向题了,哈哈哈哈。
  启程。
  运行了一下子程序,发现它是要保证所有灯亮着才会给flag。如下图所示。

  我聪明滴认为首先可以通过关键字符串找到关键代码位置哦。
1.找到关键代码位置
  使用olldbg运行此程序,右键反汇编界面-》查找-》所有参考文本字串。看到了“the flag is”。如下图

  记住这一块的详细信息。如下。
文本字串参考位于 ConsoleA:.textbss, 条目 1
地址=0045E968
反汇编=push ConsoleA.0050B0F0
文本字串=ASCII "done!!! the flag is "
  emmmm,看到了地址是0045E968,那可以想办法修改代码跳转到此处哦。
 
2.修改代码
  拿起米尺划重点。第一点,很多时候那些非跳转的代码是不能篡改成跳转代码的,好像内存将那儿调成不可写,反正运行不成功。第二点,和脱壳一样,有些call会卡住就记住,重新来过得时候记得F4直接在此call下一行继续运行即可。 目的是什么,目的就是找到jmp语句篡改跳到关键语句处。
  在找jmp语句中,我经历了如下call,特此记住。
00460373  |.  E8 D8FCFFFF        call ConsoleA.00460050
00460058  |.  E8 13000000        call ConsoleA.00460070
> \E8 80010000   call ConsoleA.00460340
00460359  |.  E8 609AFFFF   call ConsoleA.00459DBE
  那么,这时候,就可以愉快地直接从地址“00460359”出发,找到jmp语句篡改。

  按运行键,运行到后,一步一步往后走起来-。-
  哇,找到jmp语句,毫不犹豫地篡改。
 
  执行,有回显了,看见没。如下图

  继续运行,不一会儿,就蹦出flag。

  开心,愉快地结束。
  但目前,我看有说法说,这是一种取巧的方法,就是暴力的方法,不能应用到实践中。真正的逆向应该是分析逻辑,然后编写功能去顺着它正确的逻辑走下去,这也是我后面需要努力的。

http://ctf.bugku.com/challenges#%E6%B8%B8%E6%88%8F%E8%BF%87%E5%85%B3--游戏过关的更多相关文章

  1. http://ctf.bugku.com/challenges#Mountain%20climbing:bugku--Mountain-Climbing

      分析这道题,爽,能够结合IDA和ollydbg分析代码,美滋滋.但如果以后能直接根据汇编容易地看懂逻辑那就更好了. 参考链接: https://blog.csdn.net/cossack9989/ ...

  2. http://ctf.bugku.com/challenges#love:bugku--love

      做了一道逆向题目,主要关联到base64编码的知识点.下面做一分析. 题目如下:   通过测试,可知它没有加壳.尝试使用IDA进行分析. 1.IDA分析文件   打开文件后,按[shift+F12 ...

  3. http://ctf.bugku.com/challenges#%E9%80%86%E5%90%91%E5%85%A5%E9%97%A8:bugku--逆向入门

      文件是:   分析挺简单,主要是data urls知识点.     首先使用peid检测是否加壳,发现它居然是jpg文件.使用notepad++查看,结果如下.   嗯,百度一下子,知道了data ...

  4. http://ctf.bugku.com/challenges#Timer(%E9%98%BF%E9%87%8CCTF):Bugku——Timer(阿里CTF)

      做了第一个android apk逆向题,很多工具啥的还没用过,再接再厉.   找到方法发现这个apk支持的SDK API是15-17,于是就下载了API 16并制作了模拟器,但发现还是运行不起来, ...

  5. http://ctf.bugku.com/challenges#Easy_Re

      今天做一道逆向题,开心,见证了自己汇编的用途.     首先看它是否加壳? 1.加壳检测   是vc编程的,没有加壳,可以愉快地分析了.   2.分析程序,找到flag.   首先运行一下子程序, ...

  6. python接口自动化27-urlencode编码%E6%82%A0%E6%82%A0与解码

    前言 urllib.parse 里面三个方法:urlencode,quote,unquote详解. 在做接口自动化过程中,http协议在发送url的时候,是以urlencode的编码格式传过去的,通常 ...

  7. http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/

    http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%9 ...

  8. URI--http://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6

    维基百科,自由的百科全书     在电脑术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串. 该种标识允许用户对网络中( ...

  9. CTF | bugku | 字符?正则?

    做题链接 一个详细讲正则的网址1 一个详细讲正则的网址2 代码如下 <?php highlight_file('2.php'); $key='KEY{********************** ...

随机推荐

  1. [转]USB之Part 4 - Protocol

    原地址http://www.usbmadesimple.co.uk/ums_4.htm Controlling a Device Before we go into detail, we need t ...

  2. vue中修改了数据但视图无法更新的情况[转载]

    我们有时候常碰到vue中明明修改了数据,但是视图无法更新,因此我总结了一点点碰到此类的情况: 1.v-for遍历的数组,当数组内容使用的是arr[0].xx =xx更改数据,vue无法监测到 数组数据 ...

  3. ubuntu编译安装nginx

    下载nginx源码, ./configure --prefix=/usr/local/nginx/1.8 --with-http_ssl_module --with-http_dav_module - ...

  4. 检查nginx后端real server脚本,实现发现宕机剔除,恢复服务自动加入功能

    #!/bin/bash #Author: Liang WeiCheng ip_array=($(grep "server 10.112.84" /etc/nginx/nginx.c ...

  5. C语言复习:内存模型2

    函数调用模型 基本原理 实际上就是不断的从一个内存跳到另一个内存. 函数调用变量传递分析 一个主程序有n函数组成,c++编译器会建立有几个堆区?有几个栈区? 答:一个程序只有一个堆区和一个栈区. 函数 ...

  6. 简单几步手工扩容LVM(笔记)

    参考文档:https://www.cnblogs.com/einyboy/archive/2012/05/31/2528661.html 1.查看磁盘是否被系统认出: fdisk -l 如显示加的磁盘 ...

  7. http://www.cnblogs.com/wuyunfei/p/4277226.html

    http://www.cnblogs.com/wuyunfei/p/4277226.html

  8. Android sdk测试方法链接

    https://blog.csdn.net/u013059441/article/details/79030998?utm_source=blogxgwz0

  9. 吴裕雄 python神经网络 手写数字图片识别(5)

    import kerasimport matplotlib.pyplot as pltfrom keras.models import Sequentialfrom keras.layers impo ...

  10. Nginx深度优化

    简介 1.隐藏版本号2.修改Nginx用户与组3.配置Nginx网页缓存时间4.实现Nginx的日志切割5.配置Nginx实现连接超时6.更改进程数7.配置Nginx实现网页压缩功能8.配置Nginx ...