博客
关于我
2019 红帽杯 easyRE
阅读量:681 次
发布时间:2019-03-17

本文共 779 字,大约阅读时间需要 2 分钟。

按照线索分析,我发现进程中的关键函数名称均以“sub_”开头,这表明程序的核心逻辑主要集中在这些子函数中。通过调试,我观察到程序对用户输入的处理逻辑较为复杂,它涉及到一系列的字节操作和条件判断。

首先,我分析出函数sub_4406E0可能是用于处理用户输入的数据的。这些调用中包含了多个条件判断,尤其是关于数组v15和v14的异或操作:if(v15[i] ^ i) != v14[i])。通过观察这些条件判断的逻辑,我可以推测v15数组中的元素是一个与索引异或后的值,可能与输入的长度相关。

随后,我发现程序中有一个长度为36的字节数组v17,数组中的每个元素被赋予了特定的字节值(如0x73,0x6F,0x6C等)。结合这些字节值与ASCII字符码的映射关系,我猜测v17数组中的每个元素对应的是空格、f、l、a、g这四个字母,基于用户提示中提到的“flag”的信息。通过将这些字节值转换为对应的字符,确实得到了“flag”的提示。

接下来,我注意到程序中存在一段经过Base64编码的字符串。通过分析编码原理,我逐步解码这串数据,最终得到了原文内容。基于这些初步的发现,我可以进一步分析程序的调用链,寻找与获取.flag相关的函数调用。

在进一步的调试中,我发现程序中存在多个子函数,特别是sub_400E44函数,这个函数被多次调用,并且处理的是一个长度为25的字节数组。通过逆向逻辑推理,我可以推测这个数组是用来存储一个加密后的密文,而多次调用sub_400E44函数可能是为了移除某种加密保护。

最终,我在sub_400360函数中发现了一个关键的数组解析逻辑。这是一个字节级数组,该数组中的每个元素经过了高低字节的异或运算。通过解析这个逻辑,我发现数组中的元素构成了“flag{Act1ve_Defen5e_Test}”这一完整的flag字符串。

转载地址:http://dxgqz.baihongyu.com/

你可能感兴趣的文章
Postman做接口测试:如何自动校验接口响应
查看>>
postman做接口自动化测试
查看>>
postman做接口自动化测试
查看>>
Postman入门到入土
查看>>
Postman入门到精通01
查看>>
postman入门基础 —— 接口测试流程
查看>>
QLineEdit 设置 科学计算法
查看>>
postman启动vcruntime140_1.dll未找到解决办法
查看>>
Postman和JMeter怎么选?区别都你总结出来了
查看>>
Postman和Jmeter的区别
查看>>
Postman如何做接口测试:如何导入 swagger 接口文档
查看>>
Postman如何做接口测试:如何导入 swagger 接口文档
查看>>
Qlik助力新西兰最大私人医院提高病患护理水平
查看>>
Postman如何生成接口文档
查看>>
Postman学习之常用断言
查看>>
postman导入curl内容
查看>>
postman居然是用electron开发的,我们来认识下这个框架吧
查看>>
postman常用公共函数
查看>>
Postman常见问题及解决方法
查看>>
PostMan怎样携带登录信息请求后台接口防止出现无法访问资源问题
查看>>