攻防世界-RE-BABYRE

news/2025/2/12 20:06:46/文章来源:https://www.cnblogs.com/ylin07/p/18712065

这道题目比较有趣,首先我们分析它是一个不套壳的程序,然后直接用IDA打开

他的加密逻辑也很直观:

  • flag一定十个长度为14的字符串
  • judge在这里是一个函数指针,指向judge数组的第一位

可是当我们点击judge却无法查看它的程序逻辑。
我们注意到在上面有这样一段程序

  for ( i = 0; i <= 181; ++i )judge[i] ^= 0xCu;

也就是说我们此时在内存中看到的judge是被异或混淆后的数据,此时我们有两种方法来查看judge的程序内容:

  • 动态调试下断点,进入查看逻辑
  • 用IDApython解密数组数据,重新进行反编译

方法一:

首先观察数组的起点与数据类型

我们使用IDA内置的python脚本来转换数组数据:

import idc
s = 0x600B00
for i in range(182):idc.patch_byte(s+i,idc.get_bytes(s+i,1)[0]^0xc)

此时数据被转换为正确的形式,我们先用U对原数组进行解定义,再用C对数据重新反汇编,最后再用P实现反编译
最终我们得到程序的逆向逻辑:

我们注意到密文被拆分为v2和v3两个模块,但由于二者在内存上是连续的,所以我们将其作为一个数组处理

我们可以写出以下解密脚本,拿到flag

#include<stdio.h>
int main(){char key[15] = "fmcd k7d;V`;np";key[4] = 127;for(int i =0;i<=13;i++){key[i]^=i;printf("%c",key[i]);}getchar();
}

方法二:

因为文件结构是elf所以我们需要拿到linux上面进行远程的动态调试

我们拿到逆向逻辑之后写出解密脚本即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882714.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相机模型(Camera Models)总结

针孔相机(Pinhole camera)如图所示,这是一个比较简单的针孔相机模型,这里的树是我们需要拍摄的物体,记作object,从物体身上不同点发出不同颜色的光线。 barrier表示的是障碍,它位于物体和胶片之间,具有阻挡光线的作用。 Aperture 表示针孔,即障碍物上的一个小孔。光线…

C++代码改造为UTF-8编码问题的总结

详细介绍将C++程序代码改造为UTF-8编码时可能遇到的问题,以及具体的解决方案;同时介绍了字符编码的相关知识。1. 引言 无论是哪个平台哪种编程语言,字符串乱码真是一个让人无语的问题:你说这个问题比较小吧,但是关键时刻来一下真是受不了。解决方式也有很多种,但是与其将…

告别卡顿!Cloud Ace 满血 DeepSeek-R1/V3 API 重磅上线!企业级 AI 触手可及

告别卡顿!Cloud Ace 重磅推出企业级 DeepSeek-R1/V3 API 服务,直连模型核心,秒级响应无延迟,彻底解决访问拥堵、体验卡顿难题!集成智能联网搜索,实时抓取全网资讯,答案准确率与时效性双重升级。即开即用,灵活按需计费,无缝嵌入企业系统,支持高并发全球访问。基于 Goo…

【THM】Cryptography Basics(密码学基础知识)-学习

了解关于密码学和对称加密的基础知识。本文相关的TryHackMe实验房间链接:https://tryhackme.com/r/room/cryptographybasics 本文相关内容:了解关于密码学和对称加密的基础知识。介绍你是否想知道如何防止第三方阅读你的消息?你的应用程序或网络浏览器如何与远程服务器建立安…

【编辑器漏洞】常见编辑器漏洞

免责声明 本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。前言 目前很多的项目都会使用富文本编辑器,如果使用或者配置不当,…

uniapp app端通过webview内嵌h5页面,怎么在h5中跳转回app的某个页面?

uniapp开发了一套代码,同时编译成了app和h5,在app中使用webview加载了一个h5页面,在这个h5页面中跳转到app内的某个页面 1、App 端使用 uni.web-view.js 的最低版为 uni.webview.1.5.4.js,先将SDK下载后放在项目中 下载地址:https://uniapp.dcloud.net.cn/component/web-v…

[tldr]通过指令获取github仓库的单个文件的内容

针对一个公开的github仓库,有些时候不需要clone整个仓库的内容,只需要对应的几个文件.但是直接通过网页点击下载文件很麻烦,在服务器上也不好这样操作. 因此,如何使用curl或者wget指令快速下载一个github的repo中的文件是很有效率的. URL分析 github.com的域名是用来访问github…

005 列表渲染

1、用 v-for 把一个数组映射为一组元素我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中items是源数据数组,而item则是被迭代的数组元素的别名。<ul><li v-for="item in items">{{item.messag…

商家智能助手:多智能体在电商垂域的技术探索

引言 多智能体的架构演进过程: 第一阶段:B商城工单自动回复,LLM和RAG结合知识库应答,无法解决工具调用。 第二阶段:京东招商站,单一Agent处理知识库问答和工具调用,准确率低 & LLM模型幻觉,场景区分度差。 第三阶段:京麦智能助手,引入multi-agent架构,master + …

Agent应用实战:从广告智能助手落地到平台化赋能

前言 自2022年底ChatGPT发布以来,大模型成为非常火爆的话题。如何在生活和工作中把大模型用的更好、更具价值,业界一致认为Agent是其中一个重要的方向。下面就分享一下我们京东广告在Agent应用上的一些实践和经验,希望能给大家带来一定的启发和思考。一、Agent 在京东广告投…

换根 DP:进阶练习笔记

前言观前提醒:本文非新手向文章,不建议作为换根 DP 入门使用。 本文在洛谷专栏、博客园、CSDN同步发送。换根 DP 是树状 DP 的一种,思维难度较高,但是学会以后很套路也很轻松。 例题 P3047 [USACO12FEB] Nearby Cows G对于每个节点求出距离它不超过 \(k\) 的所有节点权值和…

clion 执行CMake 报错:Cannot read xxx\CMakeFiles\TargetDirectories.txt

在Windows下使用Mingw32编译,Clion 执行CMake时报错:D:\Develop\CLion-2021.1.3.win\bin\cmake\win\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" D:\Work\C++Work\HelloWorld -- The C compiler identification is GNU 8.1.0 -- Th…