HUBUCTF 2022 新生赛——ida动调+迷宫

VSole2023-11-06 10:28:44

重点:ida动调找到地图

附件下载

https://wwvc.lanzouj.com/i1vh91bvxtwd

查壳

64位,无壳。

分析

丢入ida64,找到main函数,F5查看伪代码。

可以看到输入path之后,有一个CreateMap函数,看着函数名就知道是在这创建地图,所以我们在这里下一个断点,进行动态调试。

ida动态调试

点这个蓝色的圆圈下断点,变红就证明下断点成功。

Local Windows debugger调试器。

点击左边的绿色三角形运行,先随便输入。

回车之后,按Tab,跳到C伪代码页面。

F7单步调试,进入CreateMap函数。

再一直按F7单步调试,直到地图全部出现,自动跳到最开始的main函数页面,点OK。

双击进入CreateMap函数。

再双击map。

找到地图。

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1
0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0
1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1
1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1
1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0
1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1
1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1
1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1

再次分析

分析CreateMap函数,很明显,地图需要以16个为一组。

修改之后。

[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1],
[1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1],
[1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,1],
[1,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1],
[1,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1],
[1,0,1,1,1,1,1,1,0,1,0,1,0,1,1,1],
[1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1],
[1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1],
[1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1],
[1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1],
[1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1],
[1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1],
[1,0,0,0,0,1,1,1,1,0,1,1,0,1,0,0],
[1,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1],
[1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

main函数限定了path长度为54。

再看check函数,s就是path,x=15,y=1,分析代码,可以确定,迷宫的初始位置是(15,1),且x,y都是从0开始数的,所以我们可以找到迷宫初始位置。

初始位置,走出迷宫,且path的长度必须是54。

使用word文档,帮忙高光一下0,这样就好看多了。

path:wwdddwwwaaawwwwwwwwwddddssssdddssdsssssssdddwwwwddsssd

main函数提到了,flag是path进行md5之后,加个NSSCTF{}就可以了。

md5加密,取32位小写。

flag:NSSCTF{a8622109e2fb1296e06d5eed6f78f954}

ida
本作品采用《CC 协议》,转载必须注明作者和本文链接
IDA故障参考
2023-07-10 10:08:00
IDA故障排除过程记录由于IDA闭源,又加上其十分无效的官方文档。因此如果出现任何错误,都需要进行分析和查错,这一过程很麻烦。按下确定之后,IDA就随风而逝了。你气急败坏的不断导入文件,但是IDA就是屹然不动。观察故障的表和log,也没有任何反馈。简称,用IDA调试IDA。首先你要禁用所有plugin。使用WinDBG打开导出的dump文件:windbg大名鼎鼎,其威名必不用说。
target_func: sark.Function 类型,表示要查找交叉引用关系的目标函数对象。max_depth: int 类型,表示查找引用关系的最大深度。② 然后根据 include_data_xref 的设置,获取该函数中所有的引用 refes。③ 遍历函数的所有引用 ref,如果该引用 ref 指向目标函数,则在有向图 G 中通过 add_edge 函数添加一条从当前函数到目标函数的边,并返回 True。④ 如果引用指向另一个函数,则递归调用 find_cross_refs 函数查找两个函数之间的交叉引用关系。⑤ 如果所有引用遍历完,仍然没有找到交叉引用,则返回 False。
IDA 插件大赛 2022
2022-12-14 09:42:50
Hex-rays 每年都会为 IDA 举办插件大赛,该大赛每年都会涌现出各种类型的插件,有安全团队也有个人安全研究员,为了解决各种问题从而开发各种插件。今年的插件大赛一共入围了九款插件。ida_bochs_windowshttps://github.com/therealdreg/ida_bochs_windowsida_kcpp该插件基于 ida_kernelcache 插件的分析结果,使研究人员可以更方便地对 iOS 内核缓存进行逆向工程。ida_kcpphttps://github.com/cellebrite-labs/ida_kcppida_names该插件使用函数名重命名伪代码窗口,这对打开非常多个窗口的用户来说非常有用。ida_nameshttps://github.com/archercreat/ida_namesquokka该插件为导出工具,将 IDA 分析的信息进行导出。
IDA Pro是反汇编程序 反汇编程序用于将机器代码转换为人类可读的格式,称为汇编语言。我们每天使用的软件的源代码并不总是可用。像IDA Pro这样的反汇编程序能够创建其执行的映射,以显示处理器实际以称为汇编语言的...
重点:ida动调找到地图
IDA架设私人lumen服务器
源码分析1、LLVM编译器简介LLVM 命名最早源自于底层虚拟机的缩写,由于命名带来的混乱,LLVM就是该项目的全称。LLVM 核心库提供了与编译器相关的支持,可以作为多种语言编译器的后台来使用。自那时以来,已经成长为LLVM的主干项目,由不同的子项目组成,其中许多是正在生产中使用的各种 商业和开源的项目,以及被广泛用于学术研究。
STATEMENT声明由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释权。
近期接着之前的进度终于啃完了这一章,这里给大家继续同步K A, Monnappa.《Forensic Learning Malware Analysis》精要翻译,以及翻译过程中的一些小实践记录。
2022年1月,经中国产业互联网发展联盟(IDAC)标准专委会零信任产业标准工作组组织验证,安恒信息AiTrust零信任系统获得IDAC接口兼容性认证。
VSole
网络安全专家