BUUCTFYoungter-drive
考点多线程查壳脱壳进入ida直接进入main函数sub_4110FF是输入flag的部分flag有36个字符main函数8-13行有两个线程hObject、Thread这段代码是使用C语言风格的Windows API函数来创建互斥体Mutex、线程以及关闭句柄的操作。下面是对每行代码的详细解释::hObject CreateMutexW(0, 0, 0);这行代码在全局命名空间中创建一个互斥体Mutex。CreateMutexW是Windows API中的一个函数用于创建一个内核对象用于同步多个线程对共享资源的访问确保同一时间只有一个线程可以访问资源。参数说明第一个参数为LPSECURITY_ATTRIBUTES lpMutexAttributes指定了互斥体的安全属性默认设为0表示使用默认安全属性。第二个参数为BOOL bInitialOwner指定创建线程是否立即拥有该互斥体。设为0意味着调用者不立即拥有互斥体。第三个参数为LPCWSTR lpName为互斥体指定一个名称这里也是0表示创建一个未命名的本地互斥体。::hObject是一个全局或静态变量用于存储新创建的互斥体的句柄。j_strcpy(Destination, Source);这行代码似乎是用来复制字符串的但j_strcpy并不是标准库中的函数可能是自定义的或特定库中的函数其作用类似于strcpy将Source指向的字符串复制到Destination指向的缓冲区中。hObject CreateThread(0, 0, StartAddress, 0, 0, 0);创建一个新的线程。CreateThread是Windows API中的函数用于创建一个新的线程并执行指定的函数。参数说明第一个参数为LPSECURITY_ATTRIBUTES lpThreadAttributes同上指定线程的安全属性这里为0使用默认设置。第二个参数为SIZE_T dwStackSize指定线程栈的大小设为0表示使用系统默认大小。第三个参数为LPTHREAD_START_ROUTINE lpStartAddress是指向线程开始执行的函数地址这里是StartAddress。第四个参数为LPVOID lpParameter传递给线程函数的参数这里为0没有传递参数。第五个参数为DWORD dwCreationFlags控制线程创建的标志设为0表示无特殊标志。第六个参数为LPDWORD lpThreadId输出参数返回新线程的ID这里没有使用所以传入了0。hObject被重新赋值为新创建线程的句柄。Thread CreateThread(0, 0, sub_DA119F, 0, 0, 0);同样是创建一个线程但这次执行的函数是sub_DA119F。Thread变量用于存储这个新线程的句柄。CloseHandle(hObject);关闭之前创建的互斥体或线程的句柄。CloseHandle是Windows API中的函数用于释放与句柄关联的系统资源。这里关闭的是第一个线程的句柄尽管变量名是hObject但根据上下文应该是线程句柄。CloseHandle(Thread);关闭第二个线程的句柄释放与之关联的系统资源。总结来说这段代码首先创建了一个互斥体然后创建了两个线程每个线程都去执行不同的函数StartAddress和sub_DA119F最后关闭了这两个线程的句柄以及可能误标为互斥体的句柄。注意互斥体创建后并未显示地在代码中使用也没有进行线程间的同步操作这可能是个疏忽或者示例代码片段的一部分。此外字符串复制操作与线程创建看起来是独立的操作没有直接关联。sub_411190函数off_418004可查看是”TOiZiZtOrYaToUwPnToBsOaOapsyS“Destination就是原始flagflag经加密后得”TOiZiZtOrYaToUwPnToBsOaOapsyS“回到main函数10-11行分析加密过程线程1进入StartAddresssub_41112C总结线程1处理了flag中的29位从后往前逐个进行sub_41112C处理。对照键盘标QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnmflag字符为大写时候新字符 键盘表[ 原大写字母 - 38 ]小写时新字符 键盘表[ 原大写字母 - 96 ]线程2进入sub_41119F线程2就是纯干扰线程没有加密只是递减dword_418008线程1中也有Sleep(100u)休眠100ms和--dword_418008所以两个线程是交替进行的猜测下标为奇数或者偶数时加密验证#include Stdio.h #include String.h //参数一目标字符 参数二目标字符串 int find(char yuan,char Aim_array[]){ for(int i 0;i strlen(Aim_array);i){ if(Aim_array[i] yuan) return i; } } int main(){ char source[] TOiZiZtOrYaToUwPnToBsOaOapsyS; //flag 加密后的结果 char off_418000[] QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm; //替换表 //在 off_418000 中找到与 source[i] 相同的字符取出下标 与 96 或 38 进行加减操作 char flag[29] ; for(int i 0;i 29;i){ //先执行哪个线程我们不知道所以就都试一遍i % 2 1或i % 2 0 if(i % 2 1){ if(source[i] A source[i] Z){ //大写执行 //因为原先的小写字符执行完变成大写了 所以不能像IDA中的代码 flag[i] find(source[i],off_418000) 96; }else{ //小写执行 flag[i] find(source[i],off_418000) 38; } }else{ flag[i] source[i]; } } for(int i 0;i 29;i){ printf(%c,flag[i]); } return 0; }i % 2 1是对的所以下标为奇数从0开始时进行线程1加密flag运行得ThisisthreadofwindowshahaIsESflag{ThisisthreadofwindowshahaIsES}只有35个字符因为线程1只操作了30位。但是flag有36个字符差一个未知的每个字母都猜一遍flag{ThisisthreadofwindowshahaIsESE}参考 文章BUUCTF逆向题Youngter-drive-CSDN博客Youngter-drive-CSDN博客

相关新闻

BUUCTF [UTCTF2020]basic-re

BUUCTF [UTCTF2020]basic-re

查壳 没有 进入ida看了之后发现与flag好像没关系,shiftF12发现可疑字符串,提交试一下成功了,flag{str1ngs_1s_y0ur_fr13nd}

2026/7/12 0:37:13阅读更多 →
BUUCTF 特殊的 BASE64

BUUCTF 特殊的 BASE64

考点:base64进入idashiftF12观察到可疑字符串,结合题目名字,猜测是改变了base64编码表的base64加密,厨子解:flag{Special_Base64_By_Lich}

2026/7/12 0:37:13阅读更多 →
GPT-5.6找不到正常吗?5个原因一次讲清

GPT-5.6找不到正常吗?5个原因一次讲清

GPT-5.6开始推送后,不少用户发现一个问题:别人已经能看到新模型,自己的ChatGPT里却还是原来的选项。还有人打开Codex后,只看到Terra,却找不到Sol和Luna。这种情况不一定是账号异常。GPT-5.6在普通ChatGPT、Codex、Work…

2026/7/12 0:37:13阅读更多 →
gPTP 与 PTP 深度对比:5 大核心差异及在自动驾驶网络中的选型指南

gPTP 与 PTP 深度对比:5 大核心差异及在自动驾驶网络中的选型指南

gPTP 与 PTP 深度对比:5 大核心差异及在自动驾驶网络中的选型指南在自动驾驶和工业自动化领域,毫秒级的时间同步误差可能导致灾难性后果。当一辆以120公里/小时行驶的自动驾驶汽车需要与周围车辆协调变道时,1毫秒的时间偏差意味着3.3厘米的位…

2026/7/12 2:47:31阅读更多 →
夜灯公考 AI 全链路实测:选岗、答疑、督学、模考四个场景的技术拆解

夜灯公考 AI 全链路实测:选岗、答疑、督学、模考四个场景的技术拆解

夜灯公考 2022 年成立,有别于中公、华图的线下大班模式,它的产品逻辑从一开始就是线上小班 AI 全链路 三对一督学。在公考培训行业,大部分机构的 AI 还停留在"智能推题"层面。夜灯把 AI 嵌入了学习的每一个环节。下面逐一拆解。场…

2026/7/12 2:47:31阅读更多 →
生产ERP系统好用榜单有哪些?5款主流选型参考整理

生产ERP系统好用榜单有哪些?5款主流选型参考整理

对于珠三角、长三角地区的中小制造企业来说,生产环节的物料混乱、交期延误、数据不同步是普遍痛点,选型一套适配的生产ERP系统是解决这类问题的核心抓手。本文整理了当前市场中认可度较高的生产ERP产品,从统一维度进行客观梳理,供…

2026/7/12 2:47:31阅读更多 →
ENVI 5.x 遥感图像预处理实战:Landsat 8 真彩色合成与 2% 线性拉伸

ENVI 5.x 遥感图像预处理实战:Landsat 8 真彩色合成与 2% 线性拉伸

ENVI 5.x 遥感图像预处理实战:Landsat 8 真彩色合成与 2% 线性拉伸技术解析当第一次在ENVI中打开Landsat 8原始数据时,很多初学者会困惑于为什么图像看起来灰暗模糊——这其实是因为原始数字量化值(DN)未经优化显示处理。本文将深入解析如何通过波段组合…

2026/7/12 2:47:31阅读更多 →
微软 GlobalMLBuildingFootprints 2022版:83.6GB GeoJSON 数据获取与坐标转换实战

微软 GlobalMLBuildingFootprints 2022版:83.6GB GeoJSON 数据获取与坐标转换实战

微软 GlobalMLBuildingFootprints 2022版:83.6GB GeoJSON 数据获取与坐标转换实战当83.6GB的全球建筑轮廓数据摆在面前,数据工程师的第一反应往往是既兴奋又头疼。微软这份覆盖全球多国的建筑轮廓数据集,为城市规划、灾害评估、人口统计等领域…

2026/7/12 2:47:31阅读更多 →
高精度数据采集系统设计:MCP3428 ADC与PIC18F86K90应用

高精度数据采集系统设计:MCP3428 ADC与PIC18F86K90应用

1. 项目背景与硬件选型考量在工业测量和实验室环境中,数据采集系统的精度和稳定性直接决定了后续分析的可靠性。传统基于8位或10位ADC的方案已难以满足现代高精度测量需求,这正是我们选择MCP3428搭配PIC18F86K90构建升级版数据采集系统的核心原因。MCP34…

2026/7/12 2:42:31阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/12 0:02:11阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/12 0:02:11阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/11 16:20:28阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/11 23:15:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/11 18:12:23阅读更多 →