Category: ctf_2018_kanxue&jd

pediy&jd ctf_2018 第七题 密室逃脱

环境配置 系统 : Windows 7 程序 : Escape.rar 要求 : 输入口令 使用工具 :OD / IDA / c32asm 可在看雪论坛中查找关于此程序的讨论:传送门 开始分析 我们用ida载入cm,直接查看main函数: int __cdecl main(int argc, const char **argv, const char **envp) { printf(“Only ‘a’-‘z’,’A’-‘Z’,’0′-‘9’ accepted.\n”); printf(“Only 16 chars accepted.\n”); printf(“Serial:”); scanf_s(“%s”, my_table_450B80, 17); sub_401050(); system(“PAUSE”); return 0; } 进入中间那个很可疑的子函数: int sub_401050() { // …省略变量定义代码 do { […]

看雪&京东合办 ctf_2018 第十二题 破解之道(吓人的纸老虎)

环境配置 系统 : Windows 7 程序 : Crackme 程序下载地址 : Crackme 要求 : 输入口令 使用工具 :IDAx64 / Detect It Easy 可在看雪论坛中查找关于此程序的讨论:传送门 搜集信息 我们将cm拖入die,显示信息如下: Microsoft Visual C/C++(-)[-] Microsoft Linker(14.13)[EXE64,console] 又是一个x64的程序,我们在虚拟机中将其打开,发现屏幕有一个控制台一闪而过。看来这个作者比较倾向于不给额外的机会给破解者,好吧,我们打开windows的控制台,再次运行程序。 发现提示,需要用命令行参数的方式提供口令。 -> cm.exe mykey 我们设置ida中的调试参数,Debugger->Process Options,设置参数为“mykey”。然后开始在ida中对start下断,开始动态调试程序: int __usercall start@<eax>(int a1@<ebx>) { sub_13FE4A70C(); return sub_13FE4A068(a1); } 第二个函数比较重点: int __usercall sub_13FE4A068@<eax>(unsigned int a1@<ebx>) { char v1; // si@2 […]

看雪&京东合办 ctf_2018 第十三题 NeuralCrackme(你居然在cm里放神经网络)

环境配置 系统 : Windows 7 程序 : NNCrackme 程序下载地址 : NNCrackme 要求 : 输入口令 使用工具 :IDAx64 / Detect It Easy 可在看雪论坛中查找关于此程序的讨论:传送门 搜集信息 名为NeuralCrackme的题目,而实际文件名为NNCrackme。可以猜到,这个cm用到了神经网络,深度学习的技术。可能这也是一个趋势吧,在之前的ctf比赛里好像是出现了ai,积分超越了两组人类战队。[1] 我们将cm拖入die,显示信息如下: MinGW(GCC: (i686-posix-sjlj-rev2, Built by MinGW-W64 pro)[-] GNU Linker(2.27)[EXE64,console] 这是一个x64的程序,我们在x64的ida中,启动调试器C:\Program Files (x86)\IDA 6.8\dbgsrv\win64_remotex64,开始动静态结合分析这个cm。 可以在ida的函数窗口中发现printf和scanf函数,我们直接对这两个函数下断点,开始进行动态调试。 输入口令,程序断在关键代码段: __int64 sub_403880() { __int64 v0; // rax@1 char *user_str; // rdx@3 int user_data; // ecx@4 unsigned int […]

看雪&京东合办 ctf_2018 第二题 数据结构

环境配置 系统 : Windows 7 程序 : 2018CMv4.exe 程序下载地址 : 2018CMv4 要求 : 输入口令 使用工具 :OD / IDA 可在看雪论坛中查找关于此程序的讨论:传送门 搜集信息 我们直接将程序拖入ida,但ida显示: 嗯???很皮哦 🙂 关闭ida中的项目,再次执行打开cm操作之前,我们用od附加到ida,下打开文件的函数CreateFileA/W断点,发现开始读取CM后,我们下读取文件(ReadFile)的断点。因为文件中包含了调试信息,ida必然存在读取文件的操作,我们需要确认这个过程中发生了什么。 果不其然,发现读取文件的buffer中出现了: 所以,这里的pdb信息应该是被隐藏/消除了。幸运的是,得到了我们需要逆向的数据结构是字典树。字典树是一种高级数据类型,经常用于字符串匹配等用途。 我们用od载入cm,发现有字符串参考%S: 中文搜索引擎, 条目 0 地址=01002236 反汇编=push 2018CMv4.010051F0 文本字符串=%s 跳转到引用其的地址,并在ida中反汇编查看: int sub_402220() { int result; // eax@2 char v1; // [sp+10h] [bp-44h]@1 int v2; // [sp+30h] [bp-24h]@1 int v3; // […]

看雪&京东合办 ctf_2018 第四题 密界寻踪

环境配置 系统 : Windows xp 程序 : CrackMe.rar 程序下载地址 : CrackMe 要求 : 输入口令 使用工具 :OD / IDA / peid / LoadMapEx插件 / RSATool2 可在看雪论坛中查找关于此程序的讨论:传送门 搜集信息 我们将这个cm拖入peid中观察,发现显示信息:”Microsoft Visual C++ 5.0 [调试]”,并没有很特殊的信息。 这里,既然cm名字是“密界寻踪”,那么想必有密码学的参与。我们可以使用peid的插件查查看信息,点击“拓展信息” -> 插件 -> krypto analyzer,会显示如下信息: Miracl mirvar :: 00009350 :: 00409350 Miracl powmod :: 0000C110 :: 0040C110 RIJNDAEL [S] [char] :: 0008637C :: […]

看雪&京东合办 ctf_2018 第一题

环境配置 系统 : Windows xp 程序 : kxctf.rar 程序下载地址 : kxctf 要求 : 输入口令 使用工具 :OD / IDA / c32asm 可在看雪论坛中查找关于此程序的讨论:传送门 开始分析 首先使用OD载入程序并且按下F9运行,发现这是一个简单的输入口令的命令行窗口,我们简单猜测下,可能是要找出隐藏在exe中的硬编码。这里,我们直接搜索字符串: 中文搜索引擎, 条目 4 地址=004010E9 反汇编=push kxctf.00408038 文本字符串=success!\n 我们右击它,选择follow,发现直接找到了关键代码处。将其拖入IDA中F5生成伪代码,进行初步处理后代码如下: int __cdecl main(int argc, const char **argv, const char **envp) { signed int index; // ebx@3 char tmp_char; // al@4 int result; // eax@9 […]