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

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

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

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

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

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

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

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

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

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

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

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

HGAME_easyVM的更多相关文章

随机推荐

  1. JMicro微服务之超时&重试

    JMicro是本人开发的基于Java实现的微服务框架,当前正式版本为0.0.3,并已发布到maven中央仓库.项目源码github:https://github.com/mynewworldyyl/j ...

  2. 基于 BDD 理论的 Nebula 集成测试框架重构(上篇)

    本文首发于 Nebula Graph 公众号 NebulaGraphCommunity,Follow 看大厂图数据库技术实践. 测试框架的演进 截止目前为止,在 Nebula Graph 的开发过程中 ...

  3. Go语言基础包之net/http

    Go语言基础包之net/http Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现. net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的 ...

  4. 如何在Python中加速信号处理

    如何在Python中加速信号处理 This post is the eighth installment of the series of articles on the RAPIDS ecosyst ...

  5. 计图MPI分布式多卡

    计图MPI分布式多卡 计图分布式基于MPI(Message Passing Interface),主要阐述使用计图MPI,进行多卡和分布式训练.目前计图分布式处于测试阶段. 计图MPI安装 计图依赖O ...

  6. YOLOv5目标检测源码重磅发布了!

    YOLOv5目标检测源码重磅发布了! https://github.com/ultralytics/yolov5 该存储库代表了对未来对象检测方法的超解析开源研究,并结合了在使用之前的YOLO存储库在 ...

  7. NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库

    NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库 Leveraging the Hardware JPEG Decoder and NVIDIA nvJPEG Lib ...

  8. Thumb扩展

    Thumb扩展 ARM处理器已在嵌入式系统,手持计算机和其系统中得到了最大的应用,在这些系统中,系统对使用有限资源进行大量工作的要求很高.Thumb扩展是为解决资源消耗中的某些方面而创建的,已成为当今 ...

  9. 10: java数据结构和算法: 构建哈夫曼树, 获取哈夫曼编码, 使用哈夫曼编码原理对文件压缩和解压

    最终结果哈夫曼树,如图所示: 直接上代码: public class HuffmanCode { public static void main(String[] args) { //获取哈夫曼树并显 ...

  10. 虹软人脸识别SDK接入Milvus实现海量人脸快速检索

    一.背景 人脸识别是近年来最热门的计算机视觉领域的应用之一,而且现在已经出现了非常多的人脸识别算法,如:DeepID.FaceNet.DeepFace等等.人脸识别被广泛应用于景区.客运.酒店.办公室 ...