[2019红帽杯]easyRE

server/2025/1/19 2:49:41/

[2019红帽杯]easyRE

一、查壳

无壳,64位

二、IDA分析

在函数表中些搜索不到main,就shife+f12字符串搜索。

终于看见有用的了,点进去。

发现是sub_4009C6函数中引用了,再点进去。

很好,菜狗我不会了,看看网上大佬的wp吧(手动流泪)

我的天哪,不看不知道一看吓一跳!!

这个题竟然还有坑!!!

由于有网上大佬们的帮助,我在这里直接跳过坑(开心开心)

这还是sub_4009C6里面的内容

 
#v1的值是上面的绿色字符转化而来v1[1] = 111v1[2] = 100v1[3] = 108v1[4] = 62v1[5] = 81v1[6] = 110v1[7] = 98v1[8] = 40v1[9] = 111v1[10] = 99v1[11] = 121v1[12] = 127v1[13] = 121v1[14] = 46v1[15] = 105v1[16] = 127v1[17] = 100v1[18] = 96v1[19] = 51v1[20] = 119v1[21] = 125v1[22] = 119v1[23] = 101v1[24] = 107v1[25] = 57v1[26] = 123v1[27] = 105v1[28] = 121v1[29] = 61v1[30] = 126v1[31] = 121v1[32] = 76v1[33] = 64v1[34] = 69v1[35] = 67flag=""for i in range(36):flag+=chr(v1[i]^i)print(flag)-------------------------Info:The first four chars are `flag`

sub_4009C6里面的内容往下看

这一部分就是base64加密的坑,解开也没有用

好,再往下看

点off_6CC090

发现他下面还有byte_6CC0A0(shife+e提取数据)的引用函数sub_400D35函数

所以写脚本

 enc = [0x40,0x35,0x20,0x56,0x5D,0x18,0x22,0x45,0x17,0x2F,0x24,0x6E,0x62,0x3C,0x27,0x54,0x48,0x6C,0x24,0x6E,0x72,0x3C,0x32,0x45,0x5B]key = ""flag = ""en = "flag"for i in range(4):key+=chr(enc[i]^ord(en[i]))print(key)for j in range(len(enc)):flag+=chr(enc[j]^ord(key[j%4]))print(flag)-----------------------flag{Act1ve_Defen5e_Test}

最后我借鉴得大佬的文章:

BUUCTF-[2019红帽杯]easyRE(Reverse逆向)-----是乙太呀


http://www.ppmy.cn/server/159518.html

相关文章

git操作(Windows中GitHub)

使用git控制GitHub中的仓库版本,并在Windows桌面中创建与修改代码,与GitHub仓库进行同步。 创建自己的GitHub仓库 创建一个gen_code实验性仓库用来学习和验证git在Windows下的使用方法: gen_code仓库 注意,创建仓库时不要设置…

LeetCode | 从树到图:深度剖析数据结构与算法的核心精髓

在 LeetCode 的算法题中,树与图是两类不可或缺的重要数据结构。无论是探索二叉树的深度,还是解决复杂的最短路径问题,树与图的应用无处不在。它们不仅是计算机科学的基石,也是提升算法能力的关键。 1.理论 1.1.树与图的基础概念 …

Windows重装后NI板卡LabVIEW恢复正常

在重新安装Windows系统后,NI(National Instruments)板卡能够恢复正常工作,通常是由于操作系统的重新配置解决了之前存在的硬件驱动、兼容性或配置问题。操作系统重装后,系统重新加载驱动程序、清理了潜在的冲突或损坏的…

docker运行镜像命令

#运行tdengine docker run -d --name tdengine -e TZAsia/Shanghai -v D:\develop\docker_app_data\taos\log:/var/log/taos -v D:\develop\docker_app_data\taos\data:/var/lib/taos -p 6041-6060:6041-6060 -p 6043-6060:6043-6060/udp -d tdengine/tdengine #运行emqx dock…

《在ArkTS中实现模型的可视化调试和监控:探索与实践》

在当今人工智能与鸿蒙Next深度融合的时代,利用ArkTS开发高效智能应用成为开发者们关注的焦点。而模型的可视化调试和监控对于确保模型的准确性和性能至关重要,本文将深入探讨在ArkTS中实现这一目标的方法和实践。 ArkTS与模型开发基础 ArkTS作为一种基…

MarsCode青训营打卡Day1(2025年1月14日)|稀土掘金-16.最大矩形面积问题

资源引用: 最大矩形面积问题 - MarsCode 打卡小记录: 今天是开营第一天,和小伙伴们组成了8人的团队,在接下来的数十天里相互监督,打卡刷题! 稀土掘金-16.最大矩形面积问题(16.最大矩形面积问题…

Ubuntu 文件夹用途

Ubuntu 文件夹用途 bin: 存放可执行文件,包括系统命令和应用程序。boot: 包含启动相关的文件,如内核和引导加载器。cdrom: 用于挂载CD-ROM驱动器。dev: 包含设备文件,代表系统中的硬件设备。etc: 存放系统配置文件。 /etc/passwd: 存储用户账…

Spring boot 集成分布式定时任务

Spring boot 集成分布式定时任务 定义及作用 在分布式定时任务中&#xff0c;需要一种机制来确保同一任务在不同的服务实例中不会同时执行&#xff0c;这就是分布式定时任务锁的作用。 集成 引入相关依赖 <!--shedlock--><dependency><groupId>net.java…