BUUCTFYoungter-drive
📅 2026/7/12 0:37:39
👁️ 次浏览
考点多线程查壳脱壳进入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博客
查壳 没有 进入ida看了之后发现与flag好像没关系,shiftF12发现可疑字符串,提交试一下成功了,flag{str1ngs_1s_y0ur_fr13nd}
📅 2026/7/12 0:37:39
考点:base64进入idashiftF12观察到可疑字符串,结合题目名字,猜测是改变了base64编码表的base64加密,厨子解:flag{Special_Base64_By_Lich}
📅 2026/7/12 0:37:39
GPT-5.6开始推送后,不少用户发现一个问题:别人已经能看到新模型,自己的ChatGPT里却还是原来的选项。还有人打开Codex后,只看到Terra,却找不到Sol和Luna。这种情况不一定是账号异常。GPT-5.6在普通ChatGPT、Codex、Work…
📅 2026/7/12 0:37:39
更多请点击:
https://intelliparadigm.com
第一章:DeepSeek联网搜索功能的底层架构与设计哲学 DeepSeek的联网搜索能力并非简单调用第三方API的代理层,而是基于“可验证、可追溯、可干预”的设计哲学构建的分布式协同检索系统。其核心由三大…
📅 2026/7/12 2:48:29
更多请点击:
https://codechina.net
第一章:ChatGPT生成小红书标题的5大致命误区:92%创作者正在踩坑,第3个导致笔记曝光归零 小红书算法对标题的语义密度、情绪浓度和平台关键词匹配度极为敏感。当创作者盲目依赖ChatGPT批量生成…
📅 2026/7/12 2:48:29
更多请点击:
https://kaifayun.com
第一章:ChatGPT述职PPT大纲生成的核心认知 ChatGPT并非万能的PPT生成器,而是一个具备语义理解与结构化输出能力的推理引擎。其在述职场景中的价值,不在于自动排版或美化,而在于将模…
📅 2026/7/12 2:48:29
别只让 AI 写函数:用 Claude Opus 4 做企业级代码分析和架构治理
企业研发团队用 AI,最容易从“帮我写个函数”“补个单测”“解释一下报错”开始。这些场景确实能提效,但放到中大型系统里,真正拖慢团队的,往往不是某个…
📅 2026/7/12 2:48:29
更多请点击:
https://kaifayun.com
第一章:DeepSeek 遇到幻觉怎么办 当 DeepSeek 系列大模型(如 DeepSeek-V2、DeepSeek-Coder)在生成文本时出现事实性错误、虚构引用或逻辑矛盾等幻觉现象,需结合模型特性与部署场景采…
📅 2026/7/12 2:48:29
gPTP 与 PTP 深度对比:5 大核心差异及在自动驾驶网络中的选型指南在自动驾驶和工业自动化领域,毫秒级的时间同步误差可能导致灾难性后果。当一辆以120公里/小时行驶的自动驾驶汽车需要与周围车辆协调变道时,1毫秒的时间偏差意味着3.3厘米的位…
📅 2026/7/12 2:47:29
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/12 0:00:04
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/12 0:00:28
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/12 0:00:28
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/12 0:15:59
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54