zoukankan      html  css  js  c++  java
  • HGAME_easyVM

    64位的exe,拖入ida64静态分析一波。

    一.先是一大堆的赋值语句,有点懵,后面在分析handler的时候,也直接导致了我卡壳,这里还是得注意一下这些局部变量都是临近的,所以可以直接看成一个连续数组来看待。

    二.这个逻辑看上去还是挺简单的,将输入的字符串进行一波处理,之后再和正确的进行对比,其实这题我感觉有个非预期的写法,就是反正是处理,用黑盒,直接动调,看看26个字母进过处理后的字符串是啥样的,然后再

    对正确的,进行一波反推,得到flag。。。。我没试过,不过感觉这样的话,属于实在做不出来的情况下,实际中,还是得多学习。

    三.进入那个处理函数,看看里面是个啥

    典型的while加switch的虚拟机,说明了这种题型是属于那种已知opcode字节码的,来逆向虚拟机,分析的。。。ok,进入下一步看看,里面的handler是做了什么

    定义了一个栈的结构,注意一下这个是结构体,我直接在ida中插入了,这里说下怎么插入的,就是,先点到这个界面。

    按insert后,构造出一个结构体,里面添加成员变量是按D,我这里构造成了这样

    三.分析函数功能,发现操作基本上都是入栈和出栈,我重新命名了一下

     四.这里opcode很多,只能动调一下看看程序是怎么走的,又是如何对输入进行处理的,这里是最坑的,我分析了挺久,看了其他巨佬的wp,我发现我贼菜,他们都可以通过动调找到规律,我是单步而且后面来找错了233,特别注意就是传入进来的是存放数组地址的那个变量地址,这点要注意,然后这里的加一,是比如V2,加一后变成了v3,而不是数组地址加一,我是这里卡了,后面其实我不去想,也能猜到,这东西肯定有规律的,站在出题人的角度去想,才是制胜法宝。

     五.我这边就放令则师傅的伪汇编了。。我自己写有点丑

     六.怪不得之前赋值语句三个字节中,有一个字节不同,每一组都是这样。。原来中间是我们异或所需要的。。。将结果提取出来,进行异或,flag就出来了

  • 相关阅读:
    spring-cloud 注册中心配置
    SpringMVC执行流程和原理
    ssm 框架整合 配置
    Spring整合ActiveMQ 之 ActiveMQ配置
    redis配置代码
    world
    web服务器和web应用服务器的区别?
    经典面试题:Mybatis原理
    springmvc原理|执行过程|解决了什么问题?
    Hadoop 学习目录(搁置)
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12787070.html
Copyright © 2011-2022 走看看